[英]XML validation against XSD: Element cannot have character, because the type's content type is element-only
XML: XML:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<ac code="JL" auto="1">
<fee>10e</fee>
<comission>
<if country="JP">5%</if>
<else>7%</else>
</comission>
</ac>
<ac code="B2" auto="1">
<fee>
<if country="RU">35e 50e 50e 80e 15e 10e</if>
<else>10e</else>
</fee>
<comission>
<if country="RU">3%</if>
<else>5%</else>
</comission>
</ac>
</data>
And XSD Schema : 和XSD架构 :
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="data" type="data"/>
<xs:complexType name="data">
<xs:sequence>
<xs:element name="ac" minOccurs="0" maxOccurs="unbounded" type="ac"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ac">
<xs:sequence>
<xs:element name="fee" type="feecomiss"/>
<xs:element name="comission" type="feecomiss"/>
</xs:sequence>
<xs:attribute name="code" type="xs:string"/>
<xs:attribute name="auto" type="xs:decimal"/>
</xs:complexType>
<xs:complexType name="feecomiss">
<xs:sequence>
<xs:element name="if" type="if" minOccurs="0" />
<xs:element name="else" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="if">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="country" type="xs:string" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>
This scheme is not working because of the fact that the first element of the "fee" has no elements "if" and "else" 由于“费用”的第一个元素没有元素“ if”和“ else”,因此该方案不起作用
Any ideas? 有任何想法吗? Sorry for bad english =)
对不起,英语不好=)
I think your schema should look like this: 我认为您的架构应如下所示:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="data">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="ac">
<xs:complexType>
<xs:sequence>
<xs:element name="fee">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0">
<xs:element name="if">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="country" type="xs:string" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="else" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="comission">
<xs:complexType>
<xs:sequence>
<xs:element name="if">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="country" type="xs:string" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="else" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="code" type="xs:string" use="required" />
<xs:attribute name="auto" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
I generated this schema defitinition up to your xml document given in question. 我生成了这个架构分解,直到有问题的xml文档为止。
Hope this helps 希望这可以帮助
Myra 玛拉
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.