我无法弄清楚如何将多个节点的属性添加到xsd文件中。 这是我的XML文件。
<?xml version="1.0" encoding="utf-8"?>
<xs:Root xmlns:xs="http://tempuri.org/SchemaFile"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tempuri.org/SchemaFile SchemaFile.xsd"
xmlns:elementFormDefault="qualified">
<xs:Node name="attributeName">
<xs:data name="attributeName" amount="total" /> // These are unbounded.
</xs:Node>
</xs:Root>
这是我到目前为止所拥有的。我不能得到任何工作。
<sch:element name="Root">
<sch:complexType>
<sch:sequence>
<sch:element name="Node" maxOccurs="unbounded">
<sch:complexType>
<sch:simpleContent>
<sch:extension base="sch:string">
<sch:attribute name="name" type="sch:string"/>
</sch:extension>
</sch:simpleContent>
</sch:complexType>
</sch:element>
</sch:sequence>
</sch:complexType>
</sch:element>
我还尝试了一个全局来添加属性类型,但我无法让它工作。当我使用它所说的类型时,我不能拥有任何其他复杂或简单的类型以及xmlnode节点的属性声明。
答案 0 :(得分:0)
我发现这似乎有效。这是我之前搞砸的顺序.Root
<sch:element name="Root">
<sch:complexType>
<sch:sequence>
<sch:element name="Node" maxOccurs="unbounded">
<sch:complexType>
<sch:sequence>
<sch:element name="Data" maxOccurs="unbounded">
<sch:complexType>
<sch:attribute name="name"/>
<sch:attribute name="amount"/>
</sch:complexType>
</sch:element>
</sch:sequence>
<sch:attribute name="name"/>
</sch:complexType>
</sch:element>
</sch:sequence>
</sch:complexType>
</sch:element>
答案 1 :(得分:0)
试试这个:
<xs:schema version="1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="Root">
<xs:complexType>
<xs:sequence>
<xs:element name="Node" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="data" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="name">
<xs:simpleType>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="amount">
<xs:simpleType>
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
适用于以下 XML :
<Root>
<Node>
<data name="string 1" amount="string 2"/>
<data name="string 3" amount="string 4"/>
</Node>
</Root>