XML语法元素结构的总结

1.XML介绍
1969年   gml (主要目的是要在不同的机器进行通信的数据规范)
1985年   sgml  standard generralized markup language
1993年   html(www网)
1998年  xml   extensible markup language

Html本身的一些缺陷
1)标记本身不能自定义
 <html></html><zhang></zhang>
2)标记本身缺少含义
 <Div id="aa">sadsadsadsa</Div>

3)没有国际化
 例如不同的浏览器对于同一个Html的解释是不一样的

  html-->xhtml-->xml

 

2.为什么要学习XML
 1) 解决程序间数据传输的格式问题(QQ.MSN.旺旺,GTalk) XMPP
 2) 做配置文件(xml,ini,propertity)
 3) 充当小型数据库

 

3.XML语法
   入门案例 :用xml来记录一个班级的信息
       编码问题ANSI

   3.1  XML文档结构
 文档声明
 元素
 属性
 注释
 CDATA区、特殊字符
 处理指令(Processing instruction)

 
 *******************************
    3.2文档声明
 

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

 
 version 版本1.0  1.1
 encoding 字符编码
 standalone 是否独立使用,默认是no  不常用

 字符集:如何将字节拼成字符的一个标准
 ISO-8859-1 西欧字符集
 UTF-8
 GBK    中国国家标准(包含中文字符集标准)
 GB2312  简体中文字符集国家标准
 Big5    繁体中文字符集标准
 

 ANSI:美国国家标准委员会

 


   3.3 元素(标签)
 每个xml文档必须有且只有一个根元素

 xml元素指文档中出现的标签,标签分为开始和结束标签

 一个标签中可以嵌套若干字标签,不允许交叉嵌套

  <Student> <aa>aaaaaaaaaaaaaaaaaaaaa</Student></aa>

 
 如果元素中没有值,则可以直接关闭
 <姓名>  </姓名>
 <爱好/>

 XML标签中出现的所有空格和换行,都会被解析成标签内容进行处理
  

<Student>杨过</Student>
  <Student> 杨过</Student>
  <Student>
   杨过
  </Student>

 


 XML元素可以包含字母、数字及其它一些可见字符:
  +++++++++++++++++++++++++++++++++++++++++  

                +  1.区分大小写 <div>  </Div>  +
                +  2.不能以数字或_开头<_Name>aaa</_Name> +
                +  3.不能包含空格   +
                +  4.名称中不能有:   +

 
            +++++++++++++++++++++++++++++++++++++++++

    3.4 属性
 属性值用双引号“或者单引号‘分隔

 一个元素可以有多个属性,用空格隔开

 同一属性名称在同一元素中只能出现一次
 属性值不能为< > &
  +++++++++++++++++++++++++++++++++++++++++  

  +  转义字符    +
  +  &lt;     <   +
  + &gt;     >   +
  + &amp; &   +
  + &quot; "   +
  + &apos; '   +

 
   +++++++++++++++++++++++++++++++++++++++++

 


    3.5 注释
 <!--这是一个注释-->
 注释不能放在标签中
 注释不能嵌套

 

    3.6 CDATA节
 +有些内容不想让解析引擎解析执行,而是当作原始内容处理,用于
  把整段文本解释为纯字符数据而不是标记的情况。
 +包含有大量<  >  &  "字符。
 +CDATA节中的所有字符都会被当作元素字符数据的常量部分,而不是
  XML标记

 +语法:

   <![CDATA[
  ......
   ]]>
  +可以输入任何字符(除]]>外)
  +不能嵌套

 


    3.7处理指令(PI[Processing Instruction])
 + 处理指令用来指挥解析引擎如何解析XML文档的内容
    例如:在xml中可以使用xml-stylesheet指令,通知XML引擎解析,
  应用css文件显示XML文件内容
 

 <?xml-stylesheet type="text/css" href="my.css"?>

 

 +处理指令必须以<?开头   ?>结尾


*****************************************************************

总结:
    必须有XML声明语句
 

<?xml version="1.0" encoding="gb2312"?>    

 
 必须有且仅有一个根元素   
 标记大小写敏感   
 属性值用引号
     标记成对
     空标记关闭<aaa/>
     元素正确嵌套

 


4,XML树结构

XML 文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”。
一个 XML 文档实例
XML 使用简单的具有自我描述性的语法:
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
第一行是 XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码 (ISO-8859-1 = Latin-1/西欧字符集)。
下一行描述文档的根元素(像在说:“本文档是一个便签”):
<note>
接下来 4 行描述根的 4 个子元素(to, from, heading 以及 body):
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
最后一行定义根元素的结尾:
</note>
从本例可以设想,该 XML 文档包含了 John 给 George 的一张便签。
XML 具有出色的自我描述性,你同意吗?
XML 文档形成一种树结构
XML 文档必须包含根元素。该元素是所有其他元素的父元素。
XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。
所有元素均可拥有子元素:
<root>
  <child>
    <subchild>.....</subchild>
  </child>
</root>
父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹)。
所有元素均可拥有文本内容和属性(类似 HTML 中)。
实例

上图表示下面的 XML 中的一本书:
<bookstore>
<book category="COOKING">
  <title lang="en">Everyday Italian</title> 
  <author>Giada De Laurentiis</author> 
  <year>2005</year> 
  <price>30.00</price> 
</book>
<book category="CHILDREN">
  <title lang="en">Harry Potter</title> 
  <author>J K. Rowling</author> 
  <year>2005</year> 
  <price>29.99</price> 
</book>
<book category="WEB">
  <title lang="en">Learning XML</title> 
  <author>Erik T. Ray</author> 
  <year>2003</year> 
  <price>39.95</price> 
</book>
</bookstore>
例子中的根元素是 <bookstore>。文档中的所有 <book> 元素都被包含在 <bookstore> 中。
<book> 元素有 4 个子元素:<title>、< author>、<year>、<price>。

 

 

你可能感兴趣的:(xml,树结构)