xml 中的xsi 是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xml 中的xsi 是啥意思?相关的知识,希望对你有一定的参考价值。

想请问 xml中这几行代码究竟是什么意思啊?

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

主要是问:xsi部分;还有目标名称空间的模式文档 是什么意思?

web.xml的根节点标签名称。

xmlns:xsi ——是指xml文件遵守xml规范,xsi全名:xml schema instance

xsi:schemaLocation——是指具体用到的schema资源。

schema就是schema。把他翻译成对文档的限制就行了。可能会说,dtd才是,实际上xsd和dtd是一样的。)

例如: xmlns:xsi 定义了一个命名空间前缀 xsi 对应的唯一字符串 http://www.w3.org/2001/XMLSchema-instance。这个 xmlns:xsi 在不同的 xml 文档中似乎都会出现。 

这是因为, xsi 已经成为了一个业界默认的用于 XSD((XML Schema Definition) 文件的命名空间。 而 XSD 文件(也常常称为 Schema 文件)是用来定义 xml 文档结构的。

 扩展资料

可扩展标记语言与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,可扩展标记语言仅仅是存储数据。事实上它与其他数据表现形式最大的不同是:可扩展标记语言极其简单,这是一个看上去有点琐细的优点,但正是这点使它与众不同。

XML的简单易于在任何应用程序中读/写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其他的数据交换格式,但不久之后都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS、Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析它,并以XML格式输出结果。

参考技术A

xsi全名xml schema instanceweb-app是web.xml的根节点标签名称。

xsi全名:xml schema instance。

web-app是web.xml的根节点标签名称。

version是版本的意思。

xmlns是web.xml文件用到的命名空间。

xmlns:xsi是指web.xml遵守xml规范。

xsi:schemaLocation是指具体用到的schema资源。 

例如: xmlns:xsi 定义了一个命名空间前缀 xsi 对应的唯一字符串 http://www.wir.org/2001/XMLSchema-instance。

xmlns:xsi 在不同的 xml 文档中似乎都会出现。 这是因为, xsi 已经成为了一个业界默认的用于 XSD((XML Schema Definition) 文件的命名空间。 而 XSD 文件(也常常称为 Schema 文件)是用来定义 xml 文档结构的。


扩展资料

可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。

在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 

非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML1.0规范,使用它来简化Internet的文档信息传输。

参考技术B

web.xml的根节点标签名称。

xmlns:xsi是指web.xml遵守xml规范,xsi全名:xml schema instance

使用语法xmlns:namespace-prefix="namespaceURI"。其中namespace-prefix为自定义前缀,只要在这个XML文档中保证前缀不重复即可;

namespaceURI是这个前缀对应的XML Namespace的定义,如例子1中namespace-prefix为xsi。这个命名空间里面的元素或者属性就必须要以xsi:这种方式来写,比如schemaLocation就是他的一个属性,所以写成xsi:schemaLocation。

扩展资料

随着Web应用的不断发展,html的局限性也越来越明显地显现了出来,如HTML无法描述数据、可读性差、搜索时间长等。人们又把目光转向SGML,再次改造SGML使之适应现在的网络需求。随着先辈的努力,1998年2月10日,W3C(World WideⅥiebConsortium,万维网联盟)公布XML 1.0标准,XML诞生了。

XML最初的设计目的是为了EDI(Electronic Data Interchange,电子数据交换),确切地说是为EDI提供一个标准数据格式。

参考技术C xsi全名:xml schema instance

web-app是web.xml的根节点标签名称
version是版本的意思
xmlns是web.xml文件用到的命名空间
xmlns:xsi是指web.xml遵守xml规范
xsi:schemaLocation是指具体用到的schema资源

你不要看相关中文资料,看了就不明白了,schema就是schema~你把他翻译成对文档的限制就行了。你可能会说,dtd才是,实际上xsd和dtd是一样的~~本回答被提问者采纳
参考技术D xmlns 属性可以在文档中定义一个或多个可供选择的命名空间。该属性可以放置在文档内任何元素的开始标签中。该属性的值类似于 URL,它定义了一个命名空间,浏览器会将此命名空间用于该属性所在元素内的所有内容。
xsi:schemaLocation用于声明了目标名称空间的模式文档
详情:
http://roein.com/tags/tag_prop_xmlns.asp.htm

XML 中的“独立”指令是啥意思?

【中文标题】XML 中的“独立”指令是啥意思?【英文标题】:What does the 'standalone' directive mean in XML?XML 中的“独立”指令是什么意思? 【发布时间】:2011-07-31 12:31:37 【问题描述】:

XML 文档中的“standalone”指令是什么意思?

【问题讨论】:

【参考方案1】:

standalone 描述当前 XML 文档是否依赖于外部标记声明。

W3C 在“可扩展标记语言(XML)1.0(第五版)”中描述了它的用途:

2.9 Standalone Document Declaration

【讨论】:

【参考方案2】:

标记声明会影响 文件的内容,如通过 从 XML 处理器到 应用;例子是属性 默认值和实体声明。这 独立文件声明,其中 可能作为 XML 的一个组件出现 声明,信号是否 有这样的声明 出现在文档实体的外部 或在参数实体中。 [定义: 外部标记声明是 定义为标记声明 发生在外部子集中或 参数实体(外部或 内部,后者包括在内 因为非验证处理器是 不需要阅读它们)。]

http://www.w3.org/TR/xml/#sec-rmd

【讨论】:

我投了反对票,因为这应该以中等 QI 的正常人可以理解的方式表达。【参考方案3】:

standalone 声明是一种告诉解析器忽略DTD 中的任何标记声明的方法。此后,DTD 仅用于验证。

例如,考虑不起眼的&lt;img&gt; 标签。如果您查看XHTML 1.0 DTD,您会看到一个标记声明告诉解析器&lt;img&gt; 标记必须为空并且具有srcalt 属性。当浏览器浏览 XHTML 1.0 文档并找到 &lt;img&gt; 标记时,它应该注意到 DTD 需要 srcalt 属性,如果它们不存在则添加它们。它还会自动关闭&lt;img&gt; 标签,因为它应该是空的。这就是XML specification 所指的“标记声明会影响文档的内容”。然后您可以使用standalone 声明告诉解析器忽略这些规则。

您的解析器是否真的这样做是另一个问题,但符合标准的验证解析器(如浏览器)应该这样做。

请注意,如果您不指定 DTD,那么独立声明“没有意义”,因此除非您还指定 DTD,否则没有理由使用它。

【讨论】:

示例需要进一步修改。具有“standalone='no'” 通常不会关闭未关闭的 XML 标记(这是 SGML 的一个特性,但不是 XML 的特性)。验证将失败。它也不会为必需的属性提供值。 “独立声明是告诉解析器忽略 DTD 中的任何标记声明的一种方式。”这是不正确的。使用standalone=yes,标记声明不会被忽略,而是会导致文档成为无效的 XML。你介意我把它编辑成答案吗? @sleske 请进行更改。如果作者不开心,他/她可以随时回复。 @Stephan:感谢您的鼓励。不幸的是,我不再了解整个 XML 内容,所以我现在不能自信地编辑。如果您有最新的知识,请随意编辑自己:-)。【参考方案4】: standalone 指令是 XML 声明的可选属性。 有效值为yesno,其中no 是默认值。 该属性仅在使用DTD 时才相关。 (当使用 schema 而不是 DTD 时,该属性无关紧要。) standalone="yes" 表示 XML 处理器必须仅使用 DTD 进行验证。在这种情况下,它将用于: 属性的默认值 实体声明 标准化 请注意,如果文档使用外部 DTD,standalone="yes" 可能会添加有效性约束。当文档包含需要修改 XML 的内容时,例如属性的默认值,并且使用 standalone="yes" then the document is invalid。 standalone="yes" 可能有助于优化文档处理的性能。

来源:The standalone pseudo-attribute is only relevant if a DTD is used

【讨论】:

使用 Standalone="yes" 会导致额外的有效性约束(即可能导致 XML 文档无效)。我将其编辑为答案,希望没关系。 @sleske 感谢您的贡献。我试图简化您的编辑,同时仍清楚地说明您的观点。如果我弄错了,请随时再次编辑。【参考方案5】:

standalone=yes 声明的目的是保证仅基于内部 DTD 可以忠实地检索文档中的信息,即文档可以“独立”而没有外部引用。验证独立文档可确保非验证处理器拥有所有可用于正确解析文档的信息。

如果文档没有外部 DTD,并且内部 DTD 没有参数实体引用,则独立声明不起作用,因为这些文档已经隐式独立。

以下是使用standalone=yes的实际效果。

如果文档包含对未在内部 DTD 中声明的实体的引用(参数实体的替换文本除外),则强制处理器在解析具有外部 DTD 或参数实体引用的文档时抛出错误验证处理器不需要解析它); ampltgtaposquot 是唯一的例外

