XML 架构 - 没有匹配的全局声明可用于验证根
XML schema - No matching global declaration available for the validation root
我正在尝试为以下 XML 文档创建一个 XML 架构。 https://www.nationalbanken.dk/_vti_bin/DN/DataService.svc/CurrencyRatesHistoryXML?lang=en
然后我安装了 XML 工具插件到我的 Notepad++ 并尝试根据架构验证 XML 文档。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ecb.int/vocabulary/2002-08-01/eurofxref" xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref" elementFormDefault="qualified">
<xs:element name="Envelope">
<xs:complexType>
<xs:sequence>
<xs:element name="subject" type="xs:string"></xs:element>
<xs:element name="Sender">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Cube">
<xs:complexType>
<xs:sequence>
<xs:element name="Cube" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Cube" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="currency" type="xs:string"></xs:attribute>
<xs:attribute name="rate" type="xs:double"></xs:attribute>
<xs:attribute name="name" type="xs:string"></xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="time" type="xs:date"></xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XML待验证
<gesmes:Envelope
xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref"
xmlns:gesmes="http://www.gesmes.org/xml/2002-08-01"
gesmes:schemaLocation="http://www.ecb.int/vocabulary/2002-08-01/eurofxref ..\StockDownloadResources\CurrenciesDownloadMANUAL.XSD">
<gesmes:subject>Exhange rates</gesmes:subject>
<gesmes:Sender>
<gesmes:name>Danmarks Nationalbank</gesmes:name>
</gesmes:Sender>
<Cube>
<Cube time="2019-07-25">
<Cube currency="AUD" rate="468.22" name="Australian dollars"/>
<Cube currency="BGN" rate="381.68" name="Bulgarian lev"/>
<Cube currency="BRL" rate="178.71" name="Brazilian real"/>
<Cube currency="CAD" rate="511.60" name="Canadian dollars"/>
<Cube currency="CHF" rate="679.30" name="Swiss francs"/>
<Cube currency="CNY" rate="97.72" name="Chinese yuan renminbi"/>
<Cube currency="CZK" rate="29.25" name="Czech koruny"/>
<Cube currency="EUR" rate="746.48" name="Euro"/>
<Cube currency="GBP" rate="839.09" name="Pounds sterling"/>
<Cube currency="HKD" rate="85.95" name="Hong Kong dollars"/>
<Cube currency="HRK" rate="101.10" name="Croatian kuna"/>
<Cube currency="HUF" rate="2.295" name="Hungarian forints"/>
<Cube currency="IDR" rate="0.0480" name="Indonesian rupiah"/>
<Cube currency="ILS" rate="190.49" name="Israeli shekel"/>
<Cube currency="INR" rate="9.74" name="Indian rupee"/>
<Cube currency="ISK" rate="5.493" name="Icelandic kronur *"/>
<Cube currency="JPY" rate="6.2129" name="Japanese yen"/>
<Cube currency="KRW" rate="0.5689" name="South Korean won"/>
<Cube currency="MXN" rate="35.35" name="Mexican peso"/>
<Cube currency="MYR" rate="163.23" name="Malaysian ringgit"/>
<Cube currency="NOK" rate="77.71" name="Norwegian kroner"/>
<Cube currency="NZD" rate="449.80" name="New Zealand dollars"/>
<Cube currency="PHP" rate="13.14" name="Philippine peso"/>
<Cube currency="PLN" rate="175.76" name="Polish zlotys"/>
<Cube currency="RON" rate="158.06" name="Romanian leu"/>
<Cube currency="RUB" rate="10.65" name="Russian rouble"/>
<Cube currency="SEK" rate="71.13" name="Swedish kronor"/>
<Cube currency="SGD" rate="491.78" name="Singapore dollars"/>
<Cube currency="THB" rate="21.76" name="Thai baht"/>
<Cube currency="TRY" rate="118.47" name="Turkish lira"/>
<Cube currency="USD" rate="671.60" name="US dollars"/>
<Cube currency="XDR" rate="925.37" name="SDR (Calculated **)"/>
<Cube currency="ZAR" rate="48.26" name="South African rand"/>
</Cube>
<!-- MORE CUBES HAS BEEN DELETED -->
</Cube>
</gesmes:Envelope>
但是当我尝试验证架构时,我收到以下验证错误:
使用 XML 模式验证当前文件:
错误:元素“{http://www.gesmes.org/xml/2002-08-01}信封”:没有可用于验证根的匹配全局声明。
在谷歌搜索此验证错误并提交此问题时,您会发现很多人都遇到过相同类型的错误。但是我遇到的 none 已经足够指导我解决问题了。
我错过了什么?
让我们先看看XML。它定义了以下命名空间和前缀:
xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref"
xmlns:gesmes="http://www.gesmes.org/xml/2002-08-01"
xmlns=
表示 XML 没有前缀的元素(即立方体)在 http://www.ecb.int/vocabulary/2002-08-01/eurofxref
命名空间中。 xmlns:gesmes
表示带有 gesmes
前缀的 XML 元素(即信封、主题、发件人、姓名)在 http://www.gesmes.org/xml/2002-08-01
命名空间中。
但是,您的架构将 targetNamespace 定义为 http://www.ecb.int/vocabulary/2002-08-01/eurofxref
,这意味着验证需要 Envelope 元素位于该命名空间中。但是 xml 说它应该在另一个命名空间中。这会导致无法在预期命名空间中找到预期元素的错误。
首先要认识到,模式文件只能在单个命名空间中定义元素,如 targetNamespace 属性所设置的那样。但是 XML 混合了具有不同命名空间的元素。所以我们立即知道我们必须有两个具有不同命名空间的模式文件,并且一个必须导入另一个。因此,一种用于信封材料的模式,一种用于立方体材料的模式。
让我们从 Cube 架构开始,因为它是内部元素。多维数据集元素位于 http://www.ecb.int/vocabulary/2002-08-01/eurofxref
命名空间中,因此它应该是该模式的 targetNamespace。然后我们像你一样定义 Cube 元素,像这样:
cube.xsd
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.ecb.int/vocabulary/2002-08-01/eurofxref"
elementFormDefault="qualified">
<xs:element name="Cube">
<!-- The rest of your Cube element definition -->
</xs:element>
</xs:schema>
所以所有的立方体元素现在都有一个架构,可以将它们放在正确的命名空间中。
现在我们需要定义信封架构,引用我们刚刚定义的立方体元素。 Envelope 元素位于 http://www.gesmes.org/xml/2002-08-01
命名空间中,因此这将是我们的目标命名空间。最好定义一个命名空间前缀,这样我们就可以引用立方体命名空间。我们需要导入多维数据集架构,以便我们可以在该命名空间中引用该多维数据集元素。像这样:
envelope.xsd
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:cube="http://www.ecb.int/vocabulary/2002-08-01/eurofxref"
targetNamespace="http://www.gesmes.org/xml/2002-08-01"
elementFormDefault="qualified">
<xs:import schemaLocation="cube.xsd" namespace="http://www.ecb.int/vocabulary/2002-08-01/eurofxref" />
<xs:element name="Envelope>
<xs:complexType>
<xs:sequence>
...
<xs:element ref="cube:Cube" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
因此,这将 Envelope、subject、Sender 和 name 元素定义在正确的 gesmes 命名空间中,并引用 Cube 命名空间中的 Cube 元素。
评论区不允许足够的字母来提供彻底的更新。
首先感谢 stevedlawrence,他已经给了我们一些见解 :)
cube.xsd
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.ecb.int/vocabulary/2002-08-01/eurofxref"
elementFormDefault="qualified">
<xs:element name="Cube">
<!-- The rest of your Cube element definition -->
<xs:complexType>
<xs:sequence>
<xs:element name="Cube" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Cube" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="currency" type="xs:string"></xs:attribute>
<xs:attribute name="rate" type="xs:double"></xs:attribute>
<xs:attribute name="name" type="xs:string"></xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="time" type="xs:date"></xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
envelope.xsd
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:cube="http://www.ecb.int/vocabulary/2002-08-01/eurofxref"
targetNamespace="http://www.gesmes.org/xml/2002-08-01"
elementFormDefault="qualified">
<xs:import schemaLocation="cube.xsd" namespace="http://www.ecb.int/vocabulary/2002-08-01/eurofxref" />
<xs:element name="Envelope">
<xs:complexType>
<xs:sequence>
<xs:element name="subject" type="xs:string"></xs:element>
<xs:element name="Sender">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="cube:Cube" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XML 文件downloaded
<gesmes:Envelope
xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref"
xmlns:gesmes="http://www.gesmes.org/xml/2002-08-01"
gesmes:schemaLocation="http://www.ecb.int/vocabulary/2002-08-01/eurofxref ..\StockDownloadResources\envelope.xsd">
<gesmes:subject>Exhange rates</gesmes:subject>
<gesmes:Sender>
<gesmes:name>Danmarks Nationalbank</gesmes:name>
</gesmes:Sender>
<Cube>
<Cube time="2019-07-25">
<Cube currency="AUD" rate="468.22" name="Australian dollars"/>
<Cube currency="BGN" rate="381.68" name="Bulgarian lev"/>
<Cube currency="BRL" rate="178.71" name="Brazilian real"/>
<Cube currency="CAD" rate="511.60" name="Canadian dollars"/>
<Cube currency="CHF" rate="679.30" name="Swiss francs"/>
<Cube currency="CNY" rate="97.72" name="Chinese yuan renminbi"/>
<Cube currency="CZK" rate="29.25" name="Czech koruny"/>
<Cube currency="EUR" rate="746.48" name="Euro"/>
<Cube currency="GBP" rate="839.09" name="Pounds sterling"/>
<Cube currency="HKD" rate="85.95" name="Hong Kong dollars"/>
<Cube currency="HRK" rate="101.10" name="Croatian kuna"/>
<Cube currency="HUF" rate="2.295" name="Hungarian forints"/>
<Cube currency="IDR" rate="0.0480" name="Indonesian rupiah"/>
<Cube currency="ILS" rate="190.49" name="Israeli shekel"/>
<Cube currency="INR" rate="9.74" name="Indian rupee"/>
<Cube currency="ISK" rate="5.493" name="Icelandic kronur *"/>
<Cube currency="JPY" rate="6.2129" name="Japanese yen"/>
<Cube currency="KRW" rate="0.5689" name="South Korean won"/>
<Cube currency="MXN" rate="35.35" name="Mexican peso"/>
<Cube currency="MYR" rate="163.23" name="Malaysian ringgit"/>
<Cube currency="NOK" rate="77.71" name="Norwegian kroner"/>
<Cube currency="NZD" rate="449.80" name="New Zealand dollars"/>
<Cube currency="PHP" rate="13.14" name="Philippine peso"/>
<Cube currency="PLN" rate="175.76" name="Polish zlotys"/>
<Cube currency="RON" rate="158.06" name="Romanian leu"/>
<Cube currency="RUB" rate="10.65" name="Russian rouble"/>
<Cube currency="SEK" rate="71.13" name="Swedish kronor"/>
<Cube currency="SGD" rate="491.78" name="Singapore dollars"/>
<Cube currency="THB" rate="21.76" name="Thai baht"/>
<Cube currency="TRY" rate="118.47" name="Turkish lira"/>
<Cube currency="USD" rate="671.60" name="US dollars"/>
<Cube currency="XDR" rate="925.37" name="SDR (Calculated **)"/>
<Cube currency="ZAR" rate="48.26" name="South African rand"/>
</Cube>
<!-- MORE CUBES HAS BEEN DELETED -->
</Cube>
</gesmes:Envelope>
当我 运行 模式的记事本++验证现在我得到这个错误:
使用 XML 模式验证当前文件:
错误:不允许元素“{http://www.gesmes.org/xml/2002-08-01}Envelope', attribute '{http://www.gesmes.org/xml/2002-08-01}schemaLocation': The attribute '{http://www.gesmes.org/xml/2002-08-01}schemaLocation”。
我正在尝试为以下 XML 文档创建一个 XML 架构。 https://www.nationalbanken.dk/_vti_bin/DN/DataService.svc/CurrencyRatesHistoryXML?lang=en
然后我安装了 XML 工具插件到我的 Notepad++ 并尝试根据架构验证 XML 文档。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ecb.int/vocabulary/2002-08-01/eurofxref" xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref" elementFormDefault="qualified">
<xs:element name="Envelope">
<xs:complexType>
<xs:sequence>
<xs:element name="subject" type="xs:string"></xs:element>
<xs:element name="Sender">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Cube">
<xs:complexType>
<xs:sequence>
<xs:element name="Cube" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Cube" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="currency" type="xs:string"></xs:attribute>
<xs:attribute name="rate" type="xs:double"></xs:attribute>
<xs:attribute name="name" type="xs:string"></xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="time" type="xs:date"></xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XML待验证
<gesmes:Envelope
xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref"
xmlns:gesmes="http://www.gesmes.org/xml/2002-08-01"
gesmes:schemaLocation="http://www.ecb.int/vocabulary/2002-08-01/eurofxref ..\StockDownloadResources\CurrenciesDownloadMANUAL.XSD">
<gesmes:subject>Exhange rates</gesmes:subject>
<gesmes:Sender>
<gesmes:name>Danmarks Nationalbank</gesmes:name>
</gesmes:Sender>
<Cube>
<Cube time="2019-07-25">
<Cube currency="AUD" rate="468.22" name="Australian dollars"/>
<Cube currency="BGN" rate="381.68" name="Bulgarian lev"/>
<Cube currency="BRL" rate="178.71" name="Brazilian real"/>
<Cube currency="CAD" rate="511.60" name="Canadian dollars"/>
<Cube currency="CHF" rate="679.30" name="Swiss francs"/>
<Cube currency="CNY" rate="97.72" name="Chinese yuan renminbi"/>
<Cube currency="CZK" rate="29.25" name="Czech koruny"/>
<Cube currency="EUR" rate="746.48" name="Euro"/>
<Cube currency="GBP" rate="839.09" name="Pounds sterling"/>
<Cube currency="HKD" rate="85.95" name="Hong Kong dollars"/>
<Cube currency="HRK" rate="101.10" name="Croatian kuna"/>
<Cube currency="HUF" rate="2.295" name="Hungarian forints"/>
<Cube currency="IDR" rate="0.0480" name="Indonesian rupiah"/>
<Cube currency="ILS" rate="190.49" name="Israeli shekel"/>
<Cube currency="INR" rate="9.74" name="Indian rupee"/>
<Cube currency="ISK" rate="5.493" name="Icelandic kronur *"/>
<Cube currency="JPY" rate="6.2129" name="Japanese yen"/>
<Cube currency="KRW" rate="0.5689" name="South Korean won"/>
<Cube currency="MXN" rate="35.35" name="Mexican peso"/>
<Cube currency="MYR" rate="163.23" name="Malaysian ringgit"/>
<Cube currency="NOK" rate="77.71" name="Norwegian kroner"/>
<Cube currency="NZD" rate="449.80" name="New Zealand dollars"/>
<Cube currency="PHP" rate="13.14" name="Philippine peso"/>
<Cube currency="PLN" rate="175.76" name="Polish zlotys"/>
<Cube currency="RON" rate="158.06" name="Romanian leu"/>
<Cube currency="RUB" rate="10.65" name="Russian rouble"/>
<Cube currency="SEK" rate="71.13" name="Swedish kronor"/>
<Cube currency="SGD" rate="491.78" name="Singapore dollars"/>
<Cube currency="THB" rate="21.76" name="Thai baht"/>
<Cube currency="TRY" rate="118.47" name="Turkish lira"/>
<Cube currency="USD" rate="671.60" name="US dollars"/>
<Cube currency="XDR" rate="925.37" name="SDR (Calculated **)"/>
<Cube currency="ZAR" rate="48.26" name="South African rand"/>
</Cube>
<!-- MORE CUBES HAS BEEN DELETED -->
</Cube>
</gesmes:Envelope>
但是当我尝试验证架构时,我收到以下验证错误:
使用 XML 模式验证当前文件: 错误:元素“{http://www.gesmes.org/xml/2002-08-01}信封”:没有可用于验证根的匹配全局声明。
在谷歌搜索此验证错误并提交此问题时,您会发现很多人都遇到过相同类型的错误。但是我遇到的 none 已经足够指导我解决问题了。
我错过了什么?
让我们先看看XML。它定义了以下命名空间和前缀:
xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref"
xmlns:gesmes="http://www.gesmes.org/xml/2002-08-01"
xmlns=
表示 XML 没有前缀的元素(即立方体)在 http://www.ecb.int/vocabulary/2002-08-01/eurofxref
命名空间中。 xmlns:gesmes
表示带有 gesmes
前缀的 XML 元素(即信封、主题、发件人、姓名)在 http://www.gesmes.org/xml/2002-08-01
命名空间中。
但是,您的架构将 targetNamespace 定义为 http://www.ecb.int/vocabulary/2002-08-01/eurofxref
,这意味着验证需要 Envelope 元素位于该命名空间中。但是 xml 说它应该在另一个命名空间中。这会导致无法在预期命名空间中找到预期元素的错误。
首先要认识到,模式文件只能在单个命名空间中定义元素,如 targetNamespace 属性所设置的那样。但是 XML 混合了具有不同命名空间的元素。所以我们立即知道我们必须有两个具有不同命名空间的模式文件,并且一个必须导入另一个。因此,一种用于信封材料的模式,一种用于立方体材料的模式。
让我们从 Cube 架构开始,因为它是内部元素。多维数据集元素位于 http://www.ecb.int/vocabulary/2002-08-01/eurofxref
命名空间中,因此它应该是该模式的 targetNamespace。然后我们像你一样定义 Cube 元素,像这样:
cube.xsd
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.ecb.int/vocabulary/2002-08-01/eurofxref"
elementFormDefault="qualified">
<xs:element name="Cube">
<!-- The rest of your Cube element definition -->
</xs:element>
</xs:schema>
所以所有的立方体元素现在都有一个架构,可以将它们放在正确的命名空间中。
现在我们需要定义信封架构,引用我们刚刚定义的立方体元素。 Envelope 元素位于 http://www.gesmes.org/xml/2002-08-01
命名空间中,因此这将是我们的目标命名空间。最好定义一个命名空间前缀,这样我们就可以引用立方体命名空间。我们需要导入多维数据集架构,以便我们可以在该命名空间中引用该多维数据集元素。像这样:
envelope.xsd
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:cube="http://www.ecb.int/vocabulary/2002-08-01/eurofxref"
targetNamespace="http://www.gesmes.org/xml/2002-08-01"
elementFormDefault="qualified">
<xs:import schemaLocation="cube.xsd" namespace="http://www.ecb.int/vocabulary/2002-08-01/eurofxref" />
<xs:element name="Envelope>
<xs:complexType>
<xs:sequence>
...
<xs:element ref="cube:Cube" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
因此,这将 Envelope、subject、Sender 和 name 元素定义在正确的 gesmes 命名空间中,并引用 Cube 命名空间中的 Cube 元素。
评论区不允许足够的字母来提供彻底的更新。
首先感谢 stevedlawrence,他已经给了我们一些见解 :)
cube.xsd
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.ecb.int/vocabulary/2002-08-01/eurofxref"
elementFormDefault="qualified">
<xs:element name="Cube">
<!-- The rest of your Cube element definition -->
<xs:complexType>
<xs:sequence>
<xs:element name="Cube" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Cube" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="currency" type="xs:string"></xs:attribute>
<xs:attribute name="rate" type="xs:double"></xs:attribute>
<xs:attribute name="name" type="xs:string"></xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="time" type="xs:date"></xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
envelope.xsd
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:cube="http://www.ecb.int/vocabulary/2002-08-01/eurofxref"
targetNamespace="http://www.gesmes.org/xml/2002-08-01"
elementFormDefault="qualified">
<xs:import schemaLocation="cube.xsd" namespace="http://www.ecb.int/vocabulary/2002-08-01/eurofxref" />
<xs:element name="Envelope">
<xs:complexType>
<xs:sequence>
<xs:element name="subject" type="xs:string"></xs:element>
<xs:element name="Sender">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"></xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="cube:Cube" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XML 文件downloaded
<gesmes:Envelope
xmlns="http://www.ecb.int/vocabulary/2002-08-01/eurofxref"
xmlns:gesmes="http://www.gesmes.org/xml/2002-08-01"
gesmes:schemaLocation="http://www.ecb.int/vocabulary/2002-08-01/eurofxref ..\StockDownloadResources\envelope.xsd">
<gesmes:subject>Exhange rates</gesmes:subject>
<gesmes:Sender>
<gesmes:name>Danmarks Nationalbank</gesmes:name>
</gesmes:Sender>
<Cube>
<Cube time="2019-07-25">
<Cube currency="AUD" rate="468.22" name="Australian dollars"/>
<Cube currency="BGN" rate="381.68" name="Bulgarian lev"/>
<Cube currency="BRL" rate="178.71" name="Brazilian real"/>
<Cube currency="CAD" rate="511.60" name="Canadian dollars"/>
<Cube currency="CHF" rate="679.30" name="Swiss francs"/>
<Cube currency="CNY" rate="97.72" name="Chinese yuan renminbi"/>
<Cube currency="CZK" rate="29.25" name="Czech koruny"/>
<Cube currency="EUR" rate="746.48" name="Euro"/>
<Cube currency="GBP" rate="839.09" name="Pounds sterling"/>
<Cube currency="HKD" rate="85.95" name="Hong Kong dollars"/>
<Cube currency="HRK" rate="101.10" name="Croatian kuna"/>
<Cube currency="HUF" rate="2.295" name="Hungarian forints"/>
<Cube currency="IDR" rate="0.0480" name="Indonesian rupiah"/>
<Cube currency="ILS" rate="190.49" name="Israeli shekel"/>
<Cube currency="INR" rate="9.74" name="Indian rupee"/>
<Cube currency="ISK" rate="5.493" name="Icelandic kronur *"/>
<Cube currency="JPY" rate="6.2129" name="Japanese yen"/>
<Cube currency="KRW" rate="0.5689" name="South Korean won"/>
<Cube currency="MXN" rate="35.35" name="Mexican peso"/>
<Cube currency="MYR" rate="163.23" name="Malaysian ringgit"/>
<Cube currency="NOK" rate="77.71" name="Norwegian kroner"/>
<Cube currency="NZD" rate="449.80" name="New Zealand dollars"/>
<Cube currency="PHP" rate="13.14" name="Philippine peso"/>
<Cube currency="PLN" rate="175.76" name="Polish zlotys"/>
<Cube currency="RON" rate="158.06" name="Romanian leu"/>
<Cube currency="RUB" rate="10.65" name="Russian rouble"/>
<Cube currency="SEK" rate="71.13" name="Swedish kronor"/>
<Cube currency="SGD" rate="491.78" name="Singapore dollars"/>
<Cube currency="THB" rate="21.76" name="Thai baht"/>
<Cube currency="TRY" rate="118.47" name="Turkish lira"/>
<Cube currency="USD" rate="671.60" name="US dollars"/>
<Cube currency="XDR" rate="925.37" name="SDR (Calculated **)"/>
<Cube currency="ZAR" rate="48.26" name="South African rand"/>
</Cube>
<!-- MORE CUBES HAS BEEN DELETED -->
</Cube>
</gesmes:Envelope>
当我 运行 模式的记事本++验证现在我得到这个错误:
使用 XML 模式验证当前文件: 错误:不允许元素“{http://www.gesmes.org/xml/2002-08-01}Envelope', attribute '{http://www.gesmes.org/xml/2002-08-01}schemaLocation': The attribute '{http://www.gesmes.org/xml/2002-08-01}schemaLocation”。