Xerces"固定" XML Schema中的元素属性

时间:2016-09-18 11:54:05

标签: java xsd xerces

我有一个XML架构元素,定义如下:

<xsd:element name="Test">
   <xsd:complexType>
      <xsd:sequence>
         <xsd:element name="ElementFixed" fixed="SomeFixedValue"/>
      </xsd:sequence>
   </xsd:complexType>
</xsd:element>

据我所知,&#34; ElementFixed&#34;是一个通配符元素。 (由于没有定义类型,因此它的类型为&#34; anyType&#34;。)

现在也许这是相关的或不相关的(对于作为通配符的元素),但我试图提取&#34;固定&#34;价值&#34; SomeFixedValue&#34;使用Xerces库,我正在努力解决如何做到这一点。我怀疑它可能与XSAttributeUse或XSAttributeDeclaration有关,但我无法弄清楚我需要调用什么方法来调用哪些对象来接收这些信息。有人可以指点我正确的方向吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我能够解决这个问题。结果我需要在XSElementDeclaration上调用getConstraintType(),它返回XSConstants.VC_NONE,VC_DEFAULT或VC_FIXED。然后,如果Constraint Type not none,则通过调用getValueConstraintValue()。getActualValue()来访问该值。例如:

short vcKind = xsElementDecl.getConstraintType();
System.out.println("Constraint Type: " + vcKind);
if (vcKind != XSConstants.VC_NONE) {
   System.out.println("Value: " + xsElementDecl.getValueConstraintValue().getActualValue());
}