使用<xs:any>针对XSD验证XML - 警告:找不到元素的架构信息</xs:any>

时间:2013-11-29 16:35:46

标签: c# xml validation xsd

我正在尝试针对XSD验证我的XML文件,以检查文件是否具有正确的格式。 在我的XSd文件中,我希望Row元素包含尽可能多的元素,即any元素。

使用在线验证器,我检查了XSD的有效性,并在我要检查的其中一个文件上检查了我的架构。一切都是有效的。 在线验证器就是这个:http://www.utilities-online.info/xsdvalidation/

我的解析代码基于这个主题:c# XML Schema validation

我知道我的文件无效:Could not find schema information for the element <MYELEMENT>

找不到的元素是我的Row元素内容中的元素。

完整的.XSD是:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Root">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Row" minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:any minOccurs='1' maxOccurs='unbounded' processContents="lax" />
            </xs:sequence>
          </xs:complexType>
         </xs:element>
       </xs:sequence>
     </xs:complexType>

我测试过的XML是:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Root>
    <Row>
        <MODE_SAISIE_CT>'DEGRADE'</MODE_SAISIE_CT>
        <MODE_STATUT>'F'</MODE_STATUT>
        <MODE_LIBELLE>'Dégradé'</MODE_LIBELLE>
        <DATE_MODE_DEGRADE>'17/08/2011 15:28:17'</DATE_MODE_DEGRADE>
    </Row>
    <Row>
        <MODE_SAISIE_CT>'STANDARD'</MODE_SAISIE_CT>
        <MODE_STATUT>'V'</MODE_STATUT>
        <MODE_LIBELLE>'Standard'</MODE_LIBELLE>
        <DATE_MODE_DEGRADE>'17/08/2011 15:53:06'</DATE_MODE_DEGRADE>
    </Row>
</Root>

如果我的架构中有任何元素,我该如何管理解析?

1 个答案:

答案 0 :(得分:1)

如果没有看到显示该问题的完整XSD和输入XML,则不清楚推荐什么,但是这个工作示例可能会帮助您确定问题所在:

此输入XML:

<?xml version="1.0" encoding="utf-8"?>
<root>
  <Row>
    <MYELEMENT/>
  </Row>
</root>

对此XSD有效:

<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="root">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Row">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:any processContents="lax" maxOccurs="unbounded"/>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>