【问题标题】:Retrieving minOccurs and maxOccurs from XSElementDecl in XSOM从 XSOM 中的 XSElementDecl 检索 minOccurs 和 maxOccurs
【发布时间】:2012-04-19 21:41:26
【问题描述】:

我已经阅读了关于此事的类似主题:

getting the minOccurs attribute using XSOM from an element

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

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

【问题讨论】:

    标签: java xml schema xsom


    【解决方案1】:

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

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

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

    【讨论】:

    • 它实际上是通过一个 XSVisitor 接口的实现。我设法通过在模型组声明中捕获粒子,然后将它们的属性分配给特定元素来解决这个问题。无论如何感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 2011-11-04
    • 2011-06-16
    • 1970-01-01
    相关资源
    最近更新 更多