【问题标题】:How to write a valid xsd for elements with different names如何为具有不同名称的元素编写有效的 xsd
【发布时间】:2013-02-08 11:49:56
【问题描述】:

我想使用 xsd 架构验证 xml,但我不知道如何为具有可变名称的元素创建正确的 xsd 架构。我的 xml 文档:

<Settings xmlns="main">
  <Object>
    <Rules>
      <Rule0>
        <Range>0 to 0</Range>
        <String>SomeString</String>
        <Integer>80</Integer>
        <Enabled>No</Enabled>
      </Rule0>
      <Rule0>
        <Range>0 to 0</Range>
        <String>SomeString</String>
        <Integer>80</Integer>
        <Enabled>No</Enabled>
      </Rule0>
    </Rules>
    <ObjectEnabled>No</ObjectEnabled>
  </Object>
</Settings

还有我的 xsd 文档:

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"           targetNamespace="main" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Settings">
<xs:complexType>
  <xs:sequence>
    <xs:element name="Object">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="Rules">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="?" maxOccurs="unbounded" minOccurs="0">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element type="xs:string" name="Range"/>
                      <xs:element type="xs:string" name="String"/>
                      <xs:element type="xs:byte" name="Integer"/>
                      <xs:element type="xs:string" name="Enabled"/>
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element type="xs:string" name="ObjectEnabled"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:sequence>
</xs:complexType>

偏离课程而不是“Rule1”,它可能是“Blablabla”。我知道我不能输入通配符或问号,所以我请你帮忙。

【问题讨论】:

    标签: c# xml validation xsd


    【解决方案1】:

    我想你必须重新组织一下元素。

    而不是有不同的元素...

    <Rule0 />
    <Rule1 />
    

    你可以写...

    <Rule name="rule0" />
    <Rule name="rule1" />
    

    将元素视为描述所有规则属性的类,而不是描述单个规则属性的对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-23
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多