簡體   English   中英

使用java DOM替換/更改XSD文件中的元素類型

[英]Replace/Change element type in XSD file using java DOM

我總是從“Stackoverflow”中得到我的問題的答案,這是第一次,我發布了我的問題。

我在java中使用DOM讀取XSD文件。 在我的XSD中,我需要更改元素的類型。

<xs:complexType name="MainDoc">
    <xs:sequence>
        <xs:element name="Bike" type="Vehicle"/>
    </xs:sequence>
</xs:complexType>
<xs:complexType name="Vehicle">
    <xs:sequence>
        <xs:element name="price" type="amount"/>            
    </xs:sequence>
</xs:complexType>

在這里,我想將type =“Vehicle”改為type =“Twowheeler”,當元素名稱為“bike”時,所有出現的“vehicle”改為“Twowheeler”。 我使用DOM組件讀取XSD,這有可能改變這個嗎?

(解決這個問題的方法是,我將使用文件處理操作從XSD文件替換單詞“vehicle”,但我不喜歡這個)

請幫忙...

這是使用XPath和VTD-XML進行屬性更新的代碼。

import com.ximpleware.*;
import java.io.*;
public class updateXSD {
    public static void main(String[] s) throws VTDException, IOException{
        VTDGen vg = new VTDGen();
        if (!vg.parseFile("d:\\xml\\xsd.xml", true)){
            return;
        }
        VTDNav vn = vg.getNav();
        AutoPilot ap = new AutoPilot(vn);
        ap.declareXPathNameSpace("xs", "XSD namespace here");
        ap.selectXPath("//xs:element[@name='Bike']/@type");
        XMLModifier xm = new XMLModifier(vn);
        int i=-1;
        while((i=ap.evalXPath())!=-1){
            xm.updateToken(i+1, "Twowheeler");
        }
        xm.output("d:\\xml\\newXSD.xml");
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM