我非常擅长使用XSD创建XML。我无法找到任何答案正确的命名空间语法,希望我能在这里得到一些帮助。
名称空间的声明似乎在Stylus中有效:
TCHAR
是" urn:Magic xpa.printdata"有效的命名空间值?
在我从XSD验证XML后,我收到了一个错误' schemalocation不包含命名空间位置对'。第一对schemalocation在文本和#34; Magic xpa.prindata"之间有一个空格。什么是正确的语法?我尝试删除空格并验证了我的XML,但不应更改生成的XSD。我的雇主不希望我更改或删除提供的XSD中的任何字符。请告诉我,我错过了一些需要包含在我的XML中的命名空间。
答案 0 :(得分:0)
命名空间名称可能 不 包含非转义空格,因为它们是URI,
2.1 Basic Concepts
[定义: XML命名空间由URI引用 [RFC3986]标识;元素和属性名称可以放在XML中 命名空间使用本规范中描述的机制。 ]
和URI不能包含未转义的空格。如果要在命名空间中嵌入空格,则必须对空格(%20
)使用URL编码,并且您必须更改XSD。以下XML和XSD显示了如何:
<?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>
<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>