This example shows how to use ordered types to capture mixed content text and to maintain order information between elements and text. In this example we use mixed content model to describe text with embedded links in the form: This paragraph talks about time. The example transforms such text into plain text with references in the form: This paragraph talks about time[uri]. It also saves the modified text back to XML in order to verify the element and text order. The example consists of the following files: text.xsd XML Schema which describes "text with links" instance documents. text.xml Sample XML instance document. text.hxx text.cxx C++ types that represent the given vocabulary as well as a set of parsing and serialization functions. These are generated by XSD from text.xsd. Note that the --ordered-type-mixed option is used to indicate to the XSD compiler that all types with mixed content should be automatically treated as ordered. driver.cxx Driver for the example. It first calls one of the parsing functions that constructs the object model from the input XML file. It then iterates over the text and elements in the content order to convert the document to its plain text representation. The driver then adds another paragraph of text and a link to the object model while showing how to maintain the content order. Finally, it saves the modified text back to XML to verify that the content order is preserved in the output document. To run the example on the sample XML instance document simply execute: $ ./driver text.xml