XML 文档默认命名空间

标签 xml

一位 friend 向我展示了以下 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 是什么?元素所属?

谢谢!

最佳答案

产品位于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 xmlns="urn:example.com:products">

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

关于XML 文档默认命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23883390/

相关文章:

android - 自定义列表适配器不会显示图片

java - 更新的 xml 数据未在 xml 文件中更新

xml - 在 MongoDB 中存储大型 XML

.net - 转换为 .NET 4 时应用程序崩溃(也绑定(bind) XML 程序集失败)

PHP解析xml xpath

php - 使用 json_encode 从 XML 转换为 json 会弄乱字符串的编码

xml - 为什么在 S3/Cloudfront 上刷新我的 Angular 6 项目会导致错误?

java - Android 中如何删除 View 与其轮廓边框之间的多余空格?

java - 无法合并 Dex - commons apache

python - Elementtree如何使用append移动xml节点?