我有一个代表分类的数据模型。分类是类别的层次结构,例如
Food
+- Pasta
+- Spaghetti
我想将此表示为
<taxonomy>
<category id="cat001" name="Food"/>
<category id="cat002" name="Pasta">
<parentCategory>
<category ref="cat001"/>
</parentCategory>
</category>
<category id="cat003" name="Spaghetti">
<parentCategory>
<category ref="cat002"/>
</parentCategory>
</category>
</taxonomy>
在 XML 模式 (XSD) 中表示它的最佳方式是什么?
另外,我怎样才能确保在使用 JAXB 时,我可以获得类似的东西
class Category {
String name;
Category parentCategory;
}
此外,如果我的分类不是一棵严格的树,而是一个图表,其中可能有多个父关系,这样 Spaghetti 就属于 Pasta 和 Noodles
<taxonomy>
<category id="cat001" name="Food"/>
<category id="cat002" name="Pasta">
<parentCategories>
<category ref="cat001"/>
</parentCategories>
</category>
<category id="cat003" name="Noodles">
<parentCategories>
<category ref="cat001"/>
</parentCategories>
</category>
<category id="cat004" name="Spaghetti">
<parentCategories>
<category ref="cat002"/> <!-- Pasta -->
<category ref="cat003"/> <!-- Noodles -->
</parentCategory>
</category>
</taxonomy>
然后使用 JAXB,我想生成类似的东西
class Category {
String name;
List<Category> parentCategories;
}
请注意,Java 代码被简化仅用于说明目的。使用 JAXB 代码生成,我不介意拥有一个容器对象,例如具有类别属性的 parentCategory