Xml 在扩展复杂类型中更改对简单类型的限制
我正在尝试创建一个有2种地址类型的模式。第一个Xml 在扩展复杂类型中更改对简单类型的限制,xml,xsd,Xml,Xsd,我正在尝试创建一个有2种地址类型的模式。第一个地址类型要求元素第1行的值至少为10个字符。第二个类型otheraddresstype从中派生,具有相同的元素,但不需要第1行的值 我尝试了不同的方法,但总是出现架构错误,此错误为: 通过限制进行的粒子派生无效-'Derived element'{namespace}:Line1'根据Elt:Elt--NameAndTypeOK'不是基元素'{namespace}:Line1'的有效限制。 如果我将类型xs:string添加到otheraddress
地址类型
要求元素第1行
的值至少为10个字符。第二个类型otheraddresstype
从中派生,具有相同的元素,但不需要第1行的值
我尝试了不同的方法,但总是出现架构错误,此错误为:
通过限制进行的粒子派生无效-'Derived element'{namespace}:Line1'根据Elt:Elt--NameAndTypeOK'不是基元素'{namespace}:Line1'的有效限制。
如果我将类型xs:string
添加到otheraddresstype:Line1
中,则会出现其他错误
<xs:complexType name="AdressType">
<xs:sequence>
<xs:element name="Line1" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="10" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Line2" type="xs:string" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="OtherAdressType">
<xs:complexContent>
<xs:restriction base="AdressType">
<xs:sequence>
<xs:element name="Line1" nillable="true">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="0" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Line2" type="xs:string" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
恐怕我没有完整的答案给你,因为我没有时间详细研究这个问题,但是,您的派生类型似乎不是有效的限制:minLength为0的字符串不是minLength为10的字符串的限制:minLength为0的字符串多于minLength为10的字符串