java Xerces2j XML模式属性/元素声明数据类型
我正在使用Apache的Xerces2-j解析我的XSD。我试图获取XSD中元素/属性声明的数据类型信息
下面是一个XSD示例:
<xs:element name="Pretzel">
...
<xs:attribute name="Flavor" type="xs:string"/>
<xs:attribute name="ProductID" type="xs:nonNegativeInteger"/>
...
</xs:element>
在本例中,我希望获得Flavor和ProductID属性的数据类型。根据W3C Schema API和its Xerces2-j implementation,XSAttributeDeclaration的getActualVCType()将得到我想要的。但对我来说,该方法总是返回45,这是不可用的。这是Xerces2-j中的一个bug,还是我只是理解了API的错误?如果是的话,如果有人能给我指出正确的方向,我将不胜感激
# 1 楼答案
您希望使用该方法
对于简单类型和/或可能
对于复杂类型
方法getActualVCType()已被弃用,其替代调用getValueConstraintValue()。getActualValueType()查找所谓的value constraint 这不是你想要的。XSAttributeDecl.java中的代码也支持此参数:
及
与
这表明您确实变得不可用,因为它没有设置。我建议研究XSSimpleTypeDefinition的方法,它对我来说很有希望