xml的约束的技术:dtd约束。

1、dta的快速入门
     *创建一个文件后缀名.dtd
     步骤:
      (1)看xm1中有多少个元素,有几个元素,在dtd文件中写几个< !ELEMENT>
      (2)判断元素是简单元素还是复杂元素
             -复杂元素:有子元素的元素
                        <!ELEMENT元素名称(子元素)>
             -简单元素:没有子元素
                    <! ELEMENT元素名称(#PCDATA) >
      (3)需要在xml文件中引入dtd文件
         <!DOCTYPE    根元素名称    SYSTEM "dtd文件的路径">
        **打开xml文件使用浏览器打开的,浏览器只负责校验xml的语法,不负责校验约束。

2、dtd的三种引入方式。

              (1)引入外部的dtd文件
                           <!DOCTYPE 根元素名称 SYSTEM "dtd路 径">
               (2)使用内部的dtd文件
                          - <!DOCTYPE 根元素名称[
                                       < !ELEMENT person  (name,age)>
                                       <! ELEMENT name (# PCDATA) >
                                       < !ELEMENT age (#PCDATA) >
                             ]>
             (3)使用外部的dtd文件(网络.上的dtd文件)
                        <!DOCTYPE根元素PUBLIC "DTD名称" "DTD文档的URL">
                        -后面学到框架struts2 使用配置文件使用外部的dtd文件
                            - <!DOCTYPE struts PUBLIC
                           "-/ /Apache software Foundation//DTD struts Configuration 2. 0//EN"
                           "http://struts . apache . org/dtds/struts-2.0.dtd">
  3、使用dtd定义元素
              *语法:       <!ELEMENT  元素名   約束>
                    *筒単元素:没有子元素的元素
                               <!ELEMENT name l(#PCDATA)>

             约束类型:  (#PCDATA):约束name是字符串类型
                                *** EMPTY :元素为空(没有内容)         如:<sex></sex>
                                *** ANY:任意
                  *复杂元素:* <!ELEMENT  元素名称(子元素)>  如:< ! ELEMENT person (name, age, sex, school) >

                                                      子元素直接使用逗号进行隔开,表示元素出现的顺序               子元素只能出现一次 *
               表示子元素出现的次数
                        +:表示一次或者多次     如:< ! ELEMENT person (name+, age?, sex*, school) >
                        ?:表示零次或者一次
                        * :表示零次或者多次
             子元素直接使用I隔开
                          **表示元素只能出现其中的任意一个

4、使用dtdt定义属性。

                *语法:。<!ATTLIST 元素名称
                                        属性名称   属性类型     属性的约束
                                >
              *属性类型
                          1、 CDATA: 字符串
                                   < !ATTLIST birthday
                                      ID1  CDATA  #REQUIRED >
                           2、枚举:表示只能在一定的范围内出现值,但是只能每次出现其中的一个 。(红绿灯效果)
                                       ** (aa |bb|cc)
                                       - < ! Attlist age
                                        ID2  (AA|BB ICC)   #REQUIRED
                                       >
                          3、ID:值只能是字母或者下划线开头
                                       - < ! ATTLiST name
                                              ID3 ID
                                         #REQUIRED
                                        >

             *属性的约束
                  #REQUIRED: 属性必须存在。
                 #IMPLIED: 属性可有可无
                 #FIXEd: 表示一一个固定值 #FIXED  "AAA"
                             -属性的值必须是设置的这个固定值
                                      - <!ATTLIST sex
                                        ID4 CDATA #FIXED "ABC"
                                        >
             直接值:不写属性,使用直接值
                           写了属性,使用设置那个值
                                    - < ! ATTLIST school,
                                       Id5 CDATA "WWW" (如果在xml里写了"AAA"则使用"AAA",否则就使用直接值"WWW"。)

                                        >

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值