[英]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.