需要XML中的命名空间

 龙之图皮具 发布于 2023-02-09 11:36

我理解在XML中,如果我对两个不同的标签有相同的tagName,那么为了将它们中的两个分开,我们在它之前加上命名空间以使其唯一.但是当我们说时,在顶部


现在,为什么我们有这个http://www.myNameSpace.com?除了它将是独一无二的事实之外,它的用途是什么.

此外,我正在阅读有关xslt的内容,因为它也是一个XML,所以它将命名空间定义为

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

现在,首先,这个链接究竟是什么告诉我的,它如何帮助xml渲染?那么除了独特之外,它还能提供什么吗?为什么要达到这样的程度呢?如果在XML中,我在两个标签之间存在冲突,我可以使用任意两个名称空间,比如namespace1和namespace2并使用它.

这里有什么我想念的吗?

1 个回答
  • 通常,除了唯一标识与其关联的元素之外,XML命名空间不起任何作用.

    换句话说,字符串" http://www.myNameSpace.com "如下:

    <rootElement xmlns:myNameSpace="http://www.myNameSpace.com">
    

    纯粹是武断的.它没有必要指向任何地方.此外,所谓的前缀(在这种情况下myNameSpace,"xmlns:"之后的部分)是任意的,只是说" http://www.myNameSpace.com " 的简写方式.

    话虽如此,保留一些:

    1)命名空间可以帮助在大文件中构建XML数据,例如OpenXML格式的Microsoft Word文档:

    这是典型OOXML中存在的命名空间的摘录:

    xmlns:aml="http://schemas.microsoft.com/aml/2001/core"
    xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas"
    xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    

    因此,尽管没有固有的理由可以使用单独的命名空间,但它有助于将XML词汇表划分为有意义的类别.

    2)正如你所注意到的那样,对任意定义命名空间有一些限制:

    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    

    这将元素标识为属于XSLT名称空间.但是,除此之外,它意味着这样标记的元素由XSLT处理器识别为不仅仅是XML代码,而是要执行的XSLT指令.

    链接" http://www.w3.org/1999/XSL/Transform "指向XSLT规范,其中规定了转换XML文档的规则.现在,回答您的问题:声明命名空间无助于转换.相反,如果省略XSLT处理器,则XSLT处理器无法识别XSLT代码.

    可以定义命名空间"namespaceA"和"namespaceB":

    xmlns:nsA="namespaceA"
    xmlns:nsB="namespaceB"
    

    但是你不能用它们来转换XML,除非你只是想改变前缀:

    xmlns:nsA="http://www.w3.org/1999/XSL/Transform"
    

    这被认为是不好的做法.

    2023-02-09 11:37 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有