样式表:SchemaLocation属性

0 xml xslt schema xsd

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

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

这是我的样式表代码.

CarriageDelivery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:SchemaLocation="Carriage_Delivery.xsd"
Run Code Online (Sandbox Code Playgroud)

而我正在尝试切换xmlns:xsi属性的位置,xsi:SchemaLocation就像这样..

CarriageDelivery xsi:SchemaLocation="Carriage_Delivery.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
Run Code Online (Sandbox Code Playgroud)

但在我生成的输出中,什么也没发生.

CarriageDelivery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:SchemaLocation="Carriage_Delivery.xsd"
Run Code Online (Sandbox Code Playgroud)

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

Lar*_*rsH 5

XML规范指出,属性的特定元素的顺序并不显著.因此,任何下游应用程序无论是否xmlns:xsi出现都应该无关紧要xsi:SchemaLocation,反之亦然.出于这个原因,大多数输出​​XML的程序(通常包括XSLT处理器)都没有给出任何控制或保证它们将输出属性的顺序.

你能解释一下为什么要指定订单吗?除了人类美学外,它应该没关系......