XMl 2

xml语法规则

2.1. xml的声明 

  xml的声明必须写在文件第1行 
  Encoding(字符集)属性可以省略,默认的字符集是utf-8 

常见错误写法 
1)  "?"和xml之间不能有空格

2)  声明必须顶头写,不能有空行(用FireFox浏览器打开)

3)  不要多写空格(Java程序员的习惯) 
浏览器不会报错,但是在xml解析时会出问题 

2. 标记 
1)  诸如 <书名></书名> 这样格式的被称为标记,标记成对出现 
2)  标记包括开始标记和结束标记 

3. 元素(Element) 
1)  元素: 元素包括标记和其中的内容 
2)  根元素: 最外层的元素叫根元素 
3)  叶子元素: 最里层的(没有子元素的)元素叫叶子元素 
                                                        
4)  空元素:没有内容的元素叫空元素,比如<a></a>,可以简写为:<a /> 
5)  元素必须遵循的语法规则 
  所有的标记都必须有结束 
  开始标记和结束标记必须成对出现 
  元素必须正确嵌套 
<a><b>c</b></a>    (正确) 
<a><b>c</a></b>    (错误) 
  标记的大小写敏感 Hello 和 hello不是同一个标记 
  有且只能有一个根元素

4. 实体引用(转义字符) 
1)  小于号(<):  less than      -->     &lt ; 
2)  大于号(>):  great than   -->     &gt ; 
3)  And符号(&):  &amp; 
4)  双引号(“):  &quot; 
5)  单引号(‘):  &apos; 

注意这些转义字符都是以&开头,以;结尾的 

5. 属性(定义在开始标记中的键值对)

1)  格式:属性="属性值" 
2)  要求: 
  属性必须有值 
  属性值必须用引号引起来,单引号或双引号都可以,但必须一致 


6. CDATA类型的数据:特殊标签

1)  格式:  < ! [ CDATA    [ 文本内容 ] ] > 
2)  特殊标签中的实体引用都被忽略,所有内容被当成一整块文本数据对待  

注:CDATA表示是一整块,其中包括的特殊字符,比如<<丌是全角的《

7. 注释(xml和html相同) 
1)  <!-- 这是一段注释 --> 
2)  编译器将忽略注释 
3)  Html和xml注释方式相同 

8. 规则小结 
1)  必须有唯一的根元素 
2)  xml标记大小写敏感 
3)  标记必须配对出现,有开始有结束 
4)  元素必须被正确嵌套 
5)  属性必须有值,值必须用引号引起来 
6)  如果遵循所有的规则,称作格式良好的xml文件(well-formed) 

                                                       
9. 使用XML文件描述数据的例子 
1)  早期属性文件描述数据的方式  
url = jdbc:oracle:thin@192.168.0.26:1521:tarena 
dbUser = openlab 
dbPwd = open123 
2)  现在使用xml表示方式 
<datasource id="db_oracle"> 
  <property name="url">jdbc:thin@192.168.0.26:1521:tarena</property> 
  <property name="dbUser">openlab</property> 
  <property name="dbPwd">open123</property> 
</datasource> 
 
3.  DTD/Schema 
1)  DTD / Schema: 用来规范XML的标记规则 
2)  有效的xml文件(valid xml file) = 格式良好的xml文件 + 有DTD或Schema规则 + 遵循
DTD或Schema的规则  
3.1. DTD/Schema的由来 
行业交换数据时要求xml文件格式相同,所以需要大家遵守规范的xml文件格式,比如两仹xml
文件要有相同的元素嵌套关系、相同的属性定义,相同的元素顺序,元素出现相同的次数等。


这两个文件数据相同,但结构丌同,无法交换数据。 

3.2. 文档类型定义DTD(Document Type Difinition
1)  DTD文档用来定义XML文件的格式,约束XML文件中
2)  DTD类型 
  PUBLIC(行业共用的) 
  SYSTEM(小范围自定义的) 

3.2.1.  DTD中的定义规则 


浏览器显示(dtd内容不显示) 

  常见错误 
1)  书籍列表和"("间少空格 

2)  全角的逗号“,” 

3)  dtd定义的“作者”和“书名”的顺序和xml文件中出现的顺序不一致 



1)  增加第2本武侠小说(必须遵循dtd中“武侠小说”定义的规范) 

2)  "*"星号表示该元素可出现0-n次

1)  至少有1个作者,多则不限 
2)  "+"加号表示出现1-n次 

1)  简介有没有都可以 
2)  "?"问号表示出现0或1次 

 知识点小结 
1)  元素 
出现一次而丏有顺序的元素:书名,  作者,  价格,  册数,  简介 
  "*"星号:       表示出现0-n次的元素 
  "+"加号:       表示出现1-n次的元素 
  "|" :        表示或(只能出现一个)   
比如(phone | mobile)表示固话或手机二选一 
  (phone | mobile)*:   表示phone或mobile可出现仸意多次 
  "?"问号:       表示出现0或1次       

2)  属性(Attribute) 
定义在开始标记中的键值对 



3.3. Schema 

1)  命名空间(NameSpace)  XML文件允许自定义标记,所以可能出现来自丌同源DTD或
Schema文件的同名标记,为了区分这些标记,就需要使用命名空间。 
  命名空间的目的是有效的区分来自不同DTD的相同标记 

  比如如下xml文件中使用了命名空间区分开“表格”和“桌子”: 
<html:table> 
       <line><column>这是一个表格</column></line> 
</html:table> 
     <product:table> 
       <type>coffee table</type> 
       <meterial>wood</meterial> 
     </product:table> 
因为DTD无法解决命名冲突,所以出现Schema,它是DTD的替代者 
dtd和schema的功能都是用于描述XML结构的 
Schema支持命名空间,使用xml语法实现(Schema本身就是xml文件) 
因为用于规范和描述xml文件的定义文件(schema)本身也是xml文件,所以xml 也被称
是自描述的语言 

5)  Schema中的名词: 
  复杂元素(有子元素的元素)  
  简单元素(叶子元素) 


学习建议: 
一般情冴下,程序员的工作是根据已有的xsd或dtd文件规则编写xml文件,故现在丌必过分关注
dtd或xsd文件细节。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值