XSD抱怨“模型组中出现多个名为“B”的元素,其类型不同。”
我有以下XSD:XSD抱怨“模型组中出现多个名为“B”的元素,其类型不同。”,xsd,Xsd,我有以下XSD: <xs:complexType name="typeBroken"> <xs:choice> <xs:element name="B"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="FOO|BAR" /> </xs:restricti
<xs:complexType name="typeBroken">
<xs:choice>
<xs:element name="B">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="FOO|BAR" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:sequence>
<xs:element name="A">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="5" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="B">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="3" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:choice>
</xs:complexType>
我是否正确理解您的要求?你想有一个。。。还有一个。。。。在此之前,但不是必需的 那么这个模式呢
<xs:complexType name="typeBroken">
<xs:sequence>
<xs:element name="A" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="5" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="B">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="FOO|BAR" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:choice>
</xs:complexType>
定义一个序列,其中第一个元素是可选的minOccurs=0,而第二个元素不是可选的
这能满足你的要求吗
MarcA是可选的,是的,但对B的限制取决于A元素的存在和否。在您的解决方案中,无论A如何,B只能是FOO | BAR。如果A存在,我希望B有不同的验证。-维克多拉,好吧,恐怕这样的验证不能用XSD表示。
<test><B>BAZ</B></test>
cos-element-consistent: Error for type 'typeBroken'. Multiple elements with name 'B', with different types, appear in the model group.
<xs:complexType name="typeBroken">
<xs:sequence>
<xs:element name="A" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="5" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="B">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="FOO|BAR" />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:choice>
</xs:complexType>