XML语法

XML语法

XML文档结构

  • <?xml version="1.0" encoding="GB2312" standalone="yes"?>
    <!--Prolog区还包含指令 -->
    
    <note type="message">
    <to>lvqi</to>
    <from>pingdu</from>
    <heading>reminder</heading>
    <body> dont forget eat grass!</body>
    </note>
    
    <!-- 第一行XML声明 -->
    <!-- 
    1.前面不要有任何其他的信息(包括空行  !格式良好)
    2.encoding : 指定编码格式(字符集),可以省略,默认UTF-8;
    其他字符集:GBK , GB2312,Big5,UTF-16 
    3.Stangdalong:指定该文档是否需要引用其他资源 值:yes 或 no (DTD)
    <note>: 元素 ,由起始标签和结束标签组成,中间可以包含文本信息和其他子元素
    四个子元素  to from heading body
    最后一行: 结束标签</note> 先有反斜杠
    -->
    <!--
    1.文档必须包含一个根元素  
    2.所有的元素构成一棵文档树
    3.在这个树中   元素和元素之间的关系:父子、兄弟
     -->
    
    
  • 语法

    ​ 1.所有元素都有起始标签和结束标签

    ​ 2.大小写敏感(区分大小写),标签命名也是敏感的

    • - <Message>和<message>是不同的  是两个标签
      - 错: <Message>hello</message>
      

      3.嵌套要正确

    • 错:		<a><b><a><b>
      正确:    <a><b></b></a>
      

      4.有且只有一个根元素 称为 父元素 其他称为 子元素

      5.属性值一定使用英文引号括起

      <!--<note data=2021/03/01> -->  <!--错误-->
          <note data="2021/03/01">
      </note>
      

      6.实体引用 ‘<’:&lt 和 ‘>’:&gt

      单引号:' &(括号)apos;

      双引号:" &(括号)quot;

      & : &apm;

      7.注释:

      8.空格保留()

元素和标记

  • 元素:从起始标签开始到结束标签所包含到部分 可以包含其他元素,文本 或者两者的混合

    • 元素命名规则:

      1.字母 、数字和其他符号

      2.不能以数字和标点符号开始

      3.不能”XML“开始

      4.不能包含”空格“ (属性值里可以)

  • 最佳实践:使用有描述含义的单词或短语 ,多个单词使用”_“连接

    <book_id> <title_of_book>

    注意:不能使用"-"(减号)连接 (与API的解析有关)

  • 空元素:


==================================================================

属性

<students>
<student id="1"><name>zhangsan</name></student>
    <student id="2"><name>lisi</name></student>
    <student id="3"><name>wangwu</name></student>
</students>

zhangsan lisi wangwu是数据 id不是数据是属性

属性:提供元素的额外(附加)信息。通常不是数据的一部分

<students>
<student><id>101</id><name>zhangsan</name></student>
    <student><id>102</id><name>lisi</name></student>
    <student><id>103</id><name>wangwu</name></student>
</students>

现在id成为里数据(元素)

属性的值必须加引号(单引号或双引号)

<student id="3"></student>
<student id='3'></student>
错:<student id=3></student>
特殊符号
<student id='1"31'></student> 1 "3" 1
<student id="1'0'3"></student> 1 '0' 3
<student id="1&apos;0'3"

子元素和属性的使用规则

在XML中,尽可能使用元素,少使用属性(为什么?)

因为元素具有可扩展性

不建议
<note date='2021/3/1'>
</note>

使用元素

<note >
    <data>2021/3/1</data>
</note>
推荐的方式: 
<note >    
    <data>
        <yy>2021</yy>
    <mm>3</mm>
    <dd>1</dd>
    </data>
</note>
 <note >    
    <data>
        <yy>2021</yy>
    <mm>3</mm>
    <dd>1</dd>
        <hh>13</hh>
    </data>
</note>

避免使用属性来表示数据:

1.属性不能表示多重值

2.属性不能表示数据的层次(树状)关系

<data>
        <yy>2021</yy>
    	<mm>3</mm>
    	<dd>1</dd>
</data>

3.属性不易扩展

4.属性不易处理(程序)

5.属性不便阅读理解

CDATA节

在CDATA节中,所有的文本都是纯字符数据,解析器不会解析CDATA中的任何符号和标记

<![CDATA[
无特殊含义,只是数据的一部分
]]

指令

作用:向应用程序传递信息。

指令的位置:prolog序言中写XML声明之后

语法格式:<? 指令 ?(括号)>

指令就是一系列属性(键值对)

<? xml-stylesheet type="text/css" href="mystyle.css" ?>
mystyle.css
date{}
to,from{}

使用指令的原则:

1.不鼓励使用(太多,限制就太多,SGML的老路)

创建格式良好的XML文档

posted @ 2021-03-01 11:34  弹琴的猫  阅读(68)  评论(0)    收藏  举报