XML 语法规矩


XML 的语法规矩很简单,且很有逻辑。这些规矩很简单学习,也很简单运用。


一切的 XML 元素都有必要有一个封闭标签

在 HTML 中,某些元素不用有一个封闭标签:

<p>This is a paragraph.
<br>

在 XML 中,省掉封闭标签是不合法的。一切元素都有必要有封闭标签:

<p>This is a paragraph.</p>
<br />

注释:从上面的实例中,您或许现已注意到 XML 声明没有封闭标签。这不是过错。声明不是 XML 文档自身的一部分,它没有封闭标签。


XML 标签对巨细写灵敏

XML 标签对巨细写灵敏。标签 <Letter> 与标签 <letter> 是不同的。

有必要运用相同的巨细写来编写翻开标签和封闭标签:

<Message>This is incorrect</message>
<message>This is correct</message>

注释:翻开标签和封闭标签一般被称为开端标签和完毕标签。不管您喜爱哪种术语,它们的概念都是相同的。


XML 有必要正确嵌套

在 HTML 中,常会看到没有正确嵌套的元素:

<b><i>This text is bold and italic</b></i>

在 XML 中,一切元素都有必要互相正确地嵌套:

<b><i>This text is bold and italic</i></b>

在上面的实例中,正确嵌套的意思是:由于 <i> 元素是在 <b> 元素内翻开的,那么它有必要在 <b> 元素内封闭。


XML 文档有必要有根元素

XML 文档有必要有一个元素是一切其他元素的父元素。该元素称为根元素

<root>
<child>
<subchild>.....</subchild>
</child>
</root>


XML 特点值有必要加引号

与 HTML 类似,XML 元素也可具有特点(称号/值的对)。

在 XML 中,XML 的特点值有必要加引号。

请研讨下面的两个 XML 文档。 第一个是过错的,第二个是正确的:

<note date=12/11/2007>
<to>Tove</to>
<from>Jani</from>
</note>

<note date="12/11/2007">
<to>Tove</to>
<from>Jani</from>
</note>

在第一个文档中的过错是,note 元素中的 date 特点没有加引号。


实体引证

在 XML 中,一些字符具有特别的含义。

如果您把字符 "<" 放在 XML 元素中,会发作过错,这是由于解析器会把它当作新元素的开端。

这样会发生 XML 过错:

<message>if salary < 1000 then</message>

为了防止这个过错,请用实体引证来替代 "<" 字符:

<message>if salary &lt; 1000 then</message>

在 XML 中,有 5 个预界说的实体引证:

&lt; < less than
&gt; > greater than
&amp; & ampersand
&apos; ' apostrophe
&quot; " quotation mark

注释:在 XML 中,只要字符 "<" 和 "&" 的确是不合法的。大于号是合法的,可是用实体引证来替代它是一个好习惯。


XML 中的注释

在 XML 中编写注释的语法与 HTML 的语法很类似。

<!-- This is a comment -->


在 XML 中,空格会被保存

HTML 会把多个接连的空格字符削减(兼并)为一个:

HTML: Hello Tove
Output: Hello Tove

在 XML 中,文档中的空格不会被删减。


XML 以 LF 存储换行

在 Windows 应用程序中,换行一般以一对字符来存储:回车符(CR)和换行符(LF)。

在 Unix 和 Mac OSX 中,运用 LF 来存储新行。

在旧的 Mac 体系中,运用 CR 来存储新行。

XML 以 LF 存储换行。