在XML、how/why中可以在命名空间未定义之前使用它吗?

In XML, how/why can you use a namespace before it is defined?

我见过像下面这样的示例,其中 xs 在使用 xmlns 声明 [如果这是正确的词] 之前使用。这怎么可能?

这是我指的那种代码。你可以找到它 here:

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
...
</xs:schema>

为什么xlmns:xs晚了才允许xs:schema?这是如何解决的?

即使 xs:schema 中的 xs: 名称空间前缀在 词法上出现在 其声明之前,[=声明的 19=]scope 实际上包括声明出现的元素(及其所有后代),所以

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
...
</xs:schema>

完全正确(而且很常见)。