XML(1) DTD(Document type defintnion)文档类型定义

一:xml安装 破解
二:XML是什么(extensible Markup Language)扩展标记语言
   HTML(Hyper Text Markup Language)
   A:优势
     (1):支持自定义标记 (一看标记就知其意)
     (2):数据仓库
     (3):分离数据层和表示层
         WAP协议:WireLess Application Protocol (手机)
         电脑上网采用HTTP协议(Hyper Text Transfer Protocol) 
         手机的显示规范和显示器是不一样的  如何让一个网站成功的在不同的设备上显示  这也就是XML的优势

     DTD:(Document Type Difintnion)作用是检验一个XML文档是否合法有效
          如果一个XML文件没有DTD约束  只能证明他是结构完整的  但不是合法有效的
          DTD是W3C提出来的
     Schema:用是检验一个XML文档是否合法有效
          如果一个XML文件没有Schema约束  只能证明他是结构完整的  但不是合法有效的
          Schema是Microsoft提出.

     XSL:(Extensible Style Language)如何把一个XML文件的数据进行显示在IE
     DOM:(Document Object Model)通过语言对一个XML文件做 数据的   增加 删除  修改 查询
                                                        对元素做 增加 删除  修改 查询

   本书重点:   DTD和DOM
              
三:如何书写一个最简单是XML文件
   A:声明头
     <?xml version="1.0" encoding="gb2312"?>
   B:定义根元素
     <学生成绩通知单>     </学生成绩通知单>
   C:生成XML元素
     <T9 StuID="S001">
        <Name>小王</Name>
        <Chinese>99</Chinese>
     </T9>
   D:注释
      <!---->

    元素的命名规则:
          不能以数字开头 后面可以是字符 数字  字母组成的字符序列
           嵌套必须完整

四:练习: 

<? xml version="1.0" encoding="gb2312" ?>
< 学生成绩通知表 >
     
< T9  StuID ="S001" >
        
< Name > 小王 </ Name >
        
< Chinese > 99 </ Chinese >
     
</ T9 >
     
< T9  StuID ="S002" >
        
< Name > 小李 </ Name >
        
< Chinese > 99 </ Chinese >
     
</ T9 >
     
< T9  StuID ="S003" >
        
< Name > 小张 </ Name >
        
< Chinese > 99 </ Chinese >
     
</ T9 >
</ 学生成绩通知表 >

 

<? xml version="1.0" encoding="gb2312" ?>
<? altova_sps D:\work work\JSP\jsp上课\Lesson3\XML代码\一个最简单是XML文件\test.xml ?>
< 个人信息 >
    
< personal  id ="001" >
        
< name > qq </ name >
        
< address > qq </ address >
        
< sex > qq </ sex >
        
< age > 11 </ age >
        
< 学历 > qq </ 学历 >
        
< 政治面貌 > qq </ 政治面貌 >
        
< 所属单位 > qq </ 所属单位 >
    
</ personal >
    
< personal  id ="002" >
        
< name > ww </ name >
        
< address > ww </ address >
        
< sex > qq </ sex >
        
< age > 22 </ age >
        
< 学历 > ww </ 学历 >
        
< 政治面貌 > ww </ 政治面貌 >
        
< 所属单位 > ww </ 所属单位 >
    
</ personal >
    
< personal  id ="003" >
        
< name > aa </ name >
        
< address > aa </ address >
        
< sex > qq </ sex >
        
< age > 33 </ age >
        
< 学历 > aa </ 学历 >
        
< 政治面貌 > aa </ 政治面貌 >
        
< 所属单位 > aa </ 所属单位 >
    
</ personal >
    
< personal  id ="004" >
        
< name > ss </ name >
        
< address > ss </ address >
        
< sex > qq </ sex >
        
< age > 44 </ age >
        
< 学历 > aa </ 学历 >
        
< 政治面貌 > aa </ 政治面貌 >
        
< 所属单位 > aa </ 所属单位 >
    
</ personal >
</ 个人信息 >

