增加HTML样式的文本 既然XML允许你定义任意想要的标记,那么你完全可以定义一个类似HTML的标记集。实际上,XHTML标准就做这些工作。你将看到多关于SAX的说明。目前,下面的粗体文本定义了一个使用HTML样式的幻灯。 ... <!-- TITLE SLIDE --> <slide type="all"> <title>Wake up to WonderWidgets!</title> </slide>
<?xml version='1.0' encoding='utf-8'?> <!-- DTD for a simple "slide show". -->
下一步,增加下面粗体文本到文件: <!-- DTD for a simple "slide show". --> <!ELEMENT slideshow (slide+)> 像你看到的那样,这个DTD标识开始于<!,后面跟随着标是名称(ELEMENT)。在这个标识名称后识被定义的元素名称。后面的园括弧里面的内容代表着一个或一个以上的slide元素出现在slideshow里都是合法的。
如果没有和面的加号,那么这个定义代表slideshow只能包含一个slide元素。下面列出了所有的限定符号。 Table 2-2 DTD Element Qualifiers Qualifier Name Meaning ? Question Mark Optional (zero or one) * Asterisk Zero or more + Plus Sign One or more 你能够包含更多的元素通过使用逗号和在每一个元素上使用限定符。你也能够使用嵌套来组织多个条目。例如,在定义一个image元素后,你能够声明每个image元素必须与一个title元素匹配,通过指定((image, title)+)。在这里,加号是应用于image/title对,表明一个或多个指定条目对可能出现。
EMPTY规范的意思是元素不包含内容。所以一个E-MAIL的DTD中的<flag/>可以这样使用: <!ELEMENT flag EMPTY> 引用DTD 在这个例子中,DTD定义是一个单独的文件。也就是说你不得不在XML文档中引用它。一回你将会看到,在文档的范围内,你也可以包含DTD的一部分。这些定义构成了DTD的本地子集。
为了引用DTD文件,你只需要增加下面组体的文本到你的slideSample.xml文件中,并且以slideSample05.xml文件名保存它。 <!-- A SAMPLE set of slides --> <!DOCTYPE slideshow SYSTEM "slideshow.dtd"> <slideshow DTD标记开始于“<!”。在这个例子中,这个标记名“DOCTYPE”的意思是这个文档是“slideshow”,“slideshow”得意思是这个文档由slideshow元素和所有包含在slideshow内的内容组成。
每一个属性是由三个空格分开的一系列值构成的。逗号和其他的分隔符是不允许出现的,所以像上面那样格式化定义是有帮助的和易读的。每一行的第一个元素是属性名称:title,date或author。第二个元素表明数据类型:CDATA是字符数据类型。Table 2-3介绍了所有的合法使用的属性类型。 Table 2-3 Attribute Types Attribute Type Specifies... (value1 value2 ...) A list of values separated by vertical bars. (Example below) CDATA "Unparsed character data". (For normal people, a text string.) ID A name that no other ID attribute shares. IDREF A reference to an ID defined elsewhere in the document. IDREFS A space-separated list containing one or more ID references. ENTITY The name of an entity defined in the DTD. ENTITIES A space-separated list of entities. NMTOKEN A valid XML name composed of letters, numbers, hyphens, underscores, and colons. NMTOKENS A space-separated list of names. NOTATION The name of a DTD-specified notation, which describes a non-XML data format, such as those used for image files.*
属性中最后的一个实体规范决定属性的默认值。. Table 2-4中显示了可能的选择值。 Table 2-4 Attribute-Specification Parameters Specification Specifies... #REQUIRED The attribute value must be specified in the document. #IMPLIED The value need not be specified in the document. If it isn't, the application will have a default value it uses. "defaultValue" The default value to use, if a value is not specified in the document. #FIXED "fixedValue" The value to use. If the document specifies any value at all, it must be the same.
Today's date is ¤tDate;. 你将看到如下的回馈: ... <slide type="all"> <item> This is the standard copyright message that our lawyers make us put everywhere so we don't have to shell out a million bucks every time someone spills hot coffee in their lap... </item> </slide> ...