微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用于查询XSD文件的Java方法

我有一组用于不同数据类型的xsd文件.在Java世界中,生成类型属性列表的最佳方法是什么?

例如用这两个文件.

file:customer.xsd

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="customer">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="number" type="xs:integer"/>
      <xs:element name="name" type="xs:string"/>
      <xs:element name="address" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
</xs:schema>

file:order.xsd

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="customer">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="orderid" type="xs:integer"/>
      <xs:element name="customer" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
</xs:schema>

我想做两件事

1.一个Java应用程序,它读入XSD并进行处理(不知何故?).因此,当您运行该程序时,它可以打印出属性

> java -jar printtypes.jar -f customer.xsd
> number : Integer
> name : String
> address : String

2.某种生成文件的转换

file:customer.properties

<propertylist>
<prop>
 <name> orderid </name>
 <type> integer </type>
</prop>
<prop>
 <name> customer </name>
 <type> string</type>
</prop>
</propertylist>

我尝试使用java反射来实现上面(1)中的程序,以查询由JAXB生成java类.
这创建了一个类的实例并询问了值和字段,但是在值由空序列组成的情况下它不起作用.由于类型擦除,无法返回到原始类型的值.你最终得到了一个空的ArrayList,但你不知道是什么.

我来自C工作,所以我现在有点迷失所有这些Java技术.我的Google权力让我失望 – 我见过的大多数JAVA / XSD帖子都谈到了验证,这不是我想要做的.

解决方法:

您可能希望研究XSOM,它是一个将摄取XML模式并生成可以遍历并生成所需结果的对象的项目.

http://xsom.java.net/userguide.html

手工解析模式可能非常棘手,因为可以有不同的方式来表达基本相同的东西.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。