XML到XSD,没有名称空间绑定错误

时间:2014-04-22 12:57:26

标签: xml xsd xsd-validation

我的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">

1 个答案:

答案 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> 
相关问题