代码之家  ›  专栏  ›  技术社区  ›  guerda

如何描述节点中对另一个节点的引用?

  •  4
  • guerda  · 技术社区  · 14 年前

    我有一个需要解析的XML格式。下面列出了一个示例文件:

    <?xml version="1.0" encoding="UTF-8">
    <root>
      <parent name="example1">
       <childdef ref="1" type="a" />
       <childdef ref="3" type="c" />
      </parent>
    
      <parent name="example2">
       <childdef ref="1" type="b" />
       <childdef ref="2" type="b" />
      </parent>
    
      <child id="1" name="Child 1" />
      <child id="2" name="Child 2" />
      <child id="3" name="Child 3" />
      <child id="4" name="Child 4" />
    </root>
    

    这个 parent 元素至少包含一个 childdef 引用子元素的元素。必须使用引用,因为一个子对象可以被多个父对象引用(请参见子对象1)。

    如果我现在使用XML映射器(例如JAXB实现),我希望有一个从Parent1到Child 1的对象引用。现在我只有引用id作为属性。

    可以在XSD中定义这个对象引用吗?

    1 回复  |  直到 14 年前
        1
  •  5
  •   musiKk    14 年前

    是的,那是可能的。见 @XmlID @XmlIDREF . 它们对应于XML类型 xsd:id xsd:idref . 但请记住,只有字符串可以是id。