XML与HTML
起首,XML与HTML相似的,都是一种标记言语。
当初在设想XML时,并不是为了将HTML赶下神坛,实际上,XML是为了别的一种目标设想的。
XML旨在传输信息,HTML旨在显现信息
HTML能够有什么标签,不能有什么标签,是被一系列范例束缚的;
但在XML中,能够定义自身的标签。
XML有什么用
由于XML是纯文本花样的,因而独立于任何硬件和软件,是一种真正的跨平台数据传输花样。
在XML的基本上,很多别的的手艺也得以降生,比方我们最熟习的web service,WSDL机制就是基于XML来完成的(也有基于JSON完成的)。
这都得益于XML是一种扩展性异常高的数据传输花样。
语法划定规矩
必需有封闭标签
如<a>,则必需有一个对应的与之配对,固然用<a name=""/>则是一种简单的缩写。大小写敏感
XML文档必需有根元素
属性值必需加引号
特别字符的转义
< - < > - > & - & ' - ' " - "
解释
<!-- this is a comment -->
元素定名划定规矩
称号能够含字母、数字以及其他的字符
称号不能以数字或许标点符号最先
称号不能以字符 “xml”(或许 XML、Xml)最先
称号不能包括空格
属性
属性必需加引号,假如属性自身有双引号,就用单引号围困它
<a name='steve "aplple" Jobs' />
XML考证
有很多考证体式格局来考证XML花样是不是优越。经常运用的有以下两种:
XML DTD
XML Schema
XML DTD
正当的 XML 文档是“情势优越”的 XML 文档,一样恪守文档范例定义 (DTD) 的语法划定规矩:
<?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>
在上例中,DOCTYPE 声明是对外部 DTD 文件的援用。下面的段落展现了这个文件的内容。
<!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)> ]>
XML Schema
W3C 支撑一种基于 XML 的 DTD 替代者,它名为 XML Schema:
<xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>
XML定名空间
定名空间的重要目标是处理元素定名争执的题目。以下两份XML配置文件有定名争执的题目:
<table> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table>
<table> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table>
运用定名空间来处理争执后:
<table xmlns="http://www.w3.org/TR/html4/"> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table>
<table xmlns="http://www.w3school.com.cn/furniture"> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table>
定名空间xmlns属性值自身并没有多大寄义,只是为了辨别定名空间的差别,但实际上xmlns会被开发者用来标识某些资本。
XML CDATA
一切 XML 文档中的文本均会被剖析器剖析。
只要 CDATA 区段(CDATA section)中的文本会被剖析器疏忽。
PCDATA
PCDATA 指的是被剖析的字符数据(Parsed Character Data)。
XML 剖析器通常会剖析 XML 文档中一切的文本。
当某个 XML 元素被剖析时,其标签之间的文本也会被剖析:
<message>此文本也会被剖析</message>
剖析器之所以这么做是由于 XML 元素可包括其他元素,就像这个例子中,个中的 <name> 元素包括着别的的两个元素(first 和 last):
<name><first>Bill</first><last>Gates</last></name>
而剖析器会把它分解为像如许的子元素:
<name> <first>Bill</first> <last>Gates</last> </name>
CDATA
术语 CDATA 指的是不应由 XML 剖析器举行剖析的文本数据(Unparsed Character Data)。
在 XML 元素中,"<" 和 "&" 是不法的。
"<" 会发生毛病,由于剖析器会把该字符解释为新元素的最先。
"&" 也会发生毛病,由于剖析器会把该字符解释为字符实体的最先。
某些文本,比方 JavaScript 代码,包括大批 "<" 或 "&" 字符。为了防止毛病,能够将剧本代码定义为 CDATA。
CDATA 部份中的一切内容都会被剖析器疏忽。
CDATA 部份由 "<![CDATA[" 最先,由 "]]>" 完毕:
<script> <![CDATA[ function matchwo(a,b) { if (a < b && a < 0) then { return 1; } else { return 0; } } ]]> </script>
在上面的例子中,剖析器会疏忽 CDATA 部份中的一切内容。
关于 CDATA 部份的解释:
CDATA 部份不能包括字符串 "]]>"。也不允许嵌套的 CDATA 部份。
标记 CDATA 部份末端的 "]]>" 不能包括空格或折行。
以上就是除Web程序员所关注的XML的细致基本引见的细致内容,更多请关注ki4网别的相干文章!