DTD和XMLSchema.ppt

DTD和XMLSchema.ppt

3.1.5 DTD的实体声明与引用 一般实体的声明与引用 声明: !ENTITY 一般型实体名称 “实体代表的内容” 引用 一般实体名称 参数型实体的声明和引用 声明: ! ENTITY % 参数型实体名称 “实体代表的内容” 特征:P49 示例:例3.3.dtd 3.1.5 DTD的实体声明与引用 正确声明和引用实体 一般型实体声明后,可在XML主体文档中被引用,这包括在元素内容和在设置属性值时引用。一个一般型实体的声明中被引用,但是不能在元素声明中被引用。 实体声明中引用实体时,不能形成死循环 参数型实体必须在外部DTD中进行声明,而不能在内部DTD中声明。 在XML文档主体中只能引用一般型实体,引用参数型实体并不能达到引用相应内容的效果 习 题 1.何谓DTD?在XML文件中使用DTD有何好处? 2.在合法的XML文档中使用的每项标记都要在DTD中的元素声明中加以声明,请简述以下几种声明方式: 序列;零或多个子元素零;选择。 习 题(续) 3.请撰写一个实际XML文件来说明引用底下的DTD? ?xml version=”1.0”? !ELEMENT book (title,author,breakline,publish,price,language) !ELEMENT title (#PCDATA) !ELEMENT author (#PCDATA) !ELEMENT publish (#PCDATA) !ELEMENT price (#PCDATA) !ELEMENT language (#PCDATA) !ELEMENT breakline EMPTY 习 题(续) 4.请撰写一个实际XML文件来说明下面的DTD? ? Xml version = “1.0” encording = “GB2312”? !DOCTYPE 汽车[ !ELEMENT 汽车(品牌,车主,保险公司*,银行贷款?,维修地点)〉 !ELEMENT 品牌(#PCDATA)〉 !ELEMENT 车主(#PCDATA)〉 !ELEMENT 保险公司(#PCDATA)〉 !ELEMENT 银行贷款(#PCDATA)〉 !ELEMENT 维修地点(#PCDATA)〉 ] 3.1.4 DTD的属性声明 开始标记和空标记可包含由等号“=”分割开的成对的属性名和属性值 属性包含有关元素内容信息,而不是元素内容本身。 元素可具有多个属性 结束标记不能带属性 3.1.4 DTD的属性声明 属性是XML提供的描述元素某些性质的信息。 在一个有效的XML文档中,属性要经过DTD的属性说明。 在DTD声明中,属性的声明语法为: !ATTLIST 元素名 属性名 属性类型 属性默认值类型 元素名为属性所属的元素的名称 属性类型是对属性值的约束 3.1.4 DTD的属性声明 例如: 商品 类型 =“服装” 颜色 = 黄色 元素名是“商品”;属性名是属性的命名, “类型”和“颜色”是属性名;默认值说明在XML文件中,如果没有特别说明属性的取值,语法分析器默认它具有的取值;属性类型则用来指定该属性是属于有效属性类型中的哪种类型。 注意:由于ATTLIST是一个属性的列表,它可以包含很多属性,在实际应用中,一个元素也经常有多个属性。 属性默认值类型 #IMPLIED:属性值可有可无的属性,而且也无须在DTD中为该属性提供缺省值。 语法:!ATTLIST 元素名称 属性名称 #IMPLIED 有时用户在不强制指定特定默认值的情况下省略特定属性值。 例如,可以拥有一个SHIRT(衬衣)元素,其具有一个声明为NMTOKEN的SIZE属性。但有些衬衫属于均码,没有尺寸。可以省去SIZE这个值,并且处理器隐含这个衬衫属于均码, !ATTLIST SHIRT SIZE NOTOKEN #IMPLIED SHIRT---符合上述定义 SHIRT SIZE=“”---不符合上述定义 属性默认值类型 #REQUIRED:必须赋值的属性 关键字REQUIRED说明XML文件中必须为这个属性给出一个属性值。 与提供默认值相反的情况,文档类型设计者需要强制作者选择一个值。如果属性值既重要又无法可靠地默认确定,那么设计者可以要求作者用该属性默认值来指定。 例如:!ATTLIST IMAG URL CDATA #REQUIRED 这种情况下,DTD设计者使URL属性在所用IMAG元素上都成为必需。之所以这样做是因为如果没有一个URL定位图像文件,则此IMAGE元素没有任何意义。 属性默认值类型 #FIXED:

文档评论(0)

1亿VIP精品文档

相关文档