当前位置:网站首页>XML基础知识概念
XML基础知识概念
2022-07-05 18:34:00 【用户7741497】
XML基础知识概念
attribute
以下形式的名值对:
ID="QD5690"
属性位于元素中,如下所示,一个元素可以有任意数量的属性。
<Patient ID="QD5690">Cromley,Marcia N.</Patient>
CDATA区域
表示不应该验证的文本,如下所示:
<myelementname><![CDATA[
Non-validated data goes here.
You can even have stray "<" or ">" symbols in it.
]]></myelementname>
一个CDATA
(字符数据)区段不能包含字符串]]
>,因为这个字符串标志着区段的结束。 这也意味着CDATA
区段不能嵌套。
注意,CDATA
部分的内容必须符合为XML文档指定的编码,XML文档的其余部分也是如此。
comment
不是XML文档主数据的一部分的插入说明。 注释是这样的:
<!--Output for the class: GXML.PersonNS7-->
content model
对XML元素的可能内容的抽象描述。 可能的内容模型如下:
- 空内容模型(不允许有子元素或文本节点)
- 简单内容模型(只允许文本节点)
- 复杂内容模型(只有子元素)
- 混合内容模型(允许子元素和文本节点)
在所有情况下,元素可能有也可能没有属性; 短语内容模型不涉及元素中属性的存在或不存在。
default namespace
给定上下文中任何非限定元素所属的名称空间。 添加的默认名称空间没有前缀。 例如:
<Person xmlns="http://www.person.org">
<Name>Isaacs,Rob G.</Name>
<DOB>1981-01-29</DOB>
</Person>
因为这个名称空间声明没有使用前缀,所以<Person>
、<Name>
和<DOB>
元素都属于这个名称空间。
注意,下面的XML没有使用默认名称空间,它实际上等同于前面的示例:
<s01:Person s01:xmlns="http://www.person.org">
<s01:Name>Isaacs,Rob G.</s01:Name>
<s01:DOB>1981-01-29</s01:DOB>
</s01:Person>
DOM
文档对象模型(DOM)是表示XML和相关格式的对象模型。
DTD(文档类型定义)
包含在XML文档或外部文件中的一系列文本指令。 它定义了可以在文档中使用的所有有效元素和属性。 dtd本身不使用XML语法。
element
一个元素通常由两个标记(一个开始标记和一个结束标记)组成,可能包含文本和其他元素。 元素的内容是这两个标记之间的所有内容,包括文本和任何子元素。 下面是一个完整的XML元素,包含开始标记、文本内容和结束标记:
<Patient>Cromley,Marcia N.</Patient>
一个元素可以有任意数量的属性和任意数量的子元素。
空元素可以包含一个开始标记和一个结束标记,也可以只包含一个标记。 下面的例子是等价的:
<EndDate></EndDate>
<EndDate/>
在实践中,元素很可能引用数据记录的不同部分,例如
<Student level="undergraduate">
<Name>Barnes,Gerry</Name>
<DOB>1981-04-23</DOB>
</Student>
entity
(在XML文件中)表示一个或多个字符的文本单元。 一个实体有以下结构:
&characters;
global element
全局元素和局部元素的概念适用于使用名称空间的文档。 全局元素的名称与局部元素的名称放在一个单独的符号空间中。 全局元素是其类型具有全局作用域的元素,即其类型在相应XML模式的顶层定义的元素。 作为<xs:schema>
元素的子元素的元素声明被认为是全局声明。 任何其他元素声明都是局部元素,除非它通过ref属性引用全局声明,这实际上使它成为全局元素。
属性可以是全局的,也可以是局部的。
local element
不是全局的XML元素。 局部元素不显式属于任何名称空间,除非元素是限定的。 参见限定元素和全局元素。
namespace
名称空间是为标识符定义域的惟一字符串,以便基于xml的应用程序不会混淆一种类型的文档和另一种类型的文档。 它通常以URL(统一资源位置)的形式给出一个URI(统一资源指示器),它可能与实际的web地址对应,也可能不对应。 例如,“http://www.w3.org”
是一个名称空间。
使用以下语法之一包含命名空间声明:
xmlns="your_namespace_here"
pre:xmlns="your_namespace_here"
在这两种情况下,名称空间只在插入名称空间声明的上下文中使用。 在后一种情况下,名称空间与给定的前缀(pre)相关联。 当且仅当元素或属性也有此前缀时,元素或属性就属于该名称空间。 例如:
<s01:Person xmlns:s01="http://www.person.com">
<Name>Ravazzolo,Roberta X.</Name>
<DOB>1943-10-24</DOB>
</s01:Person>
命名空间声明使用s01
前缀。 <Person>
元素也使用了这个前缀,所以这个元素属于这个名称空间。 但是,<Name>
和<DOB>
元素并不显式地属于任何命名空间。
处理指令(PI)
一种指令(在序言中),旨在告诉应用程序如何使用XML文档或如何处理它。 一个例子; 这将样式表与文档关联起来。
<?xml-stylesheet type="text/css" href="mystyles.css"?>
prolog
XML文档中根元素之前的部分。 序言以XML声明(指示使用的XML版本)开始,然后可能包括DTD声明或模式声明以及处理指令。 (从技术上讲,不需要DTD
或模式。 此外,从技术上讲,可以将两者放在同一个文件中。)
root, root element, document element
每个XML文档都要求在最外层只有一个元素。 这称为根元素、根元素或文档元素。 根元素在序言之后。
qualified
如果显式地将元素或属性分配给名称空间,则该元素或属性是限定的。 考虑下面的例子,其中<Person>
的元素和属性是不限定的:
<?xml version="1.0" encoding="UTF-8"?>
<Root>
<s01:Person xmlns:s01="http://www.person.com" GroupID="J1151">
<Name>Frost,Sally O.</Name>
<DOB>1957-03-11</DOB>
</s01:Person>
</Root>
在这里,名称空间声明使用s01
前缀。 没有默认的命名空间。 <Person>
元素也使用了这个前缀,因此该元素属于这个名称空间。 <Name>
和<DOB>
元素或<GroupID>
属性没有前缀,因此它们不显式属于任何名称空间。
相反,考虑以下情况,其中<Person>
的元素和属性是限定的:
<?xml version="1.0" encoding="UTF-8"?>
<Root>
<Person xmlns="http://www.person.com" GroupID="J1151">
<Name>Frost,Sally O.</Name>
<DOB>1957-03-11</DOB>
</Person>
</Root>
在本例中,<Person>
元素定义了一个默认名称空间,该名称空间应用于子元素和属性。
注意:XML模式属性elementFormDefault
属性和attributeFormDefault
属性控制在给定的模式中元素和属性是否被限定。 在InterSystems IRIS XML支持中,使用类参数来指定元素是否限定。
schema
一种为一组XML文档指定元信息的文档,可作为DTD的替代。 与DTD一样,可以使用模式来验证特定XML文档的内容。 对于某些应用程序,XML模式提供了与dtd
相比的几个优势,包括:
- XML模式是有效的XML文档,因此更容易开发操作模式的工具。
- XML模式可以指定一组更丰富的特性,并包含值的类型信息。
形式上,模式文档是符合W3 XML模式规范的XML文档(在https://www.w3.org/XML/Schema
)。 它遵守XML规则,并使用一些额外的语法。 通常,文件的扩展名是.xsd
。
style sheet
用XSLT编写的文档,描述如何将给定的XML文档转换为另一个XML或其他“人类可读”的文档。
text node
包含在开始元素和相应结束元素之间的一个或多个字符。 例如:
<SampleElement>
sample text node
</SampleElement>
type
对数据解释的限制。 在XML模式中,每个元素和属性的定义对应于一个类型。
类型可以是简单的,也可以是复杂的。
每个属性都有一个简单类型。 简单类型还表示没有属性和子元素(只有文本节点)的元素。 复杂类型表示其他元素。
下面的模式片段展示了一些类型定义:
<s:complexType name="Person">
<s:sequence>
<s:element name="Name" type="s:string" minOccurs="0" />
<s:element name="DOB" type="s:date" minOccurs="0" />
<s:element name="Address" type="s_Address" minOccurs="0" />
</s:sequence>
<s:attribute name="GroupID" type="s:string" />
</s:complexType>
<s:complexType name="s_Address">
<s:sequence>
<s:element name="City" type="s:string" minOccurs="0" />
<s:element name="Zip" type="s:string" minOccurs="0" />
</s:sequence>
</s:complexType>
unqualified
如果没有显式地将元素或属性分配给名称空间,则该元素或属性是非限定的。
well-formed XML
遵循XML规则的XML文档或片段,例如有一个结束标记来匹配一个开始标记。
XML declaration
指示给定文档中使用的XML版本(以及可选的字符集)的语句。 如果包含,它必须是文档中的第一行。 一个例子:
<?xml version="1.0" encoding="UTF-8"?>
XPath
XPath (XML路径语言)是一种基于XML的表达式语言,用于从XML文档中获取数据。 结果可以是标量,也可以是原始文档的XML子树。
XSLT
XSLT(可扩展样式表语言转换)是一种基于XML的语言,用于描述如何将给定的XML文档转换为另一个XML或其他“人类可读的”文档。
边栏推荐
- 如何获取飞机穿过雷达两端的坐标
- ICML2022 | 长尾识别中分布外检测的部分和非对称对比学习
- sample_ What is the relationship between rate, sample and duration
- vulnhub之darkhole_2
- What is text mining? "Suggested collection"
- 达梦数据库udf实现
- The 10th global Cloud Computing Conference | Huayun data won the "special contribution award for the 10th anniversary of 2013-2022"
- Find in MySQL_ in_ Detailed explanation of set() function usage
- IDEA配置npm启动
- How much does the mlperf list weigh when AI is named?
猜你喜欢
@Extension, @spi annotation principle
AI open2022 | overview of recommendation systems based on heterogeneous information networks: concepts, methods, applications and resources
Record eval() and no in pytoch_ grad()
爬虫01-爬虫基本原理讲解
达梦数据库udf实现
解决 contents have differences only in line separators
小程序 修改样式 ( placeholder、checkbox的样式)
The main thread anr exception is caused by too many binder development threads
Share: ZTE Yuanhang 30 Pro root unlock BL magick ZTE 7532n 8040n 9041n brush mask original brush package root method Download
2022 Alibaba Android advanced interview questions sharing, 2022 Alibaba hand Taobao Android interview questions
随机推荐
什么是文本挖掘 ?「建议收藏」
Case sharing | integrated construction of data operation and maintenance in the financial industry
Electron installation problems
[QNX hypervisor 2.2 user manual]6.3.2 configuring VM
RPC protocol details
Find in MySQL_ in_ Detailed explanation of set() function usage
线性表——抽象数据类型
视频自监督学习综述
达梦数据库udf实现
Reading notes of Clickhouse principle analysis and Application Practice (5)
生词生词生词生词[2]
ROS安装报错 sudo: rosdep:找不到命令
Powerful tool for collection processing
LeetCode 6111. 螺旋矩阵 IV
Interprocess communication (IPC): shared memory
瞅一瞅JUC提供的限流工具Semaphore
IDEA配置npm启动
Einstein sum einsum
How to choose the most formal and safe external futures platform?
Writing writing writing