【问题标题】:what is the exact usage of xmlns in xml, and htmlxmlns 在 xml 和 html 中的确切用法是什么
【发布时间】:2010-11-25 05:12:14
【问题描述】:

有人知道xmlns 在 HTML、XML 文件中的确切用法吗?

编辑:为什么我们需要这个命名空间?它的用途是什么?

【问题讨论】:

标签: html xml namespaces


【解决方案1】:

xmlns 属性声明了一个XML NamespaceNamespaces in XML 标准深入讨论了这个元素。

命名空间主要用于避免混合 XML 语言时元素名称之间的冲突。如果您对某个特定的应用程序有疑问,也许您可​​以发布一个示例。

【讨论】:

    【解决方案2】:

    命名空间可让您在存在重复项时减少歧义。您可以有一个引用作者的<title> 标签和一个引用称呼的<title> 标签,例如先生、夫人等。为了区分,您可以将它们分配到不同的命名空间。

    您还可以在验证文档是否符合特定标准/限制时使用命名空间,其中命名空间将指示文档所属的“架构”。

    【讨论】:

      【解决方案3】:

      XML 命名空间有助于将元素和属性等上下文化。它还提供特定元素或属性的精确标识。

      例如,<html> 元素可以由任何人定义并具有任何含义。但是,http://www.w3.org/1999/xhtml 命名空间中的 <html> 元素是唯一的,并且引用 XHTML。

      在处理homographs、在单个文件中使用多种 XML 语言时,命名空间也很有用。

      【讨论】:

        【解决方案4】:

        xmlns 属性具有特殊处理,允许声明命名空间。

        文档中的所有名称,例如标签名称,都属于一个命名空间。在没有xmlns 属性的情况下,所有名称都属于“无名称”命名空间。因此:-

        <root><item /></root>
        

        在上面的示例中,rootitem 都是“无名称”命名空间中的名称。鉴于:-

        <root xmlns="urn:mydomain.com:mystuff"><item /></root>
        

        现在rootitem 存在于“urn:mydomain.com:mystuff”命名空间中。

        xmlns 可以进一步定义额外的命名空间元素,这些元素可以通过使用别名前缀与其他元素区分开来:-

        <root xmlns="urn:mydomain.com:mystuff" xmlns:a="urn:otherdomain.com:other">
            <item>
               <a:supplement />
            </item> 
        </root>
        

        在这种情况下,rootitem 继续位于“urn:mydomain.com:mystuff”命名空间中,但 a:supplement 表示名称 supplement 位于“urn:otherdomain.com:other”中" 命名空间。

        这样做有什么用?

        XML 中的 X 代表可扩展。一个目标是允许将附加信息分层到现有文档上,即扩展文档的能力。考虑:-

        甲方创建文件:-

         <root>
            <item />
         <root>
        

        乙方通过包含附加信息来扩展文档:-

         <root>
            <item />
            <supplement />
         </root>
        

        后来甲方在其原始文档形式中添加了新信息,恰好在其原始文档中也使用了名称supplement。我们最终可能会得到类似的结果:-

         <root>
            <item />
            <supplement />
            <supplement />
         </root>
        

        哪个补充元素属于哪一方?通过使用命名空间,文档将如下所示:-

         <root xmlns="urn:mydomain.com:mystuff" xmlns:a="urn:otherdomain.com:other">
            <item />
            <supplement />
            <a:supplement />
         </root>
        

        现在,在解析和查询 XML 时,它清楚哪个元素属于谁。命名空间消除了原本是一组简单名称的全局集合之间的冲突。

        【讨论】:

        • 当使用 urn 表单时,最好使用您拥有的域名,因为其他人不太可能在他们的 urn 定义中使用他们不拥有的域名。在其他情况下,您可以使用 URL。
        【解决方案5】:

        在 HTML 中,xmlns 只是一个护身符,可以更轻松地从 XHTML 迁移到 XHTML。它根本没有做任何事情。

        【讨论】:

          猜你喜欢
          • 2021-09-29
          • 2010-11-13
          • 2012-07-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-03-21
          相关资源
          最近更新 更多