allowable permutations that other XML documents can adopt in order to be con- sidered  a  member  of  the  common  family  of  XML  documents.  Think  of  an  XML Schema as metadata (essentially, data that describes data). As an analogy, think of how,  in  any  object-oriented  programming  language,  a  class  definition  defines  a family  of  objects  or  a  relational  database  schema  defines  the  data  types  and constraints to which a dataset must adhere to exist in a particular table. In both analogies, the class definition and relational database schema merely lay out some basic ground rules for restricting structure and data ranges, which in turn can be used in any application. As previously mentioned, industry consortiums are joining together to develop XML Schemas that define common file formats for describing mathematical formu- las, research documents, news articles, credit card transactions, accounting audits, medical  prescriptions,  and  much  more.  Development  of  industry-standard  XML Schemas enhances software application interoperability through the use of com- mon XML-based file formats to express data and content. Using a common XML Schema, software applications can exchange information as an XML document that conforms to a particular XML Schema. An XML Schema is most commonly used by an XML processor to validate XML documents. Validation is the process of verifying that an XML document conforms to the rules defined within the XML Schema. An XML processor that can perform XML  Schema-based  document  validation  (that  is,  an  XML  Schema  validator) enables a developer to offload the burden of code validation from the application to the XML processor. I discuss DTDs in Chapter 3. DTDs, however, have clearly been marked for obsolescence by the W3C. A   complete   discussion   of   applied   XML   Schema   design   is   provided   in Chapters 4 and 5. XSL/XSLT The Extensible Stylesheet Language (XSL) and the Extensible Stylesheet Language Transformations   (XSLT)   are   standardized   XML-based   vocabularies   (markup languages) for changing the content and data stored in an XML document into a different output form. Using XSL, you can take content saved in an XML format and transform it into any output media (HTML, WML, PDF, PostScript, plain text) by applying a special XML stylesheet document written using XSL or XSLT. The XSLT transformation process is illustrated in Figure 1-1. Chapter 1: The XMLSPY Game 3