XML文档默认命名空间

时间:2014-05-27 07:23:51

标签: xml

一位朋友向我展示了以下XML文档并向我提出了一些问题。我想和你一起检查

对于XML文档

<?xml version="1.0"?>
<product xmlns:m="urn:example.com:catalog">
    <m:productInfo>
        <detail xmlns="urn:example.com:products">
            <name>Hello World!</name>
        </detail>
    </m:productInfo>
</product>

顶级<product>元素所属的命名空间的URI是什么? <productInfo>元素所属的命名空间的URI是什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

product位于no namespace(有时非正式地称为全局命名空间),因为虽然它定义了命名空间别名xmlns:m="urn:example.com:catalog",但product本身不在此命名空间中。

如果声明了产品,那么产品只会在名称空间urn:example.com:catalog中:

<m:product xmlns:m="urn:example.com:catalog">

或重置默认命名空间:

<product xmlns="urn:example.com:catalog">
由于上述原因,

productInfo位于名称空间urn:example.com:catalog中。

Detail重置默认命名空间:

<detail xmlns="urn:example.com:products">

这意味着detail和子元素(例如name)也位于命名空间urn:example.com:products