XML DOM初学者指南(2) <track>I Get Along Without You Very Well</track> </tracks> <price>$12.99</price> </compactdisc> <compactdisc> <artist type="band">The Offspring</artist> <title numberoftracks="5">Americana</title> <tracks> <track>Welcome</track> <track>Have You Ever</track> <track>Staring At The Sun</track> <track>Pretty Fly (For A White Guy)</track> </tracks> <price>$12.99</price> </compactdisc> </compactdiscs> 上面的文档的第二行引用了一个外部DTD(文档类型描述),DTD描述了一个特定类型的XML的层次结构和能包括的内容。XML解析器利用DTD来验证XML文档的正确性。DTD只是你用来让解析器验证XML文档是否合法的办法的一种,另一个越来越受欢迎的方法是XML Schemas,它用XML来描述Schemas而不是DTD。与DTD不同的是, Schema是用XML来描述的,也就是使用它自己的"有趣的"语法。 下面的文档是cds.xml用到的cds.dtd。 <! ELEMENT compactdiscs (compactdisc*)> <! ELEMENT compactdisc (artist, title, tracks, price)> <! ENTITY % Type "individual band"> <! ELEMENT artist (#PCDATA)> <! ATTLIST artist type (%Type;) #REQUIRED> <! ELEMENT title (#PCDATA)> <! ATTLIST title numberoftracks CDATA #REQUIRED> <! ELEMENT tracks (track*)>