将多个属性添加到架构中的多个元素

时间:2014-01-18 02:57:24

标签: xml xsd

我无法弄清楚如何将多个节点的属性添加到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节点的属性声明。

2 个答案:

答案 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>