XML 语法

   XML的语法规则既很简单,又很严格。这些规则很容易学习,也很容易使用。
(The syntax rules of XML are very simple and logical. The rules are easy to learn, and easy to use.)

 

1. 所有元素都须有关闭标签 (All XML Elements Must Have a Closing Tag )

 在HTML中,某些元素不一定要有关闭标签。在HTML中下面的代码是合法的:

<p>This is a paragraph
<p>This is another paragraph

 在XML中,所有的元素都要有关闭标签:

<p>This is a paragraph</p>
<p>This is another paragraph</p>


注释:当使用XML时,省略关闭标签是非法。XML声明没有关闭标签,这不是错误。声明不属于XML本身的组成部分,它不是XML元素,也不需要关闭标签。

 

2. XML 标签对大小写敏感 (XML Tags are Case Sensitive )

在XML中,标签<Letter>和标签<letter>是不同的。

所以必须使用相同的大小写打开并关闭标签:

<Message>这是错误的。</message>
<message>这是正确的。</message>

 

 

3. XML必须被正确地嵌套(XML Elements Must be Properly Nested )

在HTML, 某些元素可以不正确地彼此嵌套在一起:

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

 

但在XML, XML必须被正确地嵌套,不正确的标签嵌套对XML是没有意义的。

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

 

 

4. XML文档必须要有根元素 (XML Documents Must Have a Root Element)

所有的XML必须包含可定义根元素的单一标签对;
所有其他的元素都必须处于这个根元素内部;
所有的元素均可拥有子元素。子元素必须被正确地嵌套于它们的父元素内部:

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

 

 

5. XML的属性值须加引号 (XML Attribute Values Must be Quoted )

在XML中,省略属性值两旁的引号是非法的。
和HTML类似,XML也可拥有属性(名称/值的对)。在XML中,XML的属性值须加引号。请研究下面的两个XML文档,第一个是错误的,第二个是正确的:
<?xml version="1.0" encoding="ISO-8859-1"?>
<note date=12/11/2002>
<to>Tove</to>
<from>Jani</from>
</note>

<?xml version="1.0" encoding="ISO-8859-1"?>
<note date="12/11/2002">
<to>Tove</to>
<from>Jani</from>
</note>

 在第一个文档中,日期属性没有加引号。这是正确的:date="12/11/2002"。这是错误的:date=12/11/2002。

 

6. XML转义字符 (Entity References )

XML有一些特殊的字符,这些字符在XML中是不能直接使用的,如果必须使用这些字符,应该使用其对应的转义字符。
如果在XML文档中使用类似"<" 的字符, 那么解析器将会出现错误,因为解析器会认为这是一个新元素的开始。所以不应该像下面那样书写代码:

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

为了避免出现这种情况,必须将字符"<" 转换成实体,像下面这样:

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

 

XML常用转义字符:

字符

转义字符

描述

&

&amp;

<

&lt;

小于号

>

&gt;

大于号

"

&quot;

双引号

'

&apos;

单引号



7. XML中的注释 ( Comments in XML )

在XML中书写注释的语法与HTML的语法类似:

<!-- This is a comment -->

 

 

8. 在XML中,空格会被保留 (White-space is Preserved in XML )

在XML中,空格不会被截掉, 这与HTML不同。

在HTML中,像这样的一个句子:

Hello              my name is Tove,

会显示为这样:

Hello my name is Tove,

这是由于HTML会把多个连续的空格字符裁减为一个。

 

9. CDATA

CDATA 内部的所有东西都会被解析器忽略。

假如文本中包含了大量的 "<" 和 "&" 字符 - 就像编程代码中经常出现的情况一样 - 那么这个 XML 元素就可以被定义为一个 CDATA 部分。

CDATA 区段开始于 "<![CDATA[",结束于 "]]>"

<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0)
   {  return 1  }
else
   {  return 0  }
}
]]>
</script>

在上面的例子中,在 CDATA 区段中的所有东西都会被解析器忽略。

注释:

CDATA 区段不能包含字符串 "]]>",所以,CDATA 区段的嵌套是不被允许的。

同时也需要确保在 "]]>" 字符串中没有空格或折行。

 

 


posted on 2009-05-18 11:53  炜升  阅读(326)  评论(0编辑  收藏  举报