我正在尝试创建一个允许属性或内容的XSD内容类型,但不能同时(或两者都不)。例如,允许以下内容:
<data cid="my_id" />
<data>TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGh</data>
但不允许以下内容:
<data cid="my_id">TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGh</data>
<data />
到目前为止,我所做的最好的尝试既允许,也可以两者兼而有。
<xs:complexType name="data">
<xs:simpleContent>
<xs:extension base="xs:base64Binary">
<xs:attribute name="cid" type="xs:string" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
答案 0 :(得分:1)
不幸的是,XSD 1.0无法实现这一点。有了这些要求,您将不得不从最终的XSD(例如Schematron)获得另一种模式语言的帮助。 XSD 1.1允许您根据需要确定规则;遗憾的是,目前对XSD 1.1的支持非常有限。