Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#XMLReader-使用XSD架构验证失败的多个子集合_C#_Xml_Xsd - Fatal编程技术网

C#XMLReader-使用XSD架构验证失败的多个子集合

C#XMLReader-使用XSD架构验证失败的多个子集合,c#,xml,xsd,C#,Xml,Xsd,我有一个提供的XSD。我对XSD了解不够,无法开始修改它 <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema

我有一个提供的XSD。我对XSD了解不够,无法开始修改它

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Dataset">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Person">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="PayrollNumber" type="String16" maxOccurs="1" minOccurs="1" />
              <xs:element name="Surname" type="String50" maxOccurs="1" />
              <xs:element name="Name" type="String50" maxOccurs="1" />
              <xs:element name="StreetAddress" type="String50" maxOccurs="1" />
              <xs:element name="Suburb" type="String20" maxOccurs="1" />
              <xs:element name="Skills">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="Skill" type="String16" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="HomePhone" type="String14" maxOccurs="1" />
              <xs:element name="MobilePhone" type="String14" maxOccurs="1" />
              <xs:element name="PagerNumber" type="String14" maxOccurs="1" />
              <xs:element name="Email" type="String80" maxOccurs="1" />
              <xs:element name="RecordType" type="RecordType" maxOccurs="1" minOccurs="1" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="String16">
    <xs:restriction base="xs:string">
      <xs:maxLength value="16" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="String50">
    <xs:restriction base="xs:string">
      <xs:maxLength value="50" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="String20">
    <xs:restriction base="xs:string">
      <xs:maxLength value="20" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="String30">
    <xs:restriction base="xs:string">
      <xs:maxLength value="30" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="String14">
    <xs:restriction base="xs:string">
      <xs:maxLength value="14" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="String80">
    <xs:restriction base="xs:string">
      <xs:maxLength value="80" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="RecordType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="A" />
      <xs:enumeration value="E" />
      <xs:enumeration value="D" />
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

我有以下XML

<Dataset>
  <Person>
    <PayrollNumber>1234567</PayrollNumber>
    <Surname>Denson</Surname>
    <Name>John-Jaime-Winston Junior</Name>
    <StreetAddress>Level 5, City Central Tower 2, 121 King William St</StreetAddress>
    <Suburb>Mitcham</Suburb>
    <Skills>
      <Skill>Skill1</Skill>
      <Skill>Skill2</Skill>
    </Skills>
    <HomePhone>08 8888 8888</HomePhone>
    <MobilePhone>041 888 999</MobilePhone>
    <PagerNumber>111111</PagerNumber>
    <Email>curly@stooge.com</Email>
    <RecordType>A</RecordType>
  </Person>
</Dataset>

1234567
丹森
小约翰·詹姆·温斯顿
威廉国王街121号城市中心2号楼5层
米查姆
技巧1
技能2
08 8888 8888
041 888 999
111111
curly@stooge.com
A.
NET文件验证程序可以与XMLReader配合使用

但是,如果我引入多人记录,即一个集合,验证将失败 验证错误:元素“Dataset”具有无效的子元素“Person”。0 0


如何修改我的XSD?

是的,您的XSD现在在数据集中定义了正好一个元素
Person
的序列

通过更改XSD中的这一行,您可以轻松更改这一点:

    <xs:element name="Person">


如果未给出
minOccurs
maxOccurs
值,则它们默认为1-因此您在数据集中得到的最小值和最大值正好是一个
Person

将这些值更改为对您有意义的值,例如
minOccurs=“1”
maxOccurs=“10”
或使用
maxOccurs=“unbounded”
处理任意数量的事件(无限制)。

如果发布XML或代码,请始终在编辑器窗口中突出显示这些行,并使用编辑器工具栏上的“code”按钮(101 010)(左五)将这些行格式化为code/XML。然后,也只有到那时,它们才会很好地显示出来,并且语法高亮显示,等等!
    <xs:element name="Person" minOccurs="1" maxOccurs="unbounded">