1、DTD

1.1、什么dtd

dtd(Document Type Definition):文档定义类型,描述xml文档的结构,它描述以下几个方面:

1.元素的定义规则以及元素与元素之间的关系

2.属性的规则

3.实体的规则

dtd与xml文档的关系:

类与对象

数据库中的表结构与数据库中的记录

1.2、为什么要使用dtd

有了dtd,对于每个xml文档而言就有了一个自身的描述文件

有了dtd,对不不同的组织的人可以通过dtd来进行交换数据

有了dtd,对于程序段而言,我们可以通过dtd来验证一个外部的xml文档是否有效

1.3、编写dtd的方式

内部dtd、外部dtd、内外部结合的dtd

1.3.1、内部dtd



    
    
    
]>

    s01
    关羽
    南京

1.3.2、外部dtd

先编写一个demo04.dtd文件





然后编写一个xml文件与上面的dtd进行关联




    s02
    曹操
    

1.3.3、内外部结合的dtd

改写上面的代码





以上dtd并没有定义age元素,我们将age元素的定义放在了内部中进行描述



]>

    s02
    曹操
    曹营
    12

1.4、元素的定义

元素定义的语法:

content有以下几种类型:

EMPTY:不能包含任何子元素和文本,但是它可以有属性(空元素)

ANY:可以包含任何dtd中定义的元素

#PCDATA:只能包含字符数据,不能包含任何子元素

纯元素类型:只能包含子元素,不能包含文本内容

混合类型:可以包含子元素和文本数据

1.4.1、EMPTY



    
    
    
    
]>

    s01
    关羽
    南京
    

1.4.2、ANY



    
    
    
    
    
]>

    s01
    关羽
    南京
    
    
        
            
            
            
            
            
        
    

对于ANY而言,在开发中很少使用。

1.4.3、纯元素类型



    
    
    
    
    
]>

    
    s01
    s02
    南京
    

1.4.4、混合类型

混合类型中可以放字符数据也可以放元素



    
    
    
    
    
    
    
    
]>

    
    s01
    s02

    南京
    
    
        关羽是输出关羽牛逼
       
    

1.5、属性

语法:

类型:CDATA、ID、IDREF|IDREFS、枚举类型

属性的特点:#REQUIRED、#IMPLIED、#FIXED value、default value











]>

    
    
    

1.6、实体

1.6.1、普通实体

实体的定义

运用时:采用&实体名;

普通实体是定义在xml文件中,应用也在xml文件中

1.6.2、参数实体

参数实体它是定义在dtd文件中,应用在dtd文件中








xml文件




    张三
    15
    <省份>江苏
    <城市>南京
    <区>秦淮区

1.7、读取mybatis框架的dtd文件
























































2、命名空间

需求:

xml01文档


编号 姓名

xml02文档


mytable10090

现在这2个xml文件在不同的文件中肯定是没有问题的,但是如果将2个xml中内容放在一起就会造成命名的冲突



编号 姓名
mytable10090

那么如何解决->写上前缀



    
        编号
        姓名
    


    mytable
    100
    90

接下来为前缀加上命名空间约束



    
        编号
        姓名
    


    mytable
    100
    90

对于命名空间而言,不仅可以运用在元素上,它也可以运用在属性上面

命名空间就是为了解决命名冲突的问题