x
tensible M
arkup L
anguage)可扩展标记语言? 初次识别(1)官方的一些说法
宗旨是传输数据
,而非显示数据
(2)XML 仅仅是纯文本
(3)XML 是独立于软件和硬件之间的一种传输工具而已;
(1)可扩展性方面:HTML不允许用户自行定义他们自己的标识或属性,而在XML中,用户能够根据需要自行定义新的标识及属性名,以便更好地从语义上修饰数据。 (自定义标签的优势,方便阅读以及数据处理)
(2)标记语言:有自身的标签,各种各样的标签方便了数据的存储,识别,比如在HTML 中
(1)XML 应用于 web 开发的许多方面,常用于简化数据的存储和共享。
(2)XML 把数据从 HTML 分离:
(3)XML 简化数据共享
(4)XML 简化数据传输
(5)XML 简化平台的变更
(6)XML 使您的数据更有用
(1)XML 文档必须包含根元素。该元素是所有其他元素的父元素;
(2)XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端;
(3)所有元素均可拥有子元素;
(4)所有元素均可拥有文本内容和属性(类似 HTML 中);
XML 示例:
上图表示下面的 XML 中的一本书:
<bookstore>
<book category="COOKING"><title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price>
</book>
<book category="CHILDREN"><title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price>
</book>
<book category="WEB"><title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price>
</book>
</bookstore>
例子中的根元素是 ;
文档中的所有 元素都被包含在 中;
元素有 4 个子元素:
上述的例子完整的显示了 XML 的存储数据的方式以及形式
(1)所有 XML 元素都须有关闭标签
(2)XML 标签对大小写敏感
(3)XML 必须正确地嵌套
<b><i>This text is bold and italic</b></i>
在 XML 中,所有元素都必须彼此正确地嵌套:
<b><i>This text is bold and italic</i></b>
在上例中,正确嵌套的意思是:由于 <i> 元素是在 <b> 元素内打开的,那么它必须在 <b> 元素内关闭;
(4)XML 文档必须有根元素
(5)XML 的属性值须加引号
<note date=08/08/2008>
<to>George</to>
<from>John</from>
</note>
<note date="08/08/2008">
<to>George</to>
<from>John</from>
</note>
<!--在第一个文档中的错误是,note 元素中的 date 属性没有加引号;这是注释的写法-->
(6)在 XML 中,空格会被保留
HTML 会把多个连续的空格字符裁减(合并)为一个:
HTML: Hello my name is David.
输出: Hello my name is David.
什么是 XML 元素?
XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分
(一个标签的开始和结束就是里面的一个元素)
元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。
元素具有好的扩展性,例子如下所示:
<note>
<to>George</to>
<from>John</from>
<body>Don't forget the meeting!</body>
</note>
让我们设想一下,我们创建了一个应用程序,可将 、 以及 元素提取出来,并产生以下的输出:
MESSAGE
To: George
From: JohnDon't forget the meeting!
想象一下,之后这个 XML 文档作者又向这个文档添加了一些额外的信息:
<note>
<date>2008-08-08</date>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
<!--那么这个应用程序会中断或崩溃吗?不会。这个应用程序仍然可以找到 XML 文档中的 <to>、<from> 以及 <body> 元素,并产生同样的输出。XML 的优势之一,就是可以经常在不中断应用程序的情况进行扩展-->
XML 元素可以在开始标签中包含属性,类似 HTML;
属性使用双引号包裹起开,单引号也可以;
属性 (Attribute) 提供关于元素的额外(附加)信息;
请尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息;
传递的理念是:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素;
<!--不要做这样的蠢事(这不是 XML 应该被使用的方式):--><note day="08" month="08" year="2008"
to="George" from="John" heading="Reminder"
body="Don't forget the meeting!">
</note>
拥有正确语法的 XML 被称为“形式良好”的 XML;
通过 DTD 验证的 XML 是“合法”的 XML;
良好的 XML 语句需要有下面的特点:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note> version='1.0' 表示此xml的版本是1.0 encoding=‘ISO-8859-1’指的是 编码格式是ISO-8859-1
这个值随着你的需要而更改 可以是“UTF-8” 也可以是GB2312 在上例中,DOCTYPE 声明是对外部 DTD 文件的引用。下面的段落展示了这个文件的内容;
DTD 的作用是定义 XML 文档的结构。它使用一系列合法的元素来定义文档结构:
下面的 就是“Note.dtd”文档中的内容
<!DOCTYPE note [<!ELEMENT note (to,from,heading,body)><!ELEMENT to (#PCDATA)><!ELEMENT from (#PCDATA)><!ELEMENT heading (#PCDATA)><!ELEMENT body (#PCDATA)>
]> 展开成如下形式或许结构更明显一些:
<!DOCTYPE note
[<!ELEMENT note (to,from,heading,body)><!ELEMENT to (#PCDATA)><!ELEMENT from (#PCDATA)><!ELEMENT heading (#PCDATA)><!ELEMENT body (#PCDATA)>
]
> PCDATA
PCDATA 的意思是被解析的字符数据(parsed character data)。可把字符数据想象为 XML 元素的开始标签与结束标签之间的文本。PCDATA 是会被解析器解析的文本。这些文本将被解析器检查实体以及标记。文本中的标签会被当作标记来处理,而实体会被展开。不过,被解析的字符数据不应当包含任何 & < > 字符;需要使用 & < > 实体来分别替换它们。CDATA
CDATA 的意思是字符数据(character data)。CDATA 是不会被解析器解析的文本。在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开。
几个实体引用字符:
< <
> >
& &
" "
' '
本文发布于:2024-02-04 10:06:40,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170704722254613.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |