XML的语法 XML的语法规则非常简单也非常严格,并且这些规则既易学也易用。因此,创建一个能够阅读和操作XML的应用程序非常简单。 一个XML文档样本 XML文档使用一种自描述的简单语法。 < ?xml version="1.0"?> < note> < to>Tove< /to> < from>Jani< /from> < heading>Reminder< /heading> < body>Don't forget me this weekend!< /body> < /note> 文档中的第一行--XML声明--定义文档的XML版本。在这里文档遵循的是XML的1.0 版的规定。 下一行描述了文档的根元素(就好象是说“这个文档是一个便条”)。 < note> 下面4行描述了根元素的4个子元素(to, from, heading, and body): < to>Tove< /to> < from>Jani< /from> < heading>Reminder< /heading> < body>Don't forget me this weekend!< /body> 最后一行定义了根元素的结束: < /note> 你能发现这个XML文档的例子包含的就是Jani给Tove 的便条吗?你同意“XML是相当自描述的”这种说法吗? 所有的XML元素都必须要有一个结束标记 在XML中,省略结束标记是非法的。 在HTML中有些元素不需要有结束标记。以下代码在HTML中是合法的: < p>This is a paragraph < p>This is another paragraph XML对大小写是敏感的 而在XML中,所有的元素都必须要有一个结束标记,如: < p>This is a paragraph< /p> < p>This is another paragraph< /p> 注意:从前面的例子中你可能已经注意到了,XML声明没有结束标记。这并不是一个错误。因为声明并不是XML文档的一部分。它不是一个XML元素,因此它不能有结束标记。 XML对大小写是敏感的,这一点不象HTML。在XML中,标记< Letter> 和标记 < letter> 是不一样的。 因此,打开和结束标记的大小写应该写成相同的: < Message>This is incorrect< /message> < message>This is correct< /message> 所有的XML元素都必须合理嵌套 如果标记的嵌套不合理,在XML中是没有意义的。 在HTML中,有些元素可以被不适当地彼此嵌套,例如: < b>< i>This text is bold and italic< /b>< /i> 而在XML ,所有元素都必须彼此合理地嵌套,例如: < b>< i>This text is bold and italic< /i>< /b> 所有的XML文档都必须要有一个根标记 在一个XML文档中的第一个标记就是根标记。 所有的XML文档都必须包含一个标记对来定义根元素。所有的其他元素都必须嵌套到根元素里面。 所有的元素都可以有子元素。子元素都必须正确地嵌套到母元素中。 < root> < child> < subchild>.....< /subchild> < /child> < /root> 必须将属性值引起来 在XML中,在属性值周围省略引号是非法的。 同HTML一样,XML元素的名/值对中可以有属性。在XML中,属性值必须引起来。看看下面的两个XML文档。 第一个是正确的,第二个是错误的: < ?xml version="1.0"?> < note date=12/11/99> < to>Tove< /to> < from>Jani< /from> < heading>Reminder< /heading> < body>Don't forget me this weekend!< /body> < /note> < ?xml version="1.0"?> < note date="12/11/99"> < to>Tove< /to> < from>Jani< /from> < heading>Reminder< /heading> < body>Don't forget me this weekend!< /body> < /note> 文档中的第一个错误是在note 元素中的数据属性没有引起来。 这样是正确的: date="12/11/99"。 这样是错误的: date=12/11/99。 在XML中,空格是保留的 在XML中,文档的空格不能被删除。 这一点不象HTML。在HTML中,这样一句话: Hello my name is Tove, 将被显示成这样: Hello my name is Tove, 因为HTML 把空格除去了。 在XML中, CR / LF被转换成 LF 在XML中, 一个新行通常被存储为 LF。 你知道什么是打字机吗?打字机是上个世纪使用的一种打字机器设备。 当你在打字机上打了一行以后,你要手动回车到左边的空白,然后手动进纸。 在Windows 应用程序中,文本中的新一行通常存储为CR LF 字符对。在Unix 应用程序中,新的一行通常被存储为一个LF字符。而有些应用程序只用一个CR字符来存储新行。
|
|
|