同时"well-done"描述了一个元素的复杂值和这个元素的属性XSD
Simultaneous "well-done" description of the complex value of an element and attributes of this element in XSD
无法在 XSD 描述的模式中正确组合两个条件:
1) 元素的值 complexType 有限制
2) 元素的属性序列
complexType \ simpleType 或任何我试图组合的结构都不想成为 "well-done"。
我想要的
在一个 CHILD 元素内:
1) 可以指定元素的值(例如最大长度限制)
2) describe\specify 元素属性
的可能性
我有什么?
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="ROOT">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="PARENT">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="CHILD"> <!-- extended (complex) description for CHILD's value is needed-->
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="attribute-1" type="xs:boolean" use="required" />
<xs:attribute name="attribute-2">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value = "64"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="parent-attribute" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="root-attribute" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
</xs:schema>
我想扩展 CHILD 值的复杂限制类型(作为示例)
(注意:并保留其属性的描述)
<xs:element name="CHILD" maxOccurs="unbounded">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="4000"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
您需要分两步完成:限制步骤定义值的额外方面,然后扩展步骤允许额外属性。 (您可以按任意顺序执行这两个步骤)。
无法在 XSD 描述的模式中正确组合两个条件:
1) 元素的值 complexType 有限制
2) 元素的属性序列
complexType \ simpleType 或任何我试图组合的结构都不想成为 "well-done"。
我想要的
在一个 CHILD 元素内:
1) 可以指定元素的值(例如最大长度限制)
2) describe\specify 元素属性
的可能性我有什么?
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="ROOT">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="PARENT">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="CHILD"> <!-- extended (complex) description for CHILD's value is needed-->
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="attribute-1" type="xs:boolean" use="required" />
<xs:attribute name="attribute-2">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value = "64"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="parent-attribute" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="root-attribute" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
</xs:schema>
我想扩展 CHILD 值的复杂限制类型(作为示例) (注意:并保留其属性的描述)
<xs:element name="CHILD" maxOccurs="unbounded">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="4000"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
您需要分两步完成:限制步骤定义值的额外方面,然后扩展步骤允许额外属性。 (您可以按任意顺序执行这两个步骤)。