javaWeb系列之三(XML的简介与约束(DTD和Schema))


 1.XML的简介
  (1)Extendsible Makeup Lanuage可扩展标记性语言
      标记型语言:都是使用标签进行操作的,HTML也是标记型语言
      可扩展:在HTML中每一个标签都是固定的含义,但是XML中标签是自定义的,可以是中文。
  (2)作用:Xml不是显示数据的,主要功能是存储数据的。
             Xml是W3C组织发布的技术
             Xml的版本有1.0  1.1 都用1.0的
2.xml的应用
  (1)xml应用在不同的系统之间传输数据
  (2)xml是生活中有关的数据

  (3)xml经常用在系统的配置文件
           操作数据库,知道数据库的地址,用户名 密码
           但是如果数据库地址,用户名  密码 写到程序里面,通过程序读取信息,
3.Xml的使用
  (1)文档声明(*****)
   首先必须要有一个文档声明
         <?xml version="1.0" encoding="gbk"?>
         文档要写第一行,第一列
         属性:
         varsion:    xml版本 一般用1.0
         下面两个属性可以没有
         encoding :xml的编码方式 gbk utf-8 iso8859-1(不支持中文)
         standalone: xml文件是否依赖于其他文件 yes/no
         例子:
             <?xml version="1.0" encoding="gbk"?>
               <person>
                  <name>zhangsan</name>
                  <age>12</age>
               </person>
4.乱码问题的解决(*****)
    设置xml的编码是utf-8,但是本地硬盘使用的是gbk,编码不一样
    设置保存的时候是一样的
5.xml中的标签定义
   (1)xml中定义的标签必须有开始标签,和结束标签
   (2)xml可以嵌套,但是必须合理嵌套
   (3)一个xml必须有且只有一个根标签
   (4)在xml中会把空格和换行当成内容来解析所以
            <a>AAA</a>
            <a>
              AAA
                </a>
   (5)书写规范
       5.1xml区分大小写,<p><P>是不一样的
       5.2不能以数字下划线开头<1a><_bb>这样写是不对
       5.3不能以xml 或则 Xml XML开头
       5.4标签里面不能有空格和冒号<a b> <b:a>
6.xml属性的定义
   (1)在xml可以有多个属性,每个属性有自己的名称和值,不能有相同的属性
   (2)属性名和属性值之间用“=”号,属性值可以用双引号和单引号
   (3)属性的命名规范和元素是一样的
7.xml的注释(*****)
   (1)<!-- -->
   (2)xml的注释不可以嵌套
      <!-- <!-- --> -->这是错误的
8.xml的特殊字符
   (1)<:&lt;
   (2)>:&gt;
9.xml的CDATA区
   (1)写在CDATA区里面的内容,xml解析时候把里面的内容当成普通的文本
   (2)写法<![CDATA[内容]]>
10.xml处理指令
   (1)设置样式:
   (2)对中文不起作用
11.xml的约束
   (1)为什么需要约束
       比如创建一个xml文档,这个文档 只能显示人的属性,要约束这个xml只能出现人的信息,所以就需要一个约束
   (2)xml中约束:DTD约束schema约束
12.DTD的学习
    引入方式有三种:
   (1)外部的dtd文件
        <!DOCTYOPE 根元素名称 SYSTEM "dtd路径">
   (2)使用内部的DTD约束
        <!DCTYPE  根元素的名称[   
        <!ELEMENT   名称  (#PCDATA)>
        <!ELEMENT  名称 (子标签1,子标签2)>
               ]>
   (3)使用公共的DTD
         在网络上有一些dtd的约束
         <!DOCTYPE 根元素 PUBLIC "DTD名称" "DTD路径">

 13.使用DTD约束xml的元素  
    书写格式<!ELEMENT 写标签名称 标签的约束>
    标签的约束
   (1)如果是简单的元素
       (#PACDATA):元素是一个字符串类型  (EMPTY):元素为空   (ANY):任意类型
   (2)如果是复杂元素
        (元素1,元素2,元素3):元素出现要按这个顺序
        (元素1 | 元素2 | 元素3);表示元素只能在这个范围内出现其中的一个
        (元素1+,元素2?,元素3*):“+”:出现至少一次或多次 “?”:0次或则1次 “*”:任意
14.DTD约束xml中的属性
   (1)语法
       <!ATTLIST 元素名称
        属性名称 属性类型 属性约束
        >
    属性类型:(1)CDATA:表示字符串 (2)ID:必须是字母或则下划线开头(3) 枚举:在一定范围内只能出现指定范围的一个(AA | BB)
    属性约束:(1)#REQUIRED :属性必须有 (2)#IMPLIED:可有可无 (3)#FIXED:固定值(属性必须是固定值)(4)直接指:属性上不写,就是这个值

<!ATTLIST                
                      id1   CDATA   #REQUIRED
                      id2   CDATA   #FIXED "ABC"<pre class="html" name="code">                      id3   ID      REQUIRE

>
 
15.DTD的实体使用
  (1)语法 <!ENTITY 实体名称  "实体的值 ">
  (2)使用实体 &实体名称
            使用实体,使用dtd引入方式需要使用内部dtd的方式
            如果使用高版本的浏览器,使用外部引入dtd不能使用实体
            如果使用低版本的浏览器,ie6,可以外部引入dtd可以使用dtd
          <!ENTITY TEST "HAHAHA">
                    <name>&TEST</name>
17.xml的约束Schema
   
   与DTD的比较
    (1)dtd自称一派语法<!ELEMENT >,Schema遵循xml的语法
    (2)在一个xml只能使用一个dtd约束,但是可以使用多个schema
    (3)不同的schema使用名称空间(类似java里面的包名)
    (4)dtd没有schema支持的数据类型多(比如标签age,在dtd的约束是(#PCDATA),在schema里面的约束是int double)
    (5)语法复杂
 Schema入门案例
    (1)创建schema约束文件。后缀名:.xsd
         schema就是一个xml文件
         根节点是schema
    (2)创建约束文件
          xmlns=" http://www.w3.org/2001/XMLSchema ": 表示是约束文件                             
         targetNamespace=" http://www.example.org/NewXMLSchema " :目标名称空间,在xml如何引入schema文件,通过targetNamespace
        elementFormDefault="qualified":是否遵循语法 质量良好
    (3)数xml中有多少个元素,写多少个element
    (4)判断复杂还是简单元素
        复杂元素:
        <element name="person">
            <complexType>
             <sequence>
             </sequence>
            </complexType>
        </element>
        简单元素:
        <element name="name" type="string"></element>
    指示器
    (1)A ll:只能出现一次
    (2)Choice:只能出现其中一个
    (3)sequence:按顺序出现
    (4)在元素上写maxOccurs="unbounded":表示可以出现多次
    (5)属性约束:只能在复杂元素上写<attribute name="p1" type="string" use="required"></attribute>
    复杂的schema































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值