错误:schemalocation不包含名称空间位置对

时间:2015-11-09 09:52:52

标签: xml xsd stylus

我非常擅长使用XSD创建XML。我无法找到任何答案正确的命名空间语法,希望我能在这里得到一些帮助。

名称空间的声明似乎在Stylus中有效

TCHAR

是" urn:Magic xpa.printdata"有效的命名空间值?

在我从XSD验证XML后,我收到了一个错误' schemalocation不包含命名空间位置对'。第一对schemalocation在文本和#34; Magic xpa.prindata"之间有一个空格。什么是正确的语法?我尝试删除空格并验证了我的XML,但不应更改生成的XSD。我的雇主不希望我更改或删除提供的XSD中的任何字符。请告诉我,我错过了一些需要包含在我的XML中的命名空间。

1 个答案:

答案 0 :(得分:0)

命名空间名称可能 包含非转义空格,因为它们是URI,

  

2.1 Basic Concepts

     

[定义: XML命名空间由URI引用 [RFC3986]标识;元素和属性名称可以放在XML中   命名空间使用本规范中描述的机制。 ]

和URI不能包含未转义的空格。如果要在命名空间中嵌入空格,则必须对空格(%20)使用URL编码,并且您必须更改XSD。以下XML和XSD显示了如何:

XML

<?xml version="1.0" encoding="UTF-8"?>
<projectnr xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="urn:Magic%20xpa.printdata try.xsd">123456</projectnr>

XSD

<xs:schema xmlns="urn:Magic%20xpa.printdata" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           targetNamespace="urn:Magic%20xpa.printdata">
  <xs:element name="projectnr">
    <xs:simpleType>
      <xs:restriction base="xs:integer">
        <xs:totalDigits value="6"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
</xs:schema>