在解析未声明为独立的文档时,非验证处理器可以在遇到参数实体引用时立即停止解析内部 DTD。将文档声明为独立的会强制非验证处理器解析内部 DTD 中的标记声明,即使它们忽略了一个或多个参数实体引用。

如果在文档中发现以下任何内容,并且它们各自的声明位于外部 DTD 或参数实体替换文本中,则强制验证处理器抛出错误:

具有默认值的属性,如果它们没有明确提供其值 实体引用(ampltgtaposquot 除外) 具有标记化类型的属性,如果属性的值将被规范化修改 具有元素内容的元素,如果其内容中出现任何空格

非验证处理器可能会考虑检索外部 DTD 并扩展非独立文档的所有参数实体引用,即使它没有义务这样做,即设置 standalone=yes 理论上可以提高非独立文档的性能验证处理器(剧透警告:它可能不会有所作为)。


这里的其他答案要么不完整要么不正确,主要的误解是

独立声明是告诉解析器忽略 DTD 中的任何标记声明的一种方式。此后,DTD 仅用于验证。

standalone="yes" 意味着 XML 处理器必须仅使用 DTD 进行验证。

恰恰相反,将文档声明为独立文档实际上会强制非验证处理器解析它通常必须忽略的内部声明(即那些在被忽略的参数实体引用之后的声明)。非验证处理器仍必须使用内部 DTD 中的信息来提供默认属性值并规范化标记化属性,因为这与验证无关。

【讨论】:

最佳答案

以上是关于xml 中的xsi 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

XML 中的“独立”指令是啥意思?

XML中的“xmlns”是啥意思?

xml文档中的XMLNS URL是啥意思

XML 中的 <![CDATA[]]> 是啥意思?

XML 中的 <![CDATA[]]> 是啥意思?

Android XML布局中的xmlns:tools是啥意思?