xml基础

xml数据的存储和数据的交换,标签中的内容<film><book>
hmtl数据的显示,机器
都是从SGML发展过来的
xml的好处:
 可扩展的没有自己的标签servlet中的web.xml配置文件
 (xml的文档,在java中读取,java中有包,设计模式)
 xml智能搜索,局部刷新ajax
 
 DTD
 DOM
 CSS
 XSL
 Schema
 XPATH XPoint

格式良好的文档
 1、第一句话必须是声明语句<!--?xml必须紧挨着-->
 2、必须有一个根元素
 3、开始元素和结束元素必须成对出现(空标记例外)
 4、大小写敏感
 5、标签的正确嵌套<b><i></i></b>
 6、属性,必须是成对出现 属性名=值,值必须是双引号或者单引号书写(建议双引号)
元素和标记的区别
标记是单个的
元素时整体
 简单元素,文本字符串
 复杂元素,由子元素构成
 混合元素:包括简单元素和复杂元素


数据交换DTD文档和schema文档Document Type Definition
 DTD校验,保证数据的一致性
 1、内部DTD standlone="yes"
 声明的时候
 <!DOCTYPE books[

 混合类型(元素的名称和元素的描述之间的空格不可少)
 <!ELEMENT books (book+)>

 复杂类型,有顺序的
 <!ELEMENT book (name,author,price)>

 元素的描述,属性的描述
 <!ELEMENT name (#PCDATA)>
 <!ELEMENT price (#PCDATA)>
 <!ELEMENT author (#PCDATA)>简单类型
  ]>
 standalone="yes"
 示例:
 <?xml version="1.0" encoding="gb2312" standalone="yes"?>
 <!DOCTYPE students[
 <!ELEMENT students (student+)>
 <!ELEMENT student (name, age, score, sex)>
 <!ELEMENT name (#PCDATA)>
 <!ELEMENT age (#PCDATA)>
 <!ELEMENT score (#PCDATA)>
 <!ELEMENT sex (#PCDATA)>
 ]>
 <students>
  <student>
   <name>tom</name>
   <age>18</age>
   <score>98</score>
   <sex>ff</sex>
  </student>
  <student>
   <name>java</name>
   <age>12</age>
   <score>98</score>
   <sex>ff</sex>
  </student>
  <student>
   <name>jack</name>
   <age>45</age>
   <score>45</score>
   <sex>ff</sex>
  </student>
 </students>
 2、外部DTD
 standalone = "no" ;


.dtd文档
 <?xml version="1.0" encoding="UTF-8"?>
 <!ELEMENT students (student+)>
 <!ELEMENT student (name, age, score, sex)>
 <!ELEMENT name (#PCDATA)>
 <!ELEMENT age (#PCDATA)>
 <!ELEMENT score (#PCDATA)>
 <!ELEMENT sex (#PCDATA)>
students.xml
 <?xml version="1.0" encoding="gb2312" standalone="yes"?>
 <!DOCTYPE students SYSTEM "studentDtd.dtd">
 <students>
  <student>
   <name>tom</name>
   <age>18</age>
   <score>98</score>
   <sex>ff</sex>
  </student>
  <student>
   <name>java</name>
   <age>12</age>
   <score>98</score>
   <sex>ff</sex>
  </student>
  <student>
   <name>jack</name>
   <age>45</age>
   <score>45</score>
   <sex>ff</sex>
  </student>
 </students>
3、公用DTD
定义属性
<!ATTLIST 元素名称
 属性名称 属性类型 缺省值
 属性名称 属性类型 缺省值
 ...
 >
REQUIRED  IMPLIED  FIXED  字符串
 studentDtd.dtd
 <?xml version="1.0" encoding="GB2312"?>
 <!ELEMENT students (student+)>
 <!ELEMENT student (name, age, score, sex)>
 <!ELEMENT name (#PCDATA)>
 <!ELEMENT age (#PCDATA)>
 <!ELEMENT score (#PCDATA)>
 <!ELEMENT sex (#PCDATA)>
 <!ATTLIST student id CDATA #REQUIRED
   telephone CDATA #IMPLIED
   school CDATA #FIXED "河南">

 students.xml
 <?xml version="1.0" encoding="gb2312" standalone="no"?>
 <!DOCTYPE students SYSTEM "studentDtd.dtd">
 <students>
  <student id="01" school="河南">
   <name>tom</name>
   <age>18</age>
   <score>98</score>
   <sex>ff</sex>
  </student>
  <student id="01">
   <name>java</name>
   <age>12</age>
   <score>98</score>
   <sex>ff</sex>
  </student>
  <student id="01">
   <name>jack</name>
   <age>45</age>
   <score>45</score>
   <sex>ff</sex>
  </student>
 </students>
 
属性是ID类型的必须是以字母开头或者是下划线开始,并且不能重复
枚举
cateary (编程语言|标记语言) "标记语言"
IDREF/IDREFS(多引用用 空格隔开)
CDATA的子集,NMTOKEN/NMTOKENS
 实例一:
 <?xml version = "1.0"  encoding="GB2312"  standalone = "yes"?>
 <!DOCTYPE 联系人列表[
     <!ELEMENT 联系人列表 ANY>
     <!ELEMENT 联系人 (姓名,EMAIL)>
     <!ELEMENT 姓名 (#PCDATA)>
     <!ELEMENT EMAIL (#PCDATA)>
     <!ATTLIST 联系人  编号  ID #REQUIRED>
     <!ATTLIST 联系人  上司  IDREF #IMPLIED>
     ]>

 <联系人列表>
     <联系人 编号="p1">
  <姓名>张三</姓名>
  <EMAIL>[email protected]</EMAIL>
     </联系人>

     <联系人  编号="p2"  上司="p2">
  <姓名>李四</姓名>
  <EMAIL>[email protected]</EMAIL>
      </联系人>
 </联系人列表>
 实例二:
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE root[
 <!ELEMENT root (数据)+>
 <!ELEMENT 数据 (#PCDATA)>
 <!ATTLIST 数据
     安全性 ( ON | OFF ) "OFF"
     授权用户 NMTOKENS  #IMPLIED>
 ]
 >
 <root>
 <数据 安全性="ON" 授权用户 = "WANG da">
 </数据>
 </root>

实体:
<!ENTITY sunday "今天天气很好" >
引用的时候&sunday;
命名空间
 xmlns:前缀=命名空间
 xmlns=命名空间  --------->默认的命名空间

在java中使用xml

 

你可能感兴趣的:(xml,配置文件,元素)