无法解析LAN上的XML架构(xsd),同时能够在我的PC上使用它验证XML

时间:2017-12-20 15:08:16

标签: xml validation xsd xml-parsing notepad++

如果我在本地存储所有文件和shema,我可以使用Notepad ++的XML扩展完美地验证xml对模式(xd - 文件),但是当我将它们存储在公司LAN上时,我在解析模式时遇到错误。

可能导致这种差异的原因是什么?

我的文件Empty.xml包含

<?xml version="1.0" encoding="UTF-8"?>
<aeoi_lux_fatca:AEOI_LUX version="2.0"
    xmlns:aeoi="urn:lu:etat:acd:aeoi_lux:v2.0"
    xmlns:aeoi_fatca="urn:lu:etat:acd:fatca:v2.0"
    xmlns:sfa="urn:oecd:ties:stffatcatypes:v2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:stf="urn:oecd:ties:stf:v4"
    xmlns:iso="urn:oecd:ties:isofatcatypes:v1"
    xmlns:aeoi_lux_fatca="urn:lu:etat:acd:aeoi_fatca:v2.0"
    xsi:schemaLocation="AEOI_FATCA_v2.0.xsd">
    <aeoi_lux_fatca:AEOI_FATCA> 

    </aeoi_lux_fatca:AEOI_FATCA>
</aeoi_lux_fatca:AEOI_LUX>

C:\<someFolder>\中将其保存在Notepad ++中,复制架构文件后会导致完全正常的验证错误:

ERROR: Element '{urn:lu:etat:acd:aeoi_fatca:v2.0}AEOI_FATCA': Missing child element(s). Expected is ( {urn:lu:etat:acd:aeoi_fatca:v2.0}AEOI_RefId ).

\\<myCompany>\lan\<someFolder>\中从Notepad ++保存它,在复制模式文件后导致解析模式文件时出错:

enter image description here

XML模式是FATCA declarations to the Luxembourg Competent tax Authorities的模式。

显然是AEOI_LUX_V2.0.xsd中的以下参考:

<xsd:element name="CountryPostal" type="iso:CountryCode_Type" minOccurs="0" maxOccurs="1"/>

无法解析为ISO_COUNTRY_CODES_V1.1.xsd

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited  by CTIE (CENTRE DES TECHNOLOGIES DE L'INFORMATION DE L'ETAT) -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
targetNamespace="urn:lu:etat:acd:aeoi:iso_cntry:v1" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.1">
    <!--  ISO 3166 alpha 2 Country Code extended -->
    <xsd:simpleType name="CountryCode_Type">
        <xsd:annotation>
            <xsd:documentation xml:lang="en">ISO-3166 Alpha 2 country codes</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="AF">
                <xsd:annotation>
                    <xsd:documentation>AFGHANISTAN</xsd:documentation>
                </xsd:annotation>
            </xsd:enumeration>
            ...
            <xsd:enumeration value="ZWL">
                <xsd:annotation>
                    <xsd:documentation>Zimbabwe Dollar: ZIMBABWE</xsd:documentation>
                </xsd:annotation>
            </xsd:enumeration>
        </xsd:restriction>
    </xsd:simpleType>
</xsd:schema>

isocrstypes_v1.0.xsd也被定义

可能是相关的
    {li} in isocrstypes_v1.0.xsd targetNamespace="urn:oecd:ties:isocrstypes:v1"
  • isofatcatypes_v1.1.xsd targetNamespace="urn:oecd:ties:isofatcatypes:v1"

对于比利时CA的FACTA声明的类似模式,我在lan文件夹上没有相同的问题。

1 个答案:

答案 0 :(得分:1)

我认为原因是没有导入ISO_COUNTRY_CODES_V1.1.xsd,因为找不到它的位置。

<xsd:import namespace="urn:lu:etat:acd:aeoi:iso_cntry:v1" schemaLocation="ISO_COUNTRY_CODES_V1.1.xsd" />
应使用正确的schemaLocation更改