<!-- DTD for a hypothetical media management system --> <!-- Media
assets are the root of the object hierarchy. Assets are also
hierarchical - they can contain other assets. --> <!ELEMENT
media-asset (name, desc?, type*, media-asset*, urn)> <!-- Metadata
about the asset --> <!ELEMENT name (#PCDATA)> <!ELEMENT desc
(#PCDATA)> <!ELEMENT type (desc, mime-type?)> <!ELEMENT mime-type
(#PCDATA)> <!ELEMENT urn (#PCDATA)>
以下是一个基于上述媒体DTD的XML文档,描述了与某个课程讲座相关的内容:
实现上述处理的方法数不胜数。我们还可以使用其他的解析器或解析器架构,如Java API for XML Parsing
(JAXP)。除了使用DOM模型外,事件驱动的SAX模型也可用于解析XML。类似的程序也可用来产生XML数据——前提是允许产生新的数据对象(在本例中是MediaAsset),它可将其相应的XML实体插入到DOM中,然后将DOM输出到一个流中(诸如一个文件,一个Socket,或者一个HTTP连接...)。还有其他更高层次的标准,可将XML映射到Java对象的过程进一步自动化(或简化)。例如,使用XML概要(Schema)和XML绑定处理引擎,您可以半自动地将满足某个XML
概要的XML数据转变成Java数据对象。代表性的引擎是Castor,是由ExoLab小组管理的一个开放源代码项目的产物。上述使用Xerces
DOM的简单例子仅仅是演示了这一处理过程的底层模型。