XSD - 仅根据父标记创建所需的属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XSD - 仅根据父标记创建所需的属性相关的知识,希望对你有一定的参考价值。
在我的xml shema中,我可以将标签<item>
放在2个不同的父级中,如下所示:
<page>
<item name="foo"/>
</page>
or
<page>
<list>
<item class="path/to/class"/>
</list>
</page>
我怎么能在我的xsd中说,name
属性只有当直接父级是<page>
时才是强制性的?
答案
我找到了答案:
<xs:complexType name="listItemType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="class" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="itemType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="name" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="listType">
<xs:sequence>
<xs:element type="listItemType" name="item" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="pageType">
<xs:sequence>
<xs:element type="itemType" name="item" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
以上是关于XSD - 仅根据父标记创建所需的属性的主要内容,如果未能解决你的问题,请参考以下文章
使用 Java 8 Streams 从列表中仅获取所需的对象