| 建立有效的XML文件 |
|
| 来源:网络收集 作者: 加入时间:2006-10-27 访问次数:6 [大 中 小] |
|
你可以用它来参考数个其它元素:
- Electric Coffee Grinder
1 pound Breakfast Blend Coffee Beans
Coffee Grinder Brush
ENTITY 属性值必须与宣告于DTD 中未解析的实体相符合。未解析实体会参考一个外部档案,通常会是一个储存非XML 数据的档案。笔者将在第六章中讨论实体。 例如,在DTD 中你可能会宣告一个名为IMAGE 的元素来呈现图形影像,与一个名为Source 的ENTITY 型态属性来代表图形数据的来源,像这样:
如果你宣告一个名为Logo 的未解析实体(使用的技术你将在第六章中学到),内含影像的图形数据,你可以将该实体指定到文件中IMAGE 元素的Source 属性,如下所示:
![]() ENTITIES 这种型态就像ENTITY 型态,除了其值可以包含数个未解析实体的名称-以空格符隔开-全部被包含在引号字符串中。例如,如果你将Source 属性设定成ENTITIES 型态,如下所示:
你可以用它来参考数个未解析实体(或许该实体以另一种格式储存图形数据),如下所示:
![]() (这个范例假设LogoGif 与LogoBmp 为DTD 中宣告的未解析实体的名称,其中使用的技术将在第六章中讨论。) NMTOKEN 其值为name token,这是一个由一个或多个字母、数字、句点(.)、连字号(-),或底线(_)所组成的名称。name token 也可以包含冒号(:),只要不是在第一个字符位置就可以了。例如,如果你将ISBN 属性指定成NMTOKEN型态,如下所示:
你可以为它指定一个以数字起头的值(对于NMTOKEN与NMTOKENS型态而言,起始字符是数字字符是被允许的,但对于其它tokenized 型态则不被允许): The Portrait of a Lady NMTOKENS 这种型态的属性就像NMTOKEN 型态,除了其值可以包含数个name tokens-以空格符隔开-全部被包含在引号字符串中。例如,如果你将Codes 属性设定成NMTOKENS 型态,如下所示:
你可以为它赋予数个name token 值: long sleeve Henley
设定列举型态
就像其它属性值一样,你为列举型态的属性所指定的值必须是一个引号包围的字符串,这种引号包围的字符串必须符合第三章 <合法属性值的规则> 一节中所介绍的规则。另外,该值必须符合你在属性型态规格中所列名称的一个,让你可以拥有下列两种型式的一种: 一个开放的圆括号,后面接着一个name tokens 列表,以「|」字符作分隔,后面再接着结束的括号。如前所述,name token 是由一个或多个字母、数字、句点(.)、连字号(-),或底线(_)所组成的名称。它也可以包含冒号(:),只要不是在第一个字符位置就可以了。例如,如果你想限制Class 属性的值为「fictional」、「instructional」、或「documentary」,你可以将这个属性定义成列举型态,如下所示: Class (fictional |instructional |documentary) "fictional"> 下面是展示Class 属性用途的有效XML 文件:
[ |INSTRUCTOR))> Class (fictional|instructional|documentary)"fictional">
] >
Michael Young
如果你省略Class 属性,它会被指定为默认值「fictional」。为Class 属性指定一个非「fictional」、「in-structional」,或「documentary」的值将会发生违反有效性的错误。 关键词NOTATION 后面接着空白,然后再接着一个开始的括号,再接着一个标签名称列表,以「|」字符作分隔,后面再接着结束的括号。这些名称必须明确地符合DTD 中所宣告的标签名称。卷标描述了数据格式或定义了被用来处理特定格式的程序。第六章将会讨论标签。例如,假设HTML、SGML,与RTF 标签被宣告于DTD 中(如下所示),你可以限制Format 属性的值为这些标签名称中的任何一个:
|
|
|
|
|
|