gpt4 book ai didi

java - 使用 java DOM 替换/更改 XSD 文件中的元素类型

转载 作者:行者123 更新时间:2023-12-02 01:09:51 25 4
gpt4 key购买 nike

我总是从“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>

在这里,当元素名称为“bike”并且所有出现的“vehicle”为“Twowheeler”时,我想将 type="Vehicle"更改为 type="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");
}
}

关于java - 使用 java DOM 替换/更改 XSD 文件中的元素类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37267409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com