标记语言的鼻祖是SGML(Standard Generalized Markup Language). 可扩展标记语言XML(eXtensible Markup Language)和我们所熟悉的 HTML(Hypertext Markup Language)都是SGML的一个子集。
1、 XML声明
<? Xml version=” 1.0” standalone=”yes” endcoding=”UTF -8” ?>
这是XML处理指令的例子。处理指令以“<?”开始,而以”?>”结束。在“”后的第一个单词是处理指令名,这里是xml,代表xml声明。
Xml声明有version、standalone和encoding三个特性。特性是由等号分开的名称-数值对,位于等号左边的是特性名,而其值位于等号的右边,并用双引号括起来。
每一个xml文档都以一个xml声明开始,用以指明所用的xml的版本。
上例中,version特性表明这个文档符合XML 1.0规范。
Standalone特性告诉我们文档是否在一个文件里,还是需要从外部导入文件。Yes代表所有的文档都在一个文件里完成。
Encoding选择UTF-8代表文档字符编码为UTF-8。
2、 定义一个根元素
每个合格的XML文档必须有一个根元素。这是一个完全包括文档中其他所有元素的元素。
3、 XML元素的一些规则
1) 元素的基本结构由开始标记、数据内容、结束标记组成。
2) 大小写不同的标记含义不同
3) 结束标记必须带反斜杠
4) 当只有一个标记时可以写为<HR/>
5) 名字中可以包含字母、数字以及其他字母
6) 名字不能以数字或下划线开头
7) 名字不能以字母xml(或 XML或Xml。。)开头
8) 名字中不能包含空格和冒号
XML文档的常用元素:
1、注释
<!— 这是注释 -->
2、PI(处理指令)
PI(Processing Instruction)
<?xml:stylesheet href=”style.css” type=”text/css”?>
这种写法表示这个xml文档用style.css样式来显示,样式表的类型是css.
3、 PCDATA
尽管文档中可以出现任何元素,但出现的元素必须声明。
<!ELEMENT YEAR(#PCDATA)>
该声明说明YEAR只能包含可析的字符数据,不能包含子元素。
例:<YEAR>98</YEAR>
<YEAR> 1998 C .E</YEAR>
是合法的。
<YEAR>
<MONTH>12</MONTH>
</YEAR>
是非法的。
4、 CDATA
在CDATA段中所有文本都是纯字符数据。
<SAMPLE>
<![CDATA[<DOCUMENT>
<NAME>TOM CRUISE</NAME>
<EMAIL>tom@usa.com</EMAIL>
</DOCUMENT>]]>
</SAMPLE>
它以“<![CDATA[“开始并以“]]>”结束,需要注意的是,唯一不许出现在CDATA段中的文本是CDATA的结束界定符”]]>”。
5、 实体(Entities)
XML为我们预定义的五个实体:
实体 符号
< <
> >
& &
" “
' ‘
经典的实体例子就是图像。
<!ENTITY LOGO SYSTEM “logo.gif”>
<IMAGE SOURCE=”LOGO”/>
前一句是实体声明,后一句是引用实体。
如果在XML中直接使用实体,一般语法为:
&实体名;
如果实体声明不在XML文件中,而是在文件外部,用“%”来代替“&”:
%实体名;
6、 DOCTYPE
“<!DOCTYPE[]>”紧随XML声明之后,它包括着所有的实体声明。基本格式如下:
<?xml version=” 1.0” ?>
<!DOCTYPE myDoc [
…declare the entities here …
]>
<myDoc>
…body of the document…
</mydoc>”
例:
<?xml version=” 1.0” ?>
<!DOCTYPE CUSTOMERS [
<!ENTITY firstFloor “ 15 Downing St Floor 1” >
<!ENTITY secondFloor “ 15 Downing St Floor 2” >
]>
<!—CUSTOMERS is the root node -->
<CUSTOMERS>
<CUSTOMER>
<NAME>TOM CRUISE</NAME>
<ADDRESS>&firstFloor</ADDRESS>
<PHONE>1234567</PHONE>
</CUSTOMER>
<CUSTOMER>
<NAME>TOM CRUISE</NAME>
<ADDRESS>&secondFloor</ADDRESS>
<PHONE>1234567</PHONE>
</CUSTOMER>
</CUSTOMERS>
7、属性
属性值必须加引号。
给自己留一个问题:
用Attribute=value 来存储数据 与 用子节点的innerText来存储 有什么区别?
如:<?xml version=” 1.0” ?>
<CUSTOMERS>
<CUSTOMER>
<NAME>TOM CRUISE</NAME>
<PHONE>1234567</PHONE>
</CUSTOMER>
</CUSTOMERS>
用Attribute来改写上面的例子。
<?xml version=” 1.0” ?>
<CUSTOMERS>
<CUSTOMER NAME=”TOM CRUISE” HPONE=” 1234567” />
</CUSTOMERS>
也希望有人来解答我这个问题,在此恭候。