如何声明元素

时间:2018-07-09 12:08:42

标签: xml xsd xml-namespaces xsd-validation xml-validation

我正在寻找验证带有xrm前缀的XML文档,您可以在这里阅读:

我编写了以下XML模式:

     </xsd:extension>

  </xsd:complexContent>

</xsd:complexType>


</xsd:schema>

但是,当我检查XML文档时,出现以下错误:

  

“ xrm:plugin”不是“ NCName”的有效值

我知道我不能用xrm:来命名,但是如何验证xrm:pluginxrm:header呢? 因为,如果我尝试验证我的XML文档,则会收到此错误:

  

找不到元素'xrm:plugin'的声明。

1 个答案:

答案 0 :(得分:1)

xrm是名称空间前缀,是名称空间的缩写。如语法错误所示,未通过xsd:element/@name声明名称空间前缀。相反,只声明本地名称(plugin)并在XSD级别处理名称空间前缀声明...

这是XML和XSD的简化集,其中XML已针对XSD成功验证:

XML

<?xml version="1.0" encoding="UTF-8"?>
<xrm:plugin xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://www.moss.fr/2011/connecteur_xrm result.xsd"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:xrm="http://www.moss.fr/2011/connecteur_xrm">
  <xrm:header>
    <xrm:tracabilite>
      <xrm:reference_moss>MPD_4.1.1.0</xrm:reference_moss>
      <xrm:document_lie> </xrm:document_lie>
      <xrm:document_interface>SC-DIF-OT3402-0002-MOSS 1.8 - DIF COSCA Inc.2.doc</xrm:document_interface>
      <xrm:intervention>
        <xrm:auteur>Générateur de mapping v1.0</xrm:auteur>
        <xrm:date>14/01/2013</xrm:date>
        <xrm:commentaire>Génération du fichier de mapping</xrm:commentaire>
      </xrm:intervention>
    </xrm:tracabilite>
  </xrm:header>
</xrm:plugin>

XSD

<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:xrm="http://www.moss.fr/2011/connecteur_xrm"
            xmlns:SCCOAMCD="urn:SCCOA-schemaInfo"
            xmlns:SBEGestionZonesAeriennesSYSCA="urn:SBEGestionZonesAeriennesSYSCA-schema"
            SCCOAMCD:desc="  implémentation du MCD pivot du SCCOA 3.2.1ec  production par SCCOA mcd2mpd 4.1.1, le 11/12/2007  règles spécifiques production schémas 1.2  diagramme : A-SC.SBE GestionZonesAeriennes SYSCA  entité racine      : A-SC.ZoneAerienne "
            attributeFormDefault="unqualified"
            elementFormDefault="qualified"
            targetNamespace="http://www.moss.fr/2011/connecteur_xrm"
            version="3.2.1ec">
  <xsd:complexType name="header">
    <xsd:sequence>
      <xsd:any minOccurs="1" processContents="lax"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="plugin">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="header" type="xrm:header"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>