除Web程序员所关注的XML的详细基础介绍
时间:2017-04-21 17:17
首先,XML与HTML类似的,都是一种标记语言。 当初在设计XML时,并非为了将HTML赶下神坛,实际上,XML是为了另外一种目的设计的。 XML旨在传输信息,HTML旨在显示信息 HTML可以有什么标签,不能有什么标签,是被一系列规范http://www.gxlsystem.com/code/12132.html" target="_blank">约束的; 由于XML是纯文本格式的,因此独立于任何硬件和软件,是一种真正的跨平台数据传输格式。 在XML的基础上,许多其它的技术也得以诞生,比如我们最熟悉的web service,WSDL机制便是基于XML来实现的(也有基于JSON实现的)。 这都得益于XML是一种扩展性非常高的数据传输格式。 必须有关闭标签 大小写敏感 XML文档必须有根元素 属性值必须加引号 特殊字符的转义 注释 名称可以含字母、数字以及其他的字符 名称不能以数字或者标点符号开始 名称不能以字符 “xml”(或者 XML、Xml)开始 名称不能包含空格 属性必须加引号,如果属性本身有双引号,就用单引号包围它 有许多验证方式来验证XML格式是否良好。常用的有以下两种: XML DTD XML Schema 合法的 XML 文档是“形式良好”的 XML 文档,同样遵守文档类型定义 (DTD) 的语法规则: 在上例中,DOCTYPE 声明是对外部 DTD 文件的引用。下面的段落展示了这个文件的内容。 W3C 支持一种基于 XML 的 DTD 代替者,它名为 XML Schema: 命名空间的主要目的是解决元素命名冲突的问题。以下两份XML配置文件有命名冲突的问题: 使用命名空间来解决冲突后: 命名空间xmlns属性值本身并没有多大含义,只是为了区分命名空间的不同,但实际上xmlns会被开发者用来标识某些资源。 所有 XML 文档中的文本均会被解析器解析。 只有 CDATA 区段(CDATA section)中的文本会被解析器忽略。 PCDATA 指的是被解析的字符数据(Parsed Character Data)。 解析器之所以这么做是因为 XML 元素可包含其他元素,就像这个例子中,其中的 <name> 元素包含着另外的两个元素(first 和 last): 而解析器会把它分解为像这样的子元素: 术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。 在 XML 元素中,"<" 和 "&" 是非法的。 "<" 会产生错误,因为解析器会把该字符解释为新元素的开始。 "&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。 某些文本,比如 JavaScript 代码,包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。 CDATA 部分中的所有内容都会被解析器忽略。 CDATA 部分由 "<![CDATA[" 开始,由 "]]>" 结束: 在上面的例子中,解析器会忽略 CDATA 部分中的所有内容。 关于 CDATA 部分的注释: CDATA 部分不能包含字符串 "]]>"。也不允许嵌套的 CDATA 部分。 标记 CDATA 部分结尾的 "]]>" 不能包含空格或折行。 以上就是除Web程序员所关注的XML的详细基础介绍的详细内容,更多请关注gxlsystem.com其它相关文章!XML与HTML
但在XML中,可以定义自己的标签。XML有什么用
语法规则
如<a>,则必须有一个对应的与之配对,当然用<a name=""/>则是一种简略的缩写。< - <
> - >
& - &
' - '
" - "
<!-- this is a comment -->元素命名规则
属性
<a name='steve "aplple" Jobs' />
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 note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
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命名空间
<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>
XML CDATA
PCDATA
XML 解析器通常会解析 XML 文档中所有的文本。
当某个 XML 元素被解析时,其标签之间的文本也会被解析:<message>此文本也会被解析</message>
<name><first>Bill</first><last>Gates</last></name>
<name>
<first>Bill</first>
<last>Gates</last>
</name>
CDATA
<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1;
}
else
{
return 0;
}
}
]]>
</script>