Designing an XML application is an exercise in modeling a problem domain, similar in many respects to designing a class hierarchy in an object-oriented programming language or defining the tables that make up a database schema. It involves mapping a real-world system into the constructs the language makes available. In the case of XML, you map real-world information into trees, elements, and attributes. The mapping may be implicit or it may be described in a schema written in some language such as RELAX NG, DTDs, Schematron, or the W3C XML Schema Language.
Part 2 discusses the issues that arise when performing such mappings. It shows you which XML structures are appropriate for which kinds of data and which ones aren't appropriate at all as a repository for significant data. (XML has a lot of syntax sugar that, while useful for authoring, doesn't offer a lot of additional expressiveness .) This section covers tools and techniques for designing and documenting such mappings as namespaces and schemas. It also provides a few hints for ensuring that your models are both representative now and extensible in the future.