xml验证错误,全局元素和命名空间

时间:2014-08-29 09:12:05

标签: xml xsd

我有以下文件:

    <?xml version="1.0" encoding="UTF-8"?>
<Earth_Explorer_File>
   <Earth_Explorer_Header>
      <Fixed_Header>
         <File_Name>S2A_OPER_SRA_BANSEG_PDMC_20140825T152937_V20140101T120000_20140331T120000</File_Name>
         <File_Description>X-Band Banned Segments</File_Description>
         <Notes/>
         <Mission>Sentinel-2A</Mission>
         <File_Class>OPER</File_Class>
         <File_Type>BANSEG</File_Type>
         <Validity_Period>
            <Validity_Start>UTC=2014-01-01T12:00:00</Validity_Start>
            <Validity_Stop>UTC=2014-03-31T12:00:00</Validity_Stop>
         </Validity_Period>
         <File_Version>0001</File_Version>
         <Reference_File>S2_TEST_MPLAORBSCT_20120627T223001_99999999T999999_0001.EEF</Reference_File>
         <Source>
            <System>PDMC</System>
            <Creator>admin</Creator>
            <Creator_Version>0001</Creator_Version>
            <Creation_Date>UTC=2014-08-25T15:29:37</Creation_Date>
         </Source>
      </Fixed_Header>
   </Earth_Explorer_Header>
   <Data_Block type="xml">
      <List_of_X-Band_Banned_Segments count="0"/>
   </Data_Block>
</Earth_Explorer_File>

以及以下xsd:

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://eop-cfi.esa.int/CFI" xmlns="http://eop-cfi.esa.int/CFI">
    <xs:include schemaLocation="http://eop-cfi.esa.int/CFI/EE_CFI_SCHEMAS/TimeTypes_0201.XSD" />
    <xs:element name="Earth_Explorer_File">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Earth_Explorer_Header">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Fixed_Header">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="File_Name">
                                            <xs:simpleType>
                                                <xs:restriction base="xs:string">
                                                    <xs:pattern value="([A-Z0-9_]){3}_([A-Z0-9_]){4}_GSUNAV_([A-Z0-9_]){1,41}"/>
                                                </xs:restriction>
                                            </xs:simpleType>
                                        </xs:element>
                                        <xs:element type="xs:string" name="File_Description"/>
                                        <xs:element type="xs:string" name="Notes"/>
                                        <xs:element type="xs:string" name="Mission"/>
                                        <xs:element type="xs:string" name="File_Class"/>
                                        <xs:element type="xs:string" name="File_Type"/>
                                        <xs:element name="Validity_Period">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element type="UTC_Date_Time_Type" name="Validity_Start"/>
                                                    <xs:element type="UTC_Date_Time_Type" name="Validity_Stop"/>
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                        <xs:element type="xs:byte" name="File_Version"/>
                                        <xs:element type="xs:string" name="Reference_File"/>
                                        <xs:element name="Source">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element type="xs:string" name="System"/>
                                                    <xs:element type="xs:string" name="Creator"/>
                                                    <xs:element type="xs:byte" name="Creator_Version"/>
                                                    <xs:element type="UTC_Date_Time_Type" name="Creation_Date"/>
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Data_Block">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="List_of_X-Band_Banned_Segments">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="X-Band_Banned_Segment" maxOccurs="unbounded" minOccurs="0">
                                            <xs:complexType>
                                                <xs:sequence>
                                                    <xs:element type="UTC_Date_Time_Type" name="Banned_start_UTC"/>
                                                    <xs:element type="xs:long" name="Banned_start_absolute_orbit"/>
                                                    <xs:element type="UTC_Date_Time_Type" name="Banned_end_UTC"/>
                                                    <xs:element type="xs:long" name="Banned_end_absolute_orbit"/>
                                                </xs:sequence>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                    <xs:attribute type="xs:long" name="count"/>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                        <xs:attribute type="xs:string" name="type"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

</xs:schema>

我试图验证我的文档,但是我收到以下错误: 错误:元素&#39; Earth_Explorer_File&#39;:没有可用于验证根目录的匹配全局声明。

我认为这是一个非常愚蠢的事情要解决,但它大约一个小时,我无法摆脱它。我做错了什么?

谢谢。

1 个答案:

答案 0 :(得分:0)

我没有在xml文档中看到声明的命名空间。

你的xml应该是:

<Earth_Explorer_File xmlns="http://eop-cfi.esa.int/CFI">

或者你的xsd应该有:

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" 
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   targetNamespace=""
   xmlns="">