- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
当我们使用命名空间时,我们还应该指出其关联的 XSD 所在的位置,如下例所示:
<?xml version="1.0"?>
<Artist BirthYear="1958"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.webucator.com/Artist"
xsi:schemaLocation="http://www.webucator.com/Artist Artist.xsd">
<Name>
<Title>Mr.</Title>
<FirstName>Michael</FirstName>
<LastName>Jackson</LastName>
</Name>
</Artist>
在这里,我们指出 Artist.xsd 应该用于验证 http://www.webucator.com/Artist
命名空间。然而,我们也使用了 http://www.w3.org/2001/XMLSchema-instance
命名空间,但我们没有指定它的 XSD 所在的位置。 XML 解析器如何知道如何处理这个命名空间?
更新(回应第一个评论者)
那么,我们可以不使用:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ehcache="http://www.springmodules.org/schema/ehcache"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springmodules.org/schema/ehcache
http://www.springmodules.org/schema/cache/springmodules-ehcache.xsd">
...
</beans>
使用
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ehcache="http://www.springmodules.org/schema/ehcache">
...
</beans>
?
最佳答案
XML 解析器如何知道如何处理这个命名空间?
他们不会,除非他们会。基本思想是字符串 ' http://www.w3.org/2001/XMLSchema-instance ' 就像一个神奇的 cookies 。处理软件要么已被编程为识别它,并因此根据其含义采取行动,要么没有。
因此,仅仅通过识别这一事实,就可以“了解”它所代表的内容:a "namespace" that defines four attributes ('type'、'nil'、'schemaLocation' 和 'noNamespaceSchemaLocation')具有固定预定义的含义。
换句话说,如果您“知道”字符串 'http://www.w3.org/2001/XMLSchema-instance 是什么' “意味着”,那么你也自动知道是什么 an attribute named xsi:schemaLocation “意味着”:它指向以“W3C XML 模式”形式体系编码的模式文档。
这超出了 XML Namespaces Rec 的范围实际上提供了(这只是一些关于“通用名称”或诸如此类的东西)。这里有一个约定,命名空间的语法(使用殖民名称)已被部署为对语义理解进行硬编码:“在 W3C XML 模式的形式主义中,在哪里可以找到模式,对于这个文档实例。”这一切都取决于事先了解那个神奇的 cookie 字符串。
您的印象可能是命名空间必须有模式,并且机器可处理该模式,并且只能在 W3C XML 模式形式中启动。这些都不一定是真的。存在其他模式形式主义(SGML/XML DTD、Relax-NG,两者与 W3C XML 模式不同,都是 international standards );命名空间定义不必是机器可读的(它可以是散文,事实上它是针对“http://www.w3.org/2001/XMLSchema-instance”命名空间的!);并且命名空间根本不需要正式定义,因为保证命名空间字符串所做的只是用作消歧标记。
关于xml - 是 xmlns :xsi ="http://www.w3.org/2001/XMLSchema-instance" a special case in XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2615892/
什么是xmlns:android、xmlns:app、xmlns:tools,它们之间的基本区别是什么?什么时候应该使用它? 最佳答案 对于 android 和 app 命名空间,使用 this li
有人要求我从 http 端点提供以下 XML 文档,完全像:- ... 但是 Web API 吐出 ... 我用谷歌搜索并尝试了各种修复但无济于事
有没有办法声明这样的命名空间: xmlns:views="clr-namespace:xxx.xxx.Views" xmlns:someNestedViews="views.SomeNestedVie
这个工作正常。 curl -H 'Content-Type: application/xml' -d " " https://dashboard.onsip.com/http-bind 这个返回一
对于以下 XML 片段: xmlns、xmlns:xsi 和 xsi:schemaLocation 属性的确切含义是什么?它们有什么关系? : 的作用是什么? xsi:schemaLocation=
最佳答案 它提示属性 tools:context=".MainActivity"那是 的一部分标签。它不知道 tools: 是什么前缀表示。 您需要添加 xmlns:too
我在 C# Windows 窗体应用程序中使用 .Net XmlSerializer 将对象序列化为 XML 文档。 根元素应该看起来像这样: 在分部类中(加入由 xsd.exe 创建的分
太气人了,简直说不出话来。我已经使用 SimpleXML 组装了一个 RSS 提要,但它正在使用现在的 namespace 。但是,输出时,它不断尝试在根节点中声明 xmlns:xmlns=""。尽管
假设我的 Web 服务发出带有“xmlns”、“xmlns:xsi”和“xsi:schemaLocation”的 XML 设置为占位符,这些占位符不是有效的 URI(例如“blahblahblah”)
我在这里有一个关于 XML 的基本问题。声明元素的 xmlns 时属性,使用 http://www.w3.org/2001/XMLSchema 是否合法? ?并在声明 xmlns:xsi 时属性,使用
我需要从 XSD 生成的 Java 类生成 XML 文件。 这些 Java 类中的某些字段作为 Object 而不是任何具体类型,因此在生成的 XML 文件中保证有 xsi:type 属性,这很好。
这个问题已经有答案了: NLS missing message: CANNOT_FIND_FACELET_TAGLIB (3 个回答) 已关闭 8 年前。 我正在尝试在 jsf 中创建自定义标签,这是
我尝试通过 LINQ to XML 创建 GPX XML 文档。 除了向文档添加 xmlns、xmlns:xsi 属性外,一切都很好。通过尝试不同的方式,我得到了不同的异常。 我的代码: XDocum
有没有人遇到这个“xmlns”命名空间问题(见下文)?我无法再构建我的工作项目。 起初我以为这是我的 git 分支,所以我切换到 origin develop 和 master 分支 - 问题仍然存在
在使用 JAXB 时,我想在使用泛型时从我的 XML 元素中删除多余的命名空间/类型。我该怎么做或者我做错了什么?我想使用泛型,这样我只需编写一次代码块。 示例代码: public static vo
我喜欢将页面作为 HTML 4.01 提供,因为 XHTML 在某些浏览器中并没有真正被视为 XHTML,但是 Facebook's OpenGraph meta tags要求: 但是由于页面的 D
我需要复制一个 xml header : 用我的代码: 'Export the object to XML Dim writer As New XmlSerializ
将 WCF Restful 服务与 XmlSerializer 结合使用,我得到以下响应。 0010327457 false
我的要求是转换以下 xml 文件: 10122 LE NAME A0000000A 到新的 xml 文件 :( 所需的输出: )
众所周知,ConstraintLayout是目前android开发中最流行、最高效的布局。但是要使用它的属性,您必须先导入“xmlns:app”。当您需要使用 ConstraintLayout 创建许
我是一名优秀的程序员,十分优秀!