<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<!--
// // See license.txt for license information. // // schema.xml // // 24-Jul-2003 phamilton Created //
-->

<object xmlns:xi="http://www.w3.org/2001/XInclude" xmlns="urn:xmlliterate.schema" name="@root">
    <description>The absolute base for all objects. Objects which derived from this don't really derived from any other object.</description>
    <templates>
        <xi:include href="../../xml/typename/pathtype.xml"/>
        <xi:include href="../../xml/typename/timetype.xml"/>
        <xi:include href="../../xml/typename/streamptrtype.xml"/>
        <xi:include href="../../xml/typename/stringsetptrtype.xml"/>
        <xi:include href="../../xml/typename/tgl_versiontype.xml"/>
        <xi:include href="../../xml/typename/schema_versiontype.xml"/>
    </templates>
    <typeimpls>
        <xi:include href="../../xml/typeimpl/cpp/voidtype.xml"/>
        <xi:include href="../../xml/typeimpl/cpp/inttype.xml"/>
        <xi:include href="../../xml/typeimpl/cpp/longtype.xml"/>
        <xi:include href="../../xml/typeimpl/cpp/doubletype.xml"/>
        <xi:include href="../../xml/typeimpl/cpp/booltype.xml"/>
        <xi:include href="../../xml/typeimpl/cpp/stringtype.xml"/>
        <xi:include href="../../xml/typeimpl/cpp/chartype.xml"/>
        <xi:include href="../../xml/typeimpl/cpp/enumtypename.xml"/>
        <xi:include href="../../xml/typeimpl/cpp/pathtype.xml"/>
        <xi:include href="../../xml/typeimpl/cpp/timetype.xml"/>
        <xi:include href="../../xml/typeimpl/cpp/streamptrtype.xml"/>
        <xi:include href="../../xml/typeimpl/cpp/stringsetptrtype.xml"/>
        <xi:include href="../../xml/typeimpl/cpp/tgl_versiontype.xml"/>
        <xi:include href="../../xml/typeimpl/cpp/schema_versiontype.xml"/>
    </typeimpls>
    <derived>
        <object name="@xmlobj">
            <classname>ph::xmlobj::xmlobj</classname>
            <include>../cppxmlobj/xmlobj.hpp</include>
            <description>The base class in the xml object system.</description>
            <typeimpls>
                <xi:include href="../../xml/typeimpl/xmlobj/cpp/typedobjvectortype.xml"/>
                <xi:include href="../../xml/typeimpl/xmlobj/cpp/templatevectortype.xml"/>
                <xi:include href="../../xml/typeimpl/xmlobj/cpp/typedobjreftype.xml"/>
            </typeimpls>
            <derived>
                <xi:include href="../../schema/literate/schema_obj.xml" name="@schemaobj"/>
                <xi:include href="tgl_obj.xml" name="@tglobj"/>
            </derived>
        </object>
        <object name="@standalone">
            <description>Objects which are not rooted on any other.</description>
            <templates>
                <xi:include href="../../xml/typename/xmlobj/object_baseptrtype.xml"/>
                <xi:include href="../../xml/typename/stringmaptype.xml"/>
                <xi:include href="../../xml/typename/stringiteratortype.xml"/>
                <xi:include href="../../xml/typename/stringvectorptrtype.xml"/>
                <xi:include href="../../xml/typename/stringsettype.xml"/>
            </templates>
            <typeimpls>
                <xi:include href="../../xml/typeimpl/xmlobj/cpp/object_baseptrtype.xml"/>
                <xi:include href="../../xml/typeimpl/cpp/stringmaptype.xml"/>
                <xi:include href="../../xml/typeimpl/cpp/stringiteratortype.xml"/>
                <xi:include href="../../xml/typeimpl/cpp/stringvectorptrtype.xml"/>
                <xi:include href="../../xml/typeimpl/cpp/stringsettype.xml"/>
            </typeimpls>
            <derived>
                <xi:include href="tgl_structure_parser.xml" name="tgl_structure_parser"/>
                <xi:include href="tgl_list_parser.xml" name="tgl_list_parser"/>
                <xi:include href="../../xml/schema/xmlobj/visitor.xml" name="visitor"/>
                <xi:include href="../../xml/object/version.xml" name="tgl_version">
                    <param name="namespace" value="ph:tools:tangle"/>
                    <param name="classname" value="tgl_version"/>
                </xi:include>
            </derived>
        </object>
    </derived>
    <fragment location="root().derived('@standalone').derived('visitor').derived()">
        <xi:include href="tgl_filedef_console_visitor.xml" name="tgl_filedef_console_visitor"/>
        <xi:include href="tgl_filedef_file_visitor.xml" name="tgl_filedef_file_visitor"/>
        <xi:include href="tgl_foreachobject_visitor.xml" name="tgl_foreachobject_visitor"/>
        <xi:include href="tgl_enumfiledef_console_visitor.xml" name="tgl_enumfiledef_console_visitor"/>
        <xi:include href="tgl_enumfiledef_file_visitor.xml" name="tgl_enumfiledef_file_visitor"/>
    </fragment>
    <fragment location="root().derived('@xmlobj').derived('@tglobj').derived()">
        <xi:include href="tgl_filedef.xml" name="filedef"/>
        <xi:include href="tgl_enumfiledef.xml" name="enumfiledef"/>
        <xi:include href="tgl_condition.xml" name="@condition"/>
        <xi:include href="tgl_block.xml" name="@block"/>
        <xi:include href="tgl_datatable.xml" name="datatable"/>
        <xi:include href="tgl_tablerow.xml" name="tablerow"/>
        <xi:include href="tgl_tablecol.xml" name="tablecol"/>
    </fragment>
    <fragment location="root().derived('@xmlobj').derived('@schemaobj').derived()">
        <xi:include href="../../schema/literate/schema_object.xml" name="object"/>
        <xi:include href="../../schema/literate/schema_enumeration.xml" name="enumeration"/>
        <xi:include href="../../schema/literate/schema_method.xml" name="method"/>
        <xi:include href="../../schema/literate/schema_typename.xml" name="@typename"/>
        <xi:include href="../../schema/literate/schema_websection.xml" name="websection"/>
        <xi:include href="../../schema/literate/schema_webobj.xml" name="@webobj"/>
        <xi:include href="../../schema/literate/schema_implementation.xml" name="@implementation"/>
        <xi:include href="../../schema/literate/schema_typeimpl.xml" name="typeimpl"/>
    </fragment>
    <fragment location="root().derived('@xmlobj').derived('@schemaobj').derived('@implementation').derived()">
        <xi:include href="../../schema/literate/schema_web.xml" name="web"/>
    </fragment>
</object>