我有一段架构代码:
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="ref1"/>
<xsd:element ref="ref2"/>
<xsd:element ref="ref3"/>
<xsd:element ref="ref4"/>
<xsd:element ref="ref5"/>
</xsd:choice>
我正在使用Java的XSOM库,我想检索有关xsd:choice元素中描述的minOccurs和maxOccurs的信息。我在互联网上环顾四周,但只能找到从实际元素中检索这些信息的解决方案,而不是xs:choice元素。
我还确定了可以“捕捉”xs:choice元素的地方:
public void startElement(XSModelGroup arg0) {
if (arg0.getCompositor() == XSModelGroup.CHOICE) {
}
}
我在这里想要实现的是区分多项选择“选择”和单项选择。如果有人可以提供帮助,我会非常感激。
答案 0 :(得分:2)
如果您从XSComplexType开始,您可以从XSConmpleType开始,从XSContentType,您可以执行asParticle()以将内容作为粒子;从粒子中你可以使用getTerm()来获取组件结构层次结构中的子元素;对于一个模式组(可能包括xs:choice)的术语,您可以执行asModelGroup()以获得下一个级别。 XSParticle是minOccurs()和maxOccurs()属性可用的地方。这是一个非常奇怪的模型。