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

时间:2010-11-22 08:52:53

标签: xml xsd

我需要解析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有一个Object引用。现在我只有引用id作为属性。

是否可以在XSD中定义此对象引用?

1 个答案:

答案 0 :(得分:5)

是的,这是可能的。请参阅@XmlID@XmlIDREF。它们对应于XML类型xsd:idxsd:idref。但请记住,只有字符串可以是ID。