java - 获取 xs :choice maxOccurs and minOccurs attributes with XSOM

标签 java xml xsd schema xsom

我有以下一段架构代码:

<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) {

  }
}

我在这里想要实现的是区分多项选择“选择”和单项选择。如果有人可以提供帮助,我将不胜感激。

最佳答案

如果您从 XSComplexType 开始,您可以从该类型获取 XSContentType,并且从 XSContentType 您可以执行 asParticle() 来获取粒子形式的内容;从粒子中,您可以执行 getTerm() 来获取组件结构层次结构中的子级;对于模式组(可能包括 xs:choice)的术语,您可以执行 asModelGroup() 以获得下一个级别。 XSParticle 是 minOccurs() 和 maxOccurs() 属性可用的地方。这是一个非常奇怪的模型。

关于java - 获取 xs :choice maxOccurs and minOccurs attributes with XSOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10211595/

相关文章:

java - 使用VTD-XML仅修改元素文本

java - 生成的 XSD 不会解码 XML

具有可选元素和任何元素的 XSD 序列

java - 如何在 web.xml 中定义一般/回退错误页面

java - 用逗号分割字符串并将所有分割字符串居中

java - 无法在操作栏中显示图标

java - 如何在 spring 中从组件扫描注释中排除测试文件夹

java - eclipse、adt-plugin 和 android-sdk 是怎么回事?

java - 重构switch代码中的公共(public)代码

javascript - ajax xml 加载后 jQuery 切换不起作用