我有一个关于在我的xml架构中为我的元素定义新属性的问题(xsd) 我有一个这样的元素
<xs:element name="xyz" type="xs:hexBinary" minOccurs="2">
我想添加一个新属性&#34; size&#34;我可以在哪里指定元素的大小&#34; xyz&#34;。我该如何定义呢?
感谢您的帮助
答案 0 :(得分:1)
以下是一个简单有效的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;否则,它必须是简单的内容。
这种方法不允许您约束基类型(此处为hexBinary)。如果还需要为简单基类型指定约束facet,则必须单独创建一个新的简单类型,限制为hexBinary,然后使用属性扩展新类型。