【发布时间】:2014-04-15 07:33:44
【问题描述】:
我有一个关于在我的 xml 架构 (xsd) 中为我的元素定义新属性的问题 我有这样的元素
<xs:element name="xyz" type="xs:hexBinary" minOccurs="2">
我想添加一个新属性“size”,我可以在其中指定元素“xyz”的大小。我如何定义这样做?
感谢您的帮助
【问题讨论】:
我有一个关于在我的 xml 架构 (xsd) 中为我的元素定义新属性的问题 我有这样的元素
<xs:element name="xyz" type="xs:hexBinary" minOccurs="2">
我想添加一个新属性“size”,我可以在其中指定元素“xyz”的大小。我如何定义这样做?
感谢您的帮助
【问题讨论】:
下面是一个简单有效的 XSD,围绕您的 xyz 元素构建。
<?xml version="1.0" encoding="utf-8" ?>
<!-- XML Schema generated by QTAssistant/XSD Module (http://www.paschidev.com) -->
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="dummy">
<xs:sequence>
<xs:element name="xyz" minOccurs="2">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:hexBinary">
<xs:attribute name="size" type="xs:int" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
任何具有属性和/或嵌套元素的元素都必须是复杂类型。如果有嵌套元素,那么复杂类型的内容模型一定是complexContent;否则,它必须是 simpleContent。
这种方法不允许您同时约束基本类型(此处为 hexBinary)。如果您还需要为简单基类型指定约束方面,则必须单独创建一个新的简单类型,限制为 hexBinary,然后使用属性扩展新类型。
【讨论】: