在我正在处理的应用程序中,我需要从 XSD 生成示例数据(XML 实例)。我有 a 形式的 XSD String,需要再次生成各自的XMLas String。
例如考虑下面的 XSD
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Employee">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="name"/>
<xs:element type="xs:byte" name="age"/>
<xs:element type="xs:string" name="role"/>
<xs:element type="xs:string" name="gender"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我想生成
<Employee>
<name>string</name>
<age>2</age>
<role>string</role>
<gender>string</gender>
</Employee>
搜索了一段时间后,发现了各种在线工具可以做到这一点,但我希望能够使用Java来实现它。还有像 Eclipse、Netbeans、IntelliJ 这样的 IDE 能够实现所需的功能,除了它们依赖于作为文件提供的 XSD。
经过一番搜索,似乎其中大多数都使用Apache XMLBeans。
我尝试按照安装指南设置所有提到的环境变量,如下所示
export XMLBEANS_HOME=/home/user/Programs/xmlbeans-3.1.0
PATH=$PATH:$XMLBEANS_HOME/bin
export CLASSPATH=$XMLBEANS_HOME/lib/xmlbeans-3.1.0.jar:$CLASSPATH
export XMLBEANS_LIB=/home/user/Programs/xmlbeans-3.1.0/lib/xmlbeans-3.1.0.jar
毕竟如果我运行下面给出的命令
./xsd2inst ../../Schema.xsd
我收到错误
错误:无法找到或加载主类 org.apache.xmlbeans.impl.xsd2inst.SchemaInstanceGenerator
问题:
我该怎么做才能修复此错误?
如果我得到这个工作,我可能可以在将 XSD 字符串写入文件并将其作为参数传递给命令后从 Java 进程调用此命令,就像我上面显示的那样。但我不认为这是一个优雅的解决方案,还有其他方法可以完成我提到的吗?
笔记:
我不能使用任何商业产品/库。
我知道使用 JAXB,但这将需要我为我想要生成数据的类型创建一个 POJO,因为 XSD 数据是动态的,我无法重用这些 POJO,即使我创造它。
慕的地6264312
相关分类