样式表:SchemaLocation属性

时间:2014-06-19 20:07:09

标签: xml xslt xsd schema

在我的研究中,一旦我们有XML Schema Instance命名空间可用,我们就可以使用schemaLocation属性。

就它们在XML标记中的位置而言,命名空间是否始终位于模式位置之前?

这是我的样式表代码。

CarriageDelivery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:SchemaLocation="Carriage_Delivery.xsd"

我尝试切换xmlns:xsi属性和xsi:SchemaLocation这样的位置..

CarriageDelivery xsi:SchemaLocation="Carriage_Delivery.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

但在我生成的输出中,没有任何反应。

CarriageDelivery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:SchemaLocation="Carriage_Delivery.xsd"

我希望我能得到一个解释,为什么它总是最后出现。

1 个答案:

答案 0 :(得分:5)

XML spec表示给定元素的属性顺序不重要。所以 对于任何下游应用程序而言,xmlns:xsi之前是xsi:SchemaLocation是否出现无关紧要,反之亦然。出于这个原因,大多数输出​​XML的程序(通常包括XSLT处理器)都不会给你任何控制或保证它们输出属性的顺序。

您能解释一下为什么要指定订单吗?除了人类美学外,它不应该重要......