从XSOM中的XSElementDecl中检索minOccurs和maxOccurs

时间:2012-04-19 10:50:28

标签: java xml schema xsom

我在这个问题上已经阅读了类似的主题:

getting the minOccurs attribute using XSOM from an element

但答案似乎有点不理想,特别是当一个xsd文件中有数百个元素时。它真的是唯一的方法吗,还是有更简单的方法?

如果可能的话,我想从XSElementDecl中检索它。

1 个答案:

答案 0 :(得分:1)

你做不到。它不是元素声明的属性,它是元素粒子的属性,它是元素声明与使用它的内容模型之间的关系。

现在,如果元素声明是一个局部声明,那么它就足够了它只能在一个内容模型中使用,所以声明和粒子是一对一的,而在XSD 1.1中定义的SCM中似乎如果{variety}是本地的,那么您可以让{parent}找到包含的模型组,然后返回此模型组的粒子。但是XSOM似乎并不反映{parent}属性,这并不奇怪,因为它在XSD 1.0中不存在,并且似乎没有任何与{scope}属性相对应的属性。

因此,API似乎不允许从Element声明导航到使用该声明的粒子。但是,如果不是通过粒子,你是如何找到Element声明的呢?