什么是XML模式来表示字符串到字符串的字典?

时间:2011-07-18 07:07:12

标签: xml xpath xsd

假设我有一个Dictionary<string, string>个实例,就像这个:

{{“a”,“1”},{“b”,“2”}}

有几种方法可以用XML表示它:

<root>
  <item>
    <key>a</key>
    <value>1</value>
  </item>
  <item>
    <key>b</key>
    <value>2</value>
  </item>
</root>

OR

<root>
  <item key="a" value="1"/>
  <item key="b" value="2"/>
</root>

OR

<root>
  <a>1</a>
  <b>2</b>
</root>

描述每个表示的XML模式是什么?

感谢。

1 个答案:

答案 0 :(得分:3)

查看xs:unique元素。 对于1st XML,适当的XSD是:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="root">
        <xs:complexType>
            <xs:sequence>
                <xs:element maxOccurs="unbounded" name="item">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="key" type="xs:string"  />
                            <xs:element name="value" type="xs:string" />
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>

        <xs:unique name="uniqueItem">
            <xs:selector xpath="item"/>
            <xs:field xpath="key"/>
        </xs:unique>
    </xs:element>
</xs:schema>

第二名:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="root">
        <xs:complexType>
            <xs:sequence>
                <xs:element maxOccurs="unbounded" name="item">
                    <xs:complexType>
                        <xs:attribute name="key" type="xs:string" use="required" />
                        <xs:attribute name="value" type="xs:string" use="required" />
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>

        <xs:unique name="uniqueItem">
            <xs:selector xpath="item"/>
            <xs:field xpath="@key"/>
        </xs:unique>

    </xs:element>
</xs:schema>

第三名:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="root">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="a" type="xs:string" />
                <xs:element name="b" type="xs:string" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>