繁体   English   中英

XMLschema.xsd中缺少JAXB类

[英]Missing JAXB classes from XMLschema.xsd

我正在研究xml模式解析器,并且正在将JAXB与XMLSchema.xsd一起使用。 我在使用JAXB时遇到问题,因为我没有获得所有顶级元素的类。 例如

<xs:element name="maxLength" id="maxLength" type="xs:numFacet"> 

我没有上课MaxLength或类似的东西。 仅存在NumFacet。

其他人也经历过,请帮我吗?

干杯,XLR

据我所记得的jaxb,模式编译器xjc为给定的每种复杂模式创建类。 因此,如果您喜欢使用MaxLength类,则应在架构中添加一个复杂的类型声明:

<xs:complexType name="MaxLength">
<xs:attribute name="value" type="xs:int"/>
</xs:complexType>
<xs:element name="MyMaxLength" type="MaxLength"/>

现在,您应该获得一个具有成员变量类型为integer的MaxLength类。

JAXB不会为任何已经具有类型的东西生成一个类,并且您也不需要一个。

如果NumFacetmaxLength元素这样的全局元素,则JAXB将返回一个包装NumFacet类型的JAXBElement。 像这样:

JAXBElement<?> root = unmarshaller.unmarshal(myStream);
NumFacet value = (NumFacet) root.getValue();

JAXBElement上还有其他方法可以找出元素名称,等等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM