如何解决这个问题?
警告2未定义的complexType“http://www.w3.org/2001/XMLSchema:string”用作复杂类型限制的基础。
由于 <xs:simpleContent><xs:restriction base='xs:string'>
<xs:element name='TO'>
<xs:complexType>
<xs:simpleContent>
<xs:restriction base='xs:string'>
<xs:maxLength value='15'/>
<xs:attribute name='PROVID'>
<xs:simpleType>
<xs:restriction base='xs:int'>
<xs:enumeration value='1'/>
<xs:enumeration value='2'/>
<xs:enumeration value='3'/>
<xs:enumeration value='5'/>
<xs:enumeration value='6'/>
<xs:enumeration value='7'/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name='TYPE'>
<xs:simpleType>
<xs:restriction base='xs:string'>
<xs:enumeration value='NPM'/>
<xs:enumeration value='EMS'/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>
查看W3schools reference这看起来不错,但不是根据VS2010和Xsd.exe
我真正想做的就是有一个元素TO的定义,它可以具有上述两个属性,其元素文本应限制为15个字符。
答案 0 :(得分:2)
您不能将字符串限制为15个字符,并且将其扩展为具有属性的复杂类型。如果您首先定义受限制的字符串类型然后对其进行扩展,则不会出现问题:
<xs:simpleType name="RestrictedString">
<xs:restriction base="xs:string">
<xs:maxLength value="15"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="TO">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="RestrictedString">
<xs:attribute name="PROVID">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:enumeration value="1"/>
<xs:enumeration value="2"/>
<xs:enumeration value="3"/>
<xs:enumeration value="5"/>
<xs:enumeration value="6"/>
<xs:enumeration value="7"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="TYPE">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="NPM"/>
<xs:enumeration value="EMS"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>