我的xml就是这个,我也写了xsd。命名空间的正确方法是什么?它给出错误。 **前缀未绑定**它可以使用名称空间
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Authorization xmlns="www.abc.com/AB_2012_09_14.xsd">
<CVCCodeSwitch />
</Authorization>
我写的XSD给出的错误是“xs”前缀没有绑定。
参考XSD。
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<xs:schema xlmns:xs="www.abc.com/AB_2012_09_14" elementFormDefault="qualified">
<xs:element name="CVCCodeSwitch" type="xs:integer"/>
<xs:element name="Amount" type="xs:decimal"/>
<xs:element name="TransactionDate">
答案 0 :(得分:1)
首先,您的xmlns
属性拼写不正确(您编写了xlmns
),因此解析器会抱怨xs
前缀未绑定。
如果您修复了此错误,则会出现另一个错误,因为您无法将schema
元素绑定到命名空间。您必须将它们绑定到XML Schema名称空间:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" ... >
要限定类型,您需要将命名空间声明为模式的targetNamespace
和默认xmlns
命名空间(它必须与实例中的命名空间相同):
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="www.abc.com/AB_2012_09_14.xsd"
targetNamespace="www.abc.com/AB_2012_09_14.xsd"
elementFormDefault="qualified"> ...
最后,您的实例将无效,因为根据架构,CVCCodeSwitch
元素不能为空(它必须包含整数)。它将验证您是否将其更改为:
<CVCCodeSwitch>0</CVCCodeSwitch>