XML文档被作为element tree格式,一个xml tree是从一个root element开始,然后延伸到每个根节点的子元素。所有元素都有子元素(child elements):
<root> <child> <subchild>.....</subchild> </child> </root>
这组parent、child、subchild被用来描述元素之间的关系。Parent有child,child有parent、subchild在相同的level。所有的元素都有text内(Harry Potter)容和属性(category=“cooking”)。
XML使用的大多数语法都是用户自己描述的,一个xml版本的开端和字符的编码:
<?xml version="1.0" encoding="UTF-8"?>
下一行是xml文档的root element :
<bookstore>
下一行开始是一个<book>元素:
<book category="cooking">
这个<book>元素有4个childelement:<title>,< author>, <year>,<price>.
<title lang="en">EverydayItalian</title> <author>Giada DeLaurentiis</author> <year>2005</year> <price>30.00</price>
这下一行是<book>元素的结束:
</book>
你可以使用包含一个bookstores所用图书信息的xml文旦来呈现数据,如上边的例子。
XML的语法规则非常简单和逻辑清晰的,这种规则很容易去学习和使用的。
Xml文档必须有一个root element,该root element是所有其他元素的parent:
<root> <child> <subchild>.....</subchild> </child> </root>
如note.xml例子中的<note>:
<?xml version="1.0" encoding="UTF-8"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don'tforget me this weekend!</body> </note>
XML的prolog:
<?xml version="1.0" encoding="UTF-8"?>
XML的prolog是可选择的,如果它存在,它必须在xml文档的开端,XML文档可以包含国际 字符,像Norwegian øæå or French êèé.为了避免出错,你需要指定encoding格式,或者保存你的xml文件为utf-8格式。Utf-8是xml文档默认的encoding格式。UTF-8 is also the default encoding for HTML5, CSS,JavaScript, PHP, and SQL.
字符编码学习在:http://www.w3schools.com/charsets/default.asp
在html,一些元素不需要结束tag可能能正常工作:
<p>This is a paragraph. <br>
在xml,必须要有一个结束标记:
<p>This is a paragraph.</p> <br />
Note:XML的prolog不需要一个结束标记,因为prolog不是xml文档 的一部分。
XML tag是大小写敏感的,标记<Le>和<le>是不同的,一个元素的开始和结束标记必须要是相同字母:
<Message>This isincorrect</message> <message>This iscorrect</message>
XML元素如果包含属性,这属性的name/value和HTML一样成对出现的,在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>
在XML中一些字符有特殊的寓意,如果你在XML元素中发现像“<”字符,xml文档将会报错,因为解析器把“<”作为一个新元素开始。
一个错误的xml:
<message>salary< 1000</message>
为了避免这个错误,用一个实体引用替代”<”字符:
<message>salary < 1000</message>
在xml中的5个预定义的实体引用:
< |
< |
less than |
> |
> |
greater than |
& |
& |
ampersand |
' |
' |
apostrophe |
" |
" |
quotation mark |
只有“<”和“&”是严格合法的在xml中,但是那不是一个好的习惯。
XML的注释和html中的注释类似:
<!-- This is a comment -->
在注释中加入两个连续破折号(--)是不允许的:
<!-- This is a --comment -->
但是,在注释中间添加两个间断的破折号(--)是允许的:
<!--This is a - - comment -->
XML不截断多个空格(HTML截断多个空格,把多个空格变为一个):
XML: |
Hello Tove |
HTML: |
Hello Tove |
Windows应用程序存储新行用:CR + LF
Unix 与 Mac OSX用LF
老的Mac系统用CR
XML用LF存储新行