一:DTD(Document type defintnion)文档类型定义
  A:作用:
    验证一个XML文档是否合法有效(ISO9001)
  B:如何来约束XML文档
    1:如何来约束XML文档元素
       元素出现次数的约束:
         +  代表该元素至少出现一次 也可以出现多次
         *  代表该元素可出现可不出现 出现的时候可以是多次
         ?  代表带元素可以不出现 但是出现的时候只能是一次
       元素的类型
        (#PCDATA) 代表该元素没有子元素 但是有元素内容
        EMPTY     代表该元素既没有子元素  也没有元素内容
         ANY      带表该元素包含了在文档中出现的其他任何子元素
                  一般修饰根元素
       格式:
        <!ELEMENT 元素名称 出现次数 类型以及关系>
    2:如何来约束XML文档属性
       格式:
        <!ATTLIST 属性所在的元素名称 属性名称 属性类型
                  属性约束>
        属性的类型:
          CDATA 代表该属性可以包含字符数据
          ID    代表该属性的值是唯一的
          IDREF 指向文档中出现的一个属性
          IDREFS指向文档中出现的多个属性
       属性的约束:
          #REQUIRED   代表该属性必须出现
          #IMPLIED    代表该属性的可以不出现
          #FIXED  值  代表该属性只能取某一个值
          默认值      有新值的时候取新值  否则取默认值
       
   3:实体
      就是一个调用关系
      请牢记系统的5个实体  &lt -- < , &gt -- > , &amp; -- & , &quot -- " , &apos -- '
 3.1 DTD中的内部实体
    在XML的文档中的表现形式??
    语法: <!ENTITY entity-name "entity-value">
    DTD 示例:
       <!ENTITY writer "王俊">
       <!ENTITY copyright "Copyright XML1.0">
    XML 示例:
       <author> &writer; &copyright;</author>
 3.2 DTD中的外部实体
    外部实体指内容在XML文档之外的实体。
    SYSTEM 关键字用于指定所有在文档之外的实体。
    语法: <!ENTITY entity-name SYSTEM "URI/URL">
    例: 将实体引用替换成指定的文档内容.
    DTD:   <!ENTITY writer SYSTEM "http://www.xml101.com/entities/entities.xml">
    XML:   <author>&writer;</author>
 3.3 DTD 中的参数实体
    只能在DTD文档中出现。
    DTD 示例:
       <!ENTITY %p "a">
          <!ELEMENT roster ((%p;)+)>
       <!ELEMENT %P; (name,age,address)>
    其中p是参数实体,a是p的省略值. 根据p 的不同,DTD中roster子元素也不同。
    这种用法一般用于 两个不同元素的XML文件共同关联一个DTD文件。
    XML 示例:
      一个文件是:  <!ENTITY %p "student">
      别一个文件是:<!ENTITY %p "teacher">
    student 和 teacher 分别为两个文件中的roster的子元素。

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

<!ELEMENT TVGuide (Channel+)>
<!ELEMENT Channel (Name,Program+)>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Program (Start,Duration,Series,Title,Description?,CastList?,Writers?,Director?,Producer?)>
<!ELEMENT Start (#PCDATA)>
<!ELEMENT Duration (#PCDATA)>
<!ELEMENT Series (#PCDATA)>
<!ELEMENT Title (#PCDATA)>
<!ELEMENT Description (#PCDATA)>
<!ELEMENT CastList (CastMember+)>
<!ELEMENT Writers (Writer)>
<!ELEMENT Writer (Name)>
<!ELEMENT Director (Name)>
<!ELEMENT Producer (Name)>
<!ELEMENT CastMember (Character,Actor)>
<!ELEMENT Character (Name)>
<!ELEMENT Actor (Name)>

<!ATTLIST TVGuide Start CDATA #REQUIRED end CDATA #REQUIRED>
<!ATTLIST Program rating CDATA #IMPLIED flag CDATA #IMPLIED type CDATA #FIXED "document">


例子:  一个简单的  introduce.dtd 文件和 introduce.xml文件.
--------xml文件---------
<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE school SYSTEM "introduce.dtd">
<school>

<!--<class>-->
 <student stuID="s001"> 
<!--因为dtd文件中的属性设为ID(唯一的属性值),因此值的数字前面一定要加字母,否则出错。如 错误 [333] 正确 [s333] -->
  <name>wangjun</name>
  <age>28</age>
  <address>应城</address>
 </student>
 <student stuID="s1003">
  <name>duping</name>
  <age>22</age>
  <address>仙桃</address>
 </student>
 <student stuID="s005">
  <name>chenjie</name>
  <age>26</age>
  <address>武汉</address>
 </student>
<!--</class>-->
</school>

---------------dtd文件--------------
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT school (student+)>
<!ELEMENT student (name,age,address)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ATTLIST student stuID ID #REQUIRED>
====================over========================


Trackback: http://www.cnblogs.com/wj-wangjun/archive/2008/02/16/1070920.html

你可能感兴趣的:(document)