当前位置: 首页 > 知识库问答 >
问题:

XSD错误:CVC-complex-type2.4.a:发现以元素开头的内容无效

能烨华
2023-03-14

我有一个XML文件需要用XSD文件验证,但是当我想用XSD文件验证我XML时却出现了这个错误

CVC-Complex-Type2.4.a:发现以元素“ClientData”开头的内容无效。应为“{”http://www.mytest/xml/import/user/data“:clientdata}”之一。行“2”,列“27”。

这是我的XML文件

<?xml version="1.0" encoding="UTF-8"?>
<prefix:UteXmlComunicazione xmlns:prefix="http://www.myTest/xml/Import/user/data">
    <ClientData>
        <client>
            <pfPg>PF</pfPg>
            <Family>Alex White</Family>
            <name></name>
        </client>
        <vendor>
            <Timeperiod>
                <NumberofFactor></NumberofFactor>
                <year>2018</year>
            </Timeperiod>
            <Address>
                <Address1>
                    <top>Via</top>
                    <street>DANTE</street>
                    <number>108</number>
                    <Zipcode>20776</Zipcode>
                    <Code>033032</Code>
                </Address1>
            </Address>
        </vendor>
    </ClientData>
</prefix:UteXmlComunicazione>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.myTest/xml/Import/user/data" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="UteXmlComunicazione">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="ClientData" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="client" minOccurs="0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element type="xs:string" name="pfPg"/>
                    <xs:element type="xs:string" name="Family"/>
                    <xs:element type="xs:string" name="name"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="vendor" minOccurs="0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="TimePeriod" minOccurs="0">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element type="xs:short" name="year"/>
                          <xs:element type="xs:byte" name="NumberofFactor"/>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Address" minOccurs="0">

我不知道是什么问题...你能告诉我是什么问题吗?

共有1个答案

丁宏浚
2023-03-14

您的直接错误是由于clientdata不在XSD的目标命名空间中。看来您打算在根元素上声明一个默认的命名空间,但您只是更改了根元素的命名空间。

改变

<prefix:UteXmlComunicazione xmlns:prefix="http://www.myTest/xml/Import/user/data">

<UteXmlComunicazione xmlns="http://www.myTest/xml/Import/user/data">
<?xml version="1.0" encoding="UTF-8"?>
<UteXmlComunicazione 
    xmlns="http://www.myTest/xml/Import/user/data"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.myTest/xml/Import/user/data try.xsd"
    >
  <ClientData>
    <client>
      <pfPg>PF</pfPg>
      <Family>Alex White</Family>
      <name></name>
    </client>
    <vendor>
      <TimePeriod>
        <year>2018</year>
        <NumberofFactor>0</NumberofFactor>
      </TimePeriod>
    </vendor>
  </ClientData>
</UteXmlComunicazione>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
           targetNamespace="http://www.myTest/xml/Import/user/data"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="UteXmlComunicazione">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="ClientData" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="client" minOccurs="0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element type="xs:string" name="pfPg"/>
                    <xs:element type="xs:string" name="Family"/>
                    <xs:element type="xs:string" name="name"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="vendor" minOccurs="0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="TimePeriod" minOccurs="0">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element type="xs:short" name="year"/>
                          <xs:element type="xs:byte" name="NumberofFactor"/>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
 类似资料: