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>
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>
这个方案没有用,因为“费用”的第一个元素没有“if”和“else”的元素
有什么想法吗?抱歉,英语不好=)
答案 0 :(得分:1)
我认为您的架构应如下所示:
<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>
我生成了这个架构定义,直到你给出的xml文档。
希望这有助于
迈拉