Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.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#在未知嵌套元素上使用XSD验证XML_C#_Xml_Xsd Validation - Fatal编程技术网

c#在未知嵌套元素上使用XSD验证XML

c#在未知嵌套元素上使用XSD验证XML,c#,xml,xsd-validation,C#,Xml,Xsd Validation,是否可以创建XSD来验证(未知)嵌套结构? 我最近将XML数据更改为层次结构 <root> <record Object_Number="1" Object_Level="1" Object_Heading="Introduction" Object_Text="" Milestones="" Unique_ID="" Field_type="Info" SG_attribute="" Object_Identifier="1" Object_URL="doors://

是否可以创建XSD来验证(未知)嵌套结构? 我最近将XML数据更改为层次结构

<root>
    <record Object_Number="1" Object_Level="1" Object_Heading="Introduction" Object_Text="" Milestones="" Unique_ID="" Field_type="Info" SG_attribute="" Object_Identifier="1" Object_URL="doors://D1DDBAPP04:36677/?version=2&amp;prodID=0&amp;view=0000001a&amp;urn=urn:telelogic::1-432aa0956f684cff-O-1-00028f60">
        <record Object_Number="1.1" Object_Level="2" Object_Heading="What is " Object_Text="" Milestones="" Unique_ID="" Field_type="Info" SG_attribute="" Object_Identifier="23" Object_URL="doors://D1DDBAPP04:36677/?version=2&amp;prodID=0&amp;view=0000001a&amp;urn=urn:telelogic::1-432aa0956f684cff-O-23-00028f60">
            <record Object_Number="1.1.0-1" Object_Level="3" Object_Heading="" Object_Text="This document is, in fact, a database that summarizes specification and different aspects of diagnostic functions implemented in the system." Milestones="" Unique_ID="" Field_type="Info" SG_attribute="" Object_Identifier="24" Object_URL="doors://D1DDBAPP04:36677/?version=2&amp;prodID=0&amp;view=0000001a&amp;urn=urn:telelogic::1-432aa0956f684cff-O-24-00028f60"></record></record>
        <record Object_Number="1.2" Object_Level="2" Object_Heading="Review Checklist" 

{
msg+=错误消息;
//WriteLine(“{0}”,err.Message);
//错误=正确;
});
如果(msg==“”)
e、 结果=真;
我用VisualStudio生成的XSD模式

现在,对于分层数据,生成的XSD似乎遵循了深层结构,这对于已知级别的深度来说是好的,但是对于另一个深度来说则会失败

<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="record">
          <xs:complexType>
            <xs:sequence minOccurs="0">
              <xs:element maxOccurs="unbounded" name="record">
                <xs:complexType>
                  <xs:sequence minOccurs="0">
                    <xs:element maxOccurs="unbounded" name="record">
                      <xs:complexType>
                        <xs:sequence minOccurs="0">
                          <xs:element maxOccurs="unbounded" name="record">
                            <xs:complexType>
                              <xs:attribute name="Object_Number" type="xs:string" use="required" />
                              <xs:attribute name="Object_Level" type="xs:unsignedByte" use="required" />
                              <xs:attribute name="Object_Heading" type="xs:string" use="required" />
                              <xs:attribute name="Object_Text" type="xs:string" use="required" />
                              <xs:attribute name="Milestones" type="xs:string" use="required" />
                              <xs:attribute name="Unique_ID" type="xs:string" use="required" />
                              <xs:attribute name="Field_type" type="xs:string" use="required" />
                              <xs:attribute name="SG_attribute" type="xs:string" use="required" />
                              <xs:attribute name="Object_Identifier" type="xs:unsignedShort" use="required" />
                              <xs:attribute name="Object_URL" type="xs:string" use="required" />
                            </xs:complexType>
...
...
...

...
...
...
那么是否可以使用XSD检查嵌套方案


非常感谢您的提示,

将结构递归定义为

<xs:element name="record">
  <xs:complexType>
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="record"/>
      ....

....
xsd架构可以是递归的:
<xs:element name="record">
  <xs:complexType>
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element ref="record"/>
      ....