JavaWeb_ XML文件

 


  百度百科  传送门

  W3school  传送门

  XML语言(可扩展标记语言):是一种表示数据的格式,按照xml规则编写的文本文件称为xml文件

 

Learn

  一、编写XML文件
  二、DTD约束
  三、schema约束(DTD下一代) 

 

 

  html也是标记语言,html里面的标记是固定的,每个标记有自己的功能(标记我们可以自己定义)

   XML文件用来表示数据,用来做数据传输,web开发中很多配置文件,都使用XML编写,XML配置文件结构清晰,配置清楚

 

编写XML文件

 

  Gary->src->New->Other->XML->XML File->NewFile.xml

 

 

<?xml version="1.0" encoding="UTF-8"?>
<goodlist>
    <good>
        <price>12</price>
        <name>香蕉</name>
        <place>广州</place>
    </good>
        <good>
        <price>39</price>
        <name>苹果</name>
        <place>北京</place>
    </good>
        <good>
        <price>33</price>
        <name>芒果</name>
        <place>深圳</place>
    </good>
</goodlist>
NewFile.xml

 

 

  文档声明  (必须放到第一行!!)

<?xml version="1.0" encoding="UTF-8"?>

 

  version="1.0" 声明用的xml版本是1.0

  encoding="UTF-8" 声明用xml传输数据的时候的字符编码

 

根元素、标签和属性名自定义

  goodslist  根元素(必须要有一个根元素)

  good  标签

  id  属性名

  "1001"  属性值 (必须使用双引号)

  by = Gary  属性名和属性值

 

  添加注释快捷键  Ctrl+Shift+C  

<!-- 这是注解 -->

 

 

二、DTD约束  传送门

  

  DTD用来约束xml文档,规定xml文档中元素的名称,子元素的名称和顺序,元素的属性

 

  新建一个note.xml文件,Gary->src->New->Other->XML->XML File->note.xml

 

内部引用DTD约束

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note [
  <!ELEMENT note (to,from,heading,body)>
  <!ELEMENT to      (#PCDATA)>
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
]>
<note>
    <to>China</to>
    <from>Gary</from>
    <heading>Readme</heading>
    <body>Welcome!!!</body>
</note>
note.xml

 

<!DOCTYPE note[
    <!ELEMENT note (to,from,heading,body)>
    <!ELEMENT to      (#PCDATA)>
    <!ELEMENT from    (#PCDATA)>
    <!ELEMENT heading (#PCDATA)>
    <!ELEMENT body    (#PCDATA)>
]>

 

  !DOCTYPE note (第二行)定义此文档是 note 类型的文档。

  !ELEMENT note (第三行)定义 note 元素有四个元素:"to、from、heading,、body"

  !ELEMENT to (第四行)定义 to 元素为 "#PCDATA" 类型

  !ELEMENT from (第五行)定义 from 元素为 "#PCDATA" 类型

  !ELEMENT heading (第六行)定义 heading 元素为 "#PCDATA" 类型

  !ELEMENT body (第七行)定义 body 元素为 "#PCDATA" 类型

 

  1)规定了note.xml文档里面必须要有note标签

  2)规定文档里面标签顺序

  3)规定文档里面必须要存在所有约束标签

 

外部引用DTD约束(本地)

  将DTD约束单独放到dtd文件中,xml文件再引用dat文件中约束

 

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
note.dtd

 

   外部 DTD 约束 XML 源文件,通过下面的语法封装在一个 DOCTYPE 定义中

<!DOCTYPE 根元素 SYSTEM "文件名">

 

(缺少body标签报错了!!!)

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
    <to>China</to>
    <from>Gary</from>
    <heading>Readme</heading>
<!--     <body>Welcome!!!</body> -->
    
</note> 
note2.xml

 

外部引用DTD约束(网络)

 

  Struts框架的配置文档的首行

<!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.3//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">

 

 

三、schema约束(DTD下一代)  传送门 后缀为xsd 

  • XML Schema 可针对未来的需求进行扩展
  • XML Schema 更完善,功能更强大
  • XML Schema 基于 XML 编写
  • XML Schema 支持数据类型
  • XML Schema 支持命名空间

 

    定义可出现在文档中的元素
    定义可出现在文档中的属性
    定义哪个元素是子元素
    定义子元素的次序
    定义子元素的数目
    定义元素是否为空,或者是否可包含文本
    定义元素和属性的数据类型
    定义元素和属性的默认值以及固定值
schema 约束定义值

 

  新建一个schema文件,Gary->src->New->Other->XML->XML Schema File->note.xsd

 

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3school.com.cn"
xmlns="http://www.w3school.com.cn"
elementFormDefault="qualified">

<xs:element name="note">
    <xs:complexType>
      <xs:sequence>
    <xs:element name="to" type="xs:string"/>
    <xs:element name="from" type="xs:string"/>
    <xs:element name="heading" type="xs:string"/>
    <xs:element name="body" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
</xs:element>

</xs:schema>
note.xsd

 

  xsd命名空间

targetNamespace="http://www.w3school.com.cn"
xmlns="http://www.w3school.com.cn"

 

  指出任何 XML 实例文档所使用的且在此 schema 中声明过的元素必须被命名空间限定

elementFormDefault="qualified" 

 

  使用schema约束

  创建一个note3.xml文件

 

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3school.com.cn"
xmlns="http://www.w3school.com.cn"
elementFormDefault="qualified">

<xs:element name="note">
    <xs:complexType>
      <xs:sequence>
    <xs:element name="to" type="xs:string"/>
    <xs:element name="from" type="xs:string"/>
    <xs:element name="heading" type="xs:string"/>
    <xs:element name="body" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
</xs:element>

</xs:schema>
node3.xml

 

posted @ 2018-10-10 09:02  Cynical丶Gary  阅读(249)  评论(0编辑  收藏  举报