• DTD验证XML文档


    DTD验证XML文档
            1.DTD简介:DTD是Document Type Definition的缩写,即文档定义
                1.1:DTD的内容包含:
                        元素定义规则
                        元素之间的关系规则
                        属性的定义规则
                1.2:DTD的作用如下:
                        DTD使每个XML文件可以携带一个自身格式的描述
                        DTD使不同组织的人可以使用一个通用DTD来交换数据
                        DTD使应用程序可以使用一个标准DTD效验从外部接收的XML数据会否有效
            2.声明DTD
                    语法:<!DOCTYPE 根元素 [定义内容]>
                    
                            eg:

     1                 <?xml version="1.0"?>
     2                             <!DOCTYPE poem[
     3                                 <!ELEMENT poem (author,title,content)>
     4                                 <!ELEMENT author (#PCDATA)>
     5                                 <!ELEMENT title (#PCDATA)>
     6                                 <!ELEMENT content (#PCDATA)>
     7                             ]>
     8                             <poem>
     9                                 <author>王维</author>
    10                                 <title>鹿柴</title>
    11                                 <content>空山不见人,但闻人语响。返景入深林,复照青苔上。</content>
    12                             </poem> 


                                
            3.使用外部DTD验证XML
                    语法:<!DOCTYPE 根元素 SYSTEM "DTD文件路径">
                    
                    eg:poems.dtd
                          

                            <!ELEMENT poems (poem*)>
                            <!ELEMENT poem (title,author,year,content)>
                            <!ELEMENT title (#PCDATA)>
                            <!ELEMENT author (#PCDATA)>
                            <!ELEMENT year (#PCDATA)>
                            <!ELEMENT content (#PCDATA)>                


                            
                    使用外部DTD验证描述诗集的XML
                          

     1                      <?xml version="1.0"?>
     2                         <!DOCTYPE poems SYSTEM "poems.dtd">
     3                         <poems createYear="2011">
     4                             <poem>
     5                                 <title>春晓</title>
     6                                 <author>孟浩然/author>
     7                                 <year>732</year>
     8                                 <content>春眠不觉晓</content>
     9                             </poem>
    10                         </poems>        


            
            4.DTD元素
                    4.1:语法:<!ELEMENT NAME CONTENT>
                                 ELEMENT:关键字
                                 NAME:元素名称
                                 CONTENT:元素类型
                    4.2:常用的元素类型
                            #PCDATA,可以包含任何字符数据,但是不能在其中包含任何子元素
                                eg:<!ELEMENT title (#PCDATA)>
                            纯元素类型,只包含子元素,并且这些子元素没有文本
                                eg:<!ELEMENT poems (poem*)>
                    4.3:DTD元素中某些符号的用途
                            符号        用途                示例                                    示例说明
                            ()            用来给元素分组        (古龙|金庸|梁羽生),(王苏|玉洁),毛毛        表示分成三组
                            |            在列出的对象中选择一个    (男人|女人)                        两者选其一
                            ,            对象必须按指定的顺序出现  (西瓜,苹果,香蕉)                    三个都必须出现
                            *            允许出现(0到多次)    (爱好*)                                    爱好可以出现0到多次
                            ?            允许出现(0次到1次)    (菜鸟?)            表示可出现也可以不出现,如果出现最多一次
                            +            允许出现(1次到多次) (成员+)            表示必须出现,而且可以出现多次
                    4.4:DTD属性
                            1.语法:<!ATTLIST 元素名称 属性名称 属性类型 属性默认值>
                            2.DTD元素中属性类型的描述:
                                属性类型                            说明
                                CDATA                                表示字符数据
                                ID                                    表示唯一的id
                                IDREF                                表示为另一个元素的id
                                IDREFS                                表示其他id的列表
                                ENTITY                                表示一个实体
                                ENTITLES                            表示一个实体列表
                            3.DTD元素中属性值的描述
                                值                                    说明
                                #REQUIRED                            属性值是必须的
                                #IMPLIED                            属性值不是必须的
                                #FIXED                                属性值是固定的
                          eg:   

     1                 <!DOCTYPE mystruts[
     2                                 <!ELEMENT mystruts (actions)>
     3                                 <!ELEMENT actions (action*)>    
     4                                 <!ELEMENT action (result*)>
     5                                 <!ATTLIST action    
     6                                         name CDATA #REQUIRED
     7                                         class CDATA #REQUIRED>
     8                                 <!ELEMENT result (#PCDATA)>
     9                                 <!ATTLIST result
    10                                         name CDATA #IMPLIED
    11                                         redirect (true|false) "false">
    12                             ]>
    13                             <mystruts>
    14                                 <actions>
    15                                     <action name="register" class="com.RegisterAction">
    16                                         <result name="success">register_success.jsp</result>
    17                                         <result name="input">register.jsp</result>
    18                                     </action>
    19                                 </actions>
    20                             </mystruts>
    作者:JamelAr
    个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

    本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    Es6中的模块化Module,导入(import)导出(export)
    js:构造函数和class
    promise返回状态
    ES6之promise(resolve与reject)
    nodeJS 取参 -- req.body & req.query & req.params
    Android UI编程进阶——使用SurfaceViewt和Canvas实现动态时钟
    Android自定义控件前导基础知识学习(一)——Canvas
    Android挂载以点号(.)开头的文件夹或是文件
    Android UI编程之自定义控件初步(下)——CustomEditText
    Android UI编程之自定义控件初步(上)——ImageButton
  • 原文地址:https://www.cnblogs.com/JamelAr/p/6507179.html
Copyright © 2020-2023  润新知