如果我在本地存储所有文件和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 ++保存它,在复制模式文件后导致解析模式文件时出错:
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
也被定义
isocrstypes_v1.0.xsd
targetNamespace="urn:oecd:ties:isocrstypes:v1"
和
isofatcatypes_v1.1.xsd
targetNamespace="urn:oecd:ties:isofatcatypes:v1"
。对于比利时CA的FACTA声明的类似模式,我在lan文件夹上没有相同的问题。
答案 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更改。