FlexDoc/XML - XSDDoc - Templates

  1. Overview
  2. XML Type
  3. Main Templates
  4. Template Parameters
  5. Subtemplates

1. Overview

«XSDDoc» template set is included in FlexDoc/XML software and found in the directory:
{flexdoc-xml}/templates/XSDDoc/
where '{flexdoc-xml}' is FlexDoc/XML home directory or its archive.

The XSDDoc directory will be referred further simply as '{XSDDoc}'.

Here, you will find two main templates:

  1. FramedDoc.tpl to generate framed HTML documentation
  2. SingleDoc.tpl to generate single-file both RTF and HTML documentation
Main templates are those that can be specified for interpretation directly to the generator (either with -template option on the Java command line or in Generator Dialog). Each main template effectively represents a separate documentation generator.
Besides them, there are many other templates (called subtemplates) that are used internally. Those templates work as procedures invoked from the main templates as well as from each other.

The entire «XSDDoc» template set (version 2.9.5) consists of 67 templates.

2. XML Type

To be able to process any XSD files, first, one needs to know their structure. This is provided by the «xsddoc» XML Type, which is defined using XML Type Configuration File, a special plain text file found in the XSDDoc template set directory:
{XSDDoc}/xsddoc.xmltype
Here is its full content:
1
2
3
4
5
6
7
8
9
10
11
12
13
xsddoc.name = W3C XML Schema Files
xsddoc.doc = Represents any number of W3C XML Schema Definition (XSD) files
xsddoc.xsd.files = http://www.w3.org/2001/XMLSchema.xsd
xsddoc.xsd.catalogs = urn:flexdoc-xyz:xml:defaultcatalog
xsddoc.xsd.includeAbstractTypes = true
xsddoc.ns.1.prefix = xs
xsddoc.ns.1.uri = http://www.w3.org/2001/XMLSchema
xsddoc.ns.2.prefix = xhtml
xsddoc.ns.2.uri = http://www.w3.org/1999/xhtml
xsddoc.pseudo-elements.all = on
xsddoc.defaultRootElement = Documents
xsddoc.imageProvider.name = %IMAGE_PROVIDER%
xsddoc.imageProvider.classPath = %IMAGE_PROVIDER_CLASSPATH%
And here is the meaning of each line:

Line Explanation
1 The XML Type full name
2 A short description of the XML Type
3 This setting is most important for the whole XML Type definition. It specifies one or several XML schema files that provide the datatype information about all data-source XML files possible to process by any template set based on that XML Type.

In case ox XSDDoc, it is http://www.w3.org/2001/XMLSchema.xsd (i.e. “XML schema for XML Schemas”) and those possible data-source XML files are any XML schema (XSD) files themselves.

See Also: Defining XML Type | Assigning XML Schemas | xsd.files

4 The URI of an XML catalog that redirects the locations of the XSD files (specified in line 3 as well as any other XML schemas referenced from them) to some other locations, which may be easier to access.

The specified URI ('urn:flexdoc-xyz:xml:defaultcatalog') denotes the Default XML Catalog, which redirects the Internet locations of all necessary files to their local copies held in FlexDoc/XML resources: {flexdoc-xml}/lib/resources

5 Indicates that all global types (i.e. xs:simpleType and xs:complexType) defined in the XML schemas (line 3) should be exposed as abstract element types.

In particular, this allows you to program in templates the searching and iterating elements not only by their XML names (directly found in XML files), but also by the element types associated with the elements according to the XML schemas.

See Also: Defining XML Type | Assigning XML Schemas | xsd.includeAbstractTypes

6-9 These lines specify all namespace prefixes used in XSDDoc templates.

Templates, like the XML files/documents they process, need to deal with namespace URIs, which are typically long character strings. Therefore, some shortcuts are needed to reference to particular namespaces.

See Also: Defining XML Type | Assigning XML Schemas | Declaring Namespaces

10 This setting says that, in addition to normal elements and attributes, all other nodes of an XML document (i.e. DOM) should be exposed as special elements (called pseudo-elements).

This is needed to be able to program in templates the processing of entire XML file content, for instance, to fully reproduce it in the generated documentation together with the special formatting and hyperlinks.

See Also: Defining XML Type | Pseudo-elements

11 Indicates that any processing should start from the #DOCUMENTS pseudo-element, which is created by the template interpreter to represent the list of all data-source XML files specified on the generator command-line for processing.

That virtual element will be passed to any main template, as the template's root element, from which the processing of the template starts. That allows XSDDoc to process/document any number of XML schemas at once.

See Also: Defining XML Type | Pseudo-elements | #DOCUMENTS
12 Specify the name of the Element Image Provider.
Here “elements” mean not XML schema element components, but rather elements of the XML document that describes the schema (that is the XSD file), and “images” are diagrams, which depict content models of XML schema components defined by some of those elements (such as <xs:element>, <xs:complexType> and <xs:group>).
«Element Image Provider» is actually a more technical name for diagramming plugin, whose job is to generate those diagrams. FlexDoc/XML currently includes a single diagramming plugin:
FlexDoc/XML DiagramKit
Since diagramming plugin is interchangeable, its name is specified not directly, but via 'IMAGE_PROVIDER' macro. That allows you to select a particular diagramming plugin externally on the Java command line of both Generator and Template Designer.

See Also:

13 Specify the file path, where any additional Java classes necessary for running the Element Image Provider can be found.

This setting is particularly important when FlexDoc/XML runs in non-modular mode (e.g. from Maven).

The screenshot on the left shows a part of the tree representation of the element types and their attributes constructed by this XML Type definition (click on the picture to see a more expanded tree view).

The term “DSM Type” (Data Source Model Type) visible on the screenshot is a generalization of the notion of XML Type extended to the whole FlexDoc.XYZ, which is able to process in similar way not only XML-files, but any other data-sources provided via some Java APIs. For example, see FlexDoc/Javadoc.

3. Main Templates

Main templates are those that can be specified for interpretation directly to the generator (either with -template option on the Java command line or in Generator Dialog). Each main template effectively represents a separate documentation generator.

FramedDoc.tpl

FramedDoc.tpl is a main template designed to generate multi-file (Javadoc-like) framed HTML documentation by any number of XML schema files.

On left the you can see how this template looks when open in the Template Designer (click to enlarge). On the right is a sample documentation generated with it (click to view the HTML):

The FramedDoc.tpl template is interpreted as follows:

  1. First, the «Template Init Expression» specified in the template properties is processed:

  2. This, in turn, invokes the execution of «Init» stock-section (click on the screenshot to enlarge):

    This stock-section does not generate any output. Rather, it calls from itself some subtemplates for special purposes:
    1. init.tpl loads all XML schema files to be processed/documented (including those references from them directly or indirectly). It also creates element maps, which are essentially hash-maps. Element maps allow resolving very complicated queries. They are used in almost everywhere in XSDDoc template set (including even in init.tpl itself) and are critical for working of everything.
    2. Further, the Folder section «prepare diagramming engine» is processed, within which one of the procedure subtemplates is called according to the the specified diagramming plugin (see XML Type | Line 12): The purpose of those templates is to initialize the corresponding diagramming plugin, that is passing to it the information about each XSD component, which is necessary to generate its diagram (across all XML schemas to be documented that was collected by the init.tpl template).

      The template communicates with the diagramming plugin using special FlexQuery functions and properties registered and provided by it.

      What happens next depends on the particular plugin. It may call some external diagramming engine to generate all the diagrams immediately or keep the component information so as to generate each diagram on request (see FlexDoc/XML | Features | Element Images).
  3. Further, the template's root section block is processed (which is the content of the «FramedDoc.tpl» tab):

    It does the following:
    1. overview-summary.tpl template is called to generate «Overview Summary» page for the whole documentation.
    2. all-components-summary.tpl template is called to generate «All Component Summary» page.
    3. All XML schemas (to be documented) are itereated.
      For each schema:
      1. schema-overview.tpl template generates the «Schema Overview» page.
      2. schema-source.tpl template generates the «Schema XML Source» page.
      3. schema-frame.tpl template generates «Schema» navigation page.
      4. For all global components and local element components (to be documented separately) that belong to the namespace the following templates are called (depending on the component type): to generate the corresponding «Component Documentation» files.
    4. All namespaces targeted by the XML schemas to be documented are itereated.
      For each namespace:
      1. namespace-overview.tpl template generates «Namespace Overview» navigation page.
      2. namespace-frame.tpl template generates «Namespace» navigation page.
    5. all-components-frame.tpl template is called to generate «All Components» navigation page.
    6. overview-frame.tpl template is called to generate the page shown in the «Overview Frame».
    7. xmlns-bindings.tpl template is called to generate the «XML Namespace Bindings» page.
  4. At this point, all document files have been generated. What is left is the HTML frameset file (normally named 'index.html'). That file starts the whole documentation to display particular HTML documents in three frame windows:

    The frameset file is generated according to the definition specified in the «Output File | Frameset Structure» tab of the FramedDoc.tpl properties dialog:

    The expression specified in the «Source Expression» field (on the right panel) should return the pathname (or URL) of a document to be initially loaded in the given frame.

    However, the initial content of the «Detail Frame» may be overridden dynamically by the Javascript, which is inserted in index.html according the «HTML Head Expression»:

    This particular Javascript obtains a URL parameter (specified after '?' in the initial URL) passed to index.html. If the parameter exists, the detailFrame will be reloaded according to the new URL found in the parameter. That allows you to construct URLs like this one:
    http://www.flexdoc.xyz/flexdoc-xml/xsddoc/examples/html/XMLSchema/index.html?schemas/XMLSchema_xsd/elements/element.html
    which will open the frameset documentation directly on a specified page.

SingleDoc.tpl

SingleDoc.tpl is a main template designed specifically to generate single file documentation in all supported output formats (which currently include HTML, RTF and TXT). It works similarly to FramedDoc.tpl, however all subtemplates called from it generate blocks of the same document (rather than separate HTML files).

Below on the left you can see SingleDoc.tpl open in the Template Designer (click to enlarge). The selected is the Call Template section, which calls element.tpl to generate «Element Documentation» blocks. On the right are the selected section's properties, where the output into the same document is specified.

Here are a few screenshots of sample documentation generated with SingleDoc.tpl. The leftmost one shows a single-file HTML documentation (click to view the HTML). Others are pages of RTF documentation (click to enlarge):

4. Template Parameters

Template parameters serve both as options to control the documentation generator implemented by a particular main template and internally as channels for settings and data passed to subtemplates.

XSDDoc is controlled by more than 400 external parameters. On the left screenshot below you can see the parameter definitions of FramedDoc.tpl. On the right is the Parameter Inspector built by those definitions (click to enlarge):

To make so many parameters manageable, they are organized in a tree. Also, the default values of many parameters are calculated dynamically from the values of other parameters and properties. This helps you with setting of lots related parameters. Just a few most important ones may need to be changed to achieve necessary effects.

Below you can see how doc.comp.diagram parameter is defined (which is the one selected in the left screenshot above). On the right is the FlexQuery expression that calculates the default value of this parameter:

When the same parameter is defined in a subtemplate, it receives its value from the nearest equally named parameter in the template call chain. Such propagation of parameter values happens automatically. However, it can be overridden in any particular Call Template section, so as to pass different values (as well as the values of those parameters defined locally only in the called subtemplate), as it is shown in the screenshot below:

See Also: FlexDoc/XML | XSDDoc | Parameter Tree

5. Subtemplates

The actual documentation content is generated by subtemplates, which are called both from the main templates and from each other. All subtemplates are found in {XSDDoc}/lib directory and its subdirectories.

Subtemplates are normal FlexDoc/XML templates. However, they are typically not designed to run directly from the generator as the main templates – that will cause an error or produce meaningless output.

Below is the summary of all subtemplates by directories:
Directory/Template Description
[lib] general-purpose subtemplates
about.tpl Adds «About» section at the bottom of each separate output document.
Called From:
SingleDoc.tpl, overview-summary.tpl, all-components-summary.tpl, namespace-overview.tpl, schema-overview.tpl, element.tpl, complexType.tpl, simpleType.tpl, group.tpl, attributeGroup.tpl, globalAttribute.tpl, xmlns-bindings.tpl
Related Parameter:
Show | About (footer)
init.tpl This template produces no output. Instead, it is called only once from either FramedDoc.tpl or SingleDoc.tpl main templates before any other processing starts. The template's job is to load all XML schema files to be processed/documented (including those references from them directly or indirectly) and to create all necessary element maps, which are essentially hash-maps. Element maps allow resolving very complicated queries. They are used in almost everywhere in XSDDoc template set (including even in init.tpl itself) and are critical for working of everything.
Called From:
FramedDoc.tpl, SingleDoc.tpl
overview-frame.tpl Generates an HTML document loaded in the «Overview Frame», which contains the primary navigation lists (such as the lists of namespaces and XML schemas that have been documented).
Called From:
FramedDoc.tpl
Related Parameter:
Navigation | Overview Frame
overview-summary.tpl Generates «Overview Summary» documentation page/block.
Called From:
FramedDoc.tpl, SingleDoc.tpl
Related Parameters:
Generate Details | Overview Summary
Details | Overview Summary
[lib/ann] subtemplates generating descriptions (by the content of <xs:annotation> elements)
annotation.tpl Generates full descriptions – the content of all «Annotation» sections. This includes processing of any XHTML markup specified within XML schema annotations.
Called From:
globalAttribute.tpl, contentAttributes.tpl, globalAttributeSummary.tpl, facet.tpl, simpleContentDerivation.tpl, contentElements.tpl, element.tpl, elementSummary.tpl, attributeGroup.tpl, attributeGroupSummary.tpl, group.tpl, groupSummary.tpl, namespace-overview.tpl, overview-summary.tpl, schema-overview.tpl, complexType.tpl, complexTypeSummary.tpl, simpleType.tpl, simpleTypeSummary.tpl
Related Parameters:
Processing | Annotations
Details | Schema Overview | Annotation
Details | Component Documentation | Annotation
firstSentence.tpl Generates reduced descriptions (the first sentence of the full ones) typically displayed in various summaries (XML schemas and component summaries).
Called From:
globalAttributeSummary.tpl, elementSummary.tpl, attributeGroupSummary.tpl, groupSummary.tpl, namespace-overview.tpl, overview-summary.tpl, complexTypeSummary.tpl, simpleTypeSummary.tpl
Related Parameters:
Processing | Annotations
Details | Overview Summary | Schema Summary | Annotation
Details | All Component Summary | Summary Item | Annotation
Details | Namespace Overview | Schema Summary | Annotation
Details | Namespace Overview | Component Summaries | Summary Item | Annotation
Details | Schema Overview | Component Summaries | Summary Item | Annotation
[lib/attribute] subtemplates related to documenting attribute components (those specified in XML schema with <xs:attribute> elements)
contentAttributeList.tpl Generates «Content Model Attributes» section in items of element/complexType/attributeGroup summary
Called From:
elementSummary.tpl, complexTypeSummary.tpl, attributeGroupSummary.tpl
Related Parameters:
Details | Fragments | Component Summary | Related Component Lists | Content Attributes
contentAttributes.tpl Generates «Attribute Detail» section.
Called From:
element.tpl, attributeGroup.tpl, complexType.tpl
Related Parameters:
Details | Component Documentation | Attribute Detail
globalAttribute.tpl Generates «Global Attribute Documentation» pages/blocks (i.e. «Component Documentation» for global attributes)
Called From:
FramedDoc.tpl, SingleDoc.tpl
Related Parameters:
Generate Details | Global Attributes
Details | Component Documentation
globalAttributeProfile.tpl Generates «Component Profile» section for global attributes
Called From:
globalAttribute.tpl, globalAttributeSummary.tpl
Related Parameters:
Details | Fragments | Component Summary | Component Profile
Details | Component Documentation | Component Profile
globalAttributeSummary.tpl Generates «Global Attribute Summary» sections.
Called From:
all-components-summary.tpl, namespace-overview.tpl, schema-overview.tpl
Related Parameters:
Details | All Component Summary | Global Attributes
Details | Namespace Overview | Component Summaries | Global Attributes
Details | Schema Overview | Component Summaries | Global Attributes
[lib/component] subtemplates involved in documenting of all types of components
all-components-frame.tpl Generates «All Components» navigation page loaded in the «List Frame».
Called From:
FramedDoc.tpl
Related Parameter:
Navigation | List Frame
all-components-summary.tpl Generates «All Component Summary» page/block
Called From:
FramedDoc.tpl, SingleDoc.tpl
Related Parameters:
Generate Details | All Component Summary
Details | All Component Summary
componentName.tpl Generates the full name of a component, under which it appears in various lists and references. This includes:
  • The name specified for that component in the XML schema
  • The namespace prefix representing the component's namespace and most relevant to the given documentation location
  • The hyperlink to the documentation location most detaily describing that component
  • Any extension of the component name with its own hylerlinks (see “Adding extensions to local element names” and “Documenting of redefinitions”)
Called From:
FramedDoc.tpl, globalAttribute.tpl, contentAttributes.tpl, globalAttributeSummary.tpl, all-components-frame.tpl, contentElements.tpl, element.tpl, elementProfile.tpl, elementSummary.tpl, localElementExt.tpl, attributeGroup.tpl, attributeGroupSummary.tpl, group.tpl, groupSummary.tpl, namespace-frame.tpl, schema-frame.tpl, complexTypeSummary.tpl, simpleTypeSummary.tpl, typeRelatedCompLists.tpl, typeUsage.tpl
Related Parameters:
Show | Namespace Prefixes
Show | Element Name Extensions
componentLinkTitle.tpl Generates the text specified as title (tooltip) of component hyperlink. This provides addition information about the component, which can be easily seen by moving the mouse cursor over the component name.
Called From:
globalAttributeProfile.tpl, complexContentModel.tpl, , diagram.tpl, simpleContentDerivation.tpl, simpleContentRep.tpl, xmlRep.tpl, contentAttributeList.tpl, contentElementList.tpl, contentElements.tpl, elementProfile.tpl, localElementExt.tpl, substitutionGroupInfo.tpl, typeDerivationSummary.tpl, typeDerivationTree.tpl, typeRelatedCompLists.tpl, typeUsage.tpl
Related Parameters:
Show | Link Titles (Tooltips)
contentType.tpl Generates a short description of the content represented by an element or complexType component, e.g.: simple, complex, mixed, empty
Called From:
contentElements.tpl, elementProfile.tpl, typeProfile.tpl
Related Parameters:
Details | Component Documentation | Component Profile | Type
Details | Component Documentation | Component Profile | Content
Details | Component Documentation | Content Element Detail | Profile | Type
xmlRep.tpl Generates «XML Representation Summary» sections
Called From:
globalAttribute.tpl, contentElements.tpl, element.tpl, attributeGroup.tpl, group.tpl, complexType.tpl, simpleType.tpl
Related Parameters:
Details | Component Documentation | XML Representation Summary
complexContentModel.tpl Generates «Element Content Model» sections within «XML Representation Summary»
Called From:
xmlRep.tpl
simpleContentRep.tpl Generates a short representation of simple content, like the following:

list of (xs:anyURI | ("##targetNamespace" | "##local"))

Called From:
contentAttributeList.tpl, contentAttributes.tpl, xmlRep.tpl, contentElements.tpl
Related Parameters:
Details | Component Documentation | Attribute Detail | Attribute Value | Datatype Model
Details | Component Documentation | Content Element Detail | Simple Content | Datatype Model
simpleContentDerivation.tpl Generates a section that shows how a simple content was derived, like on the following screenshot:

Called From:
globalAttribute.tpl, contentAttributes.tpl, contentElements.tpl, element.tpl, complexType.tpl, simpleType.tpl
Related Parameters:
Details | Component Documentation | Type Definition Detail | Simple Content Derivation
Details | Component Documentation | Attribute Detail | Type Detail | Simple Content Derivation
Details | Component Documentation | Content Element Detail | Type Detail | Simple Content Derivation
wildcard.tpl Generates a textual representation of an element/attribute wildcard (specified in XML schema with <xs:any> and <xs:anyAttribute> elements). That is used in
Called From:
contentAttributeList.tpl, contentAttributes.tpl, complexContentModel.tpl, diagram.tpl, xmlRep.tpl, contentElements.tpl, elementProfile.tpl, attributeGroupProfile.tpl, groupProfile.tpl, typeProfile.tpl
facet.tpl Generates «Facet Documentation» section.
Called From:
globalAttribute.tpl, contentAttributes.tpl, simpleContentDerivation.tpl, contentElements.tpl, element.tpl, complexType.tpl, simpleType.tpl
Related Parameters:
Details | Component Documentation | Simple Content Detail | Restrictions
Details | Component Documentation | Type Definition Detail | Simple Content Derivation | Facets
Details | Component Documentation | Attribute Detail | Type Detail | Simple Content Derivation | Facets
Details | Component Documentation | Content Element Detail | Type Detail | Simple Content Derivation | Facets
[lib/diagramming] subtemplates related to the generation of diagrams
diagram.tpl Generates «Component Diagram» sections
Called From:
element.tpl, complexType.tpl, group.tpl, attributeGroup.tpl
Related Parameters:
Details | Component Documentation | Diagram
See Also:
FlexDoc/XML | Features | Insertion of images | Element Images
DiagramKit.tpl DiagramKit service template
Called From:
FramedDoc.tpl, SingleDoc.tpl
Related Parameters:
DiagramKit
[lib/element] subtemplates related to documenting element components (those specified in XML schema with <xs:element> elements)
element.tpl Generates «Element Documentation» pages/blocks (i.e. «Component Documentation» for elements)
Called From:
FramedDoc.tpl, SingleDoc.tpl
Related Parameters:
Generate Details | Elements
Details | Component Documentation
elementProfile.tpl Generates «Component Profile» section for element components.
Called From:
element.tpl, elementSummary.tpl
Related Parameters:
Details | Fragments | Component Summary | Component Profile
Details | Component Documentation | Component Profile
elementBlockAttrInfo.tpl Generates «Block» section in profiles of global elements, which comes from the value of 'final' attribute specified in <xs:element> elements.
Called From:
contentElements.tpl, elementProfile.tpl
Related Parameters:
Details | Component Documentation | Component Profile | Block
Details | Component Documentation | Content Element Detail | Profile | Block
elementFinalAttrInfo.tpl Generates «Final» section in profiles of global elements, which comes from the value of 'final' attribute specified in <xs:element> elements.
Called From:
contentElements.tpl, elementProfile.tpl
Related Parameters:
Details | Component Documentation | Component Profile | Final
Details | Component Documentation | Content Element Detail | Profile | Final
substitutionGroupInfo.tpl Generates «Subst.Gr» section in profiles of global elements, which comes from 'substitutionGroup' attributes specified in <xs:element> elements.
Called From:
contentElements.tpl, elementProfile.tpl
Related Parameters:
Details | Component Documentation | Component Profile | Subst.Gr
Details | Component Documentation | Content Element Detail | Profile | Subst.Gr
See Also:
Documenting of substitution groups
contentElementList.tpl Generates sections:
  • «List of Content Elements» in «Component Documentation»
  • «Content Model Elements» in items of element/complexType/group summary
Called From:
element.tpl, complexType.tpl, group.tpl, elementSummary.tpl, complexTypeSummary.tpl groupSummary.tpl,
Related Parameters:
Details | Component Documentation | Lists Of Related Components | Content Elements
Details | Fragments | Component Summary | Related Component Lists | Content Elements
contentElements.tpl Generates «Content Element Detail» sections.
Called From:
element.tpl, group.tpl, complexType.tpl
Related Parameters:
Details | Component Documentation | Content Element Detail
elementSummary.tpl Generates «Element Summary» sections.
Called From:
all-components-summary.tpl, namespace-overview.tpl, schema-overview.tpl
Related Parameters:
Details | All Component Summary | Elements
Details | Namespace Overview | Component Summaries | Elements
Details | Schema Overview | Component Summaries | Elements
elementListNote.tpl Generates a subheading of element lists or summaries, which explains the scope of listed elements (e.g. «global + local with complex types» or «local elements unified by type»)
Called From:
all-components-frame.tpl, elementSummary.tpl, namespace-frame.tpl, schema-frame.tpl
Related Parameters:
Generate Details | Elements | Local Elements
localElementExt.tpl Generates the extensions of names of some local elements (with its own hylerlinks).
Called From:
FramedDoc.tpl, SingleDoc.tpl, globalAttribute.tpl, componentName.tpl, contentElementList.tpl, element.tpl, attributeGroup.tpl, group.tpl, typeRelatedCompLists.tpl, typeUsage.tpl
Related Parameter:
Show | Element Name Extensions
See Also:
Adding extensions to local element names
[lib/groups] subtemplates related to documenting global element/attribute group components (those specified in XML schema with <xs:group>/<xs:attributeGroup> elements)
group.tpl Generates «Element Group Documentation» pages/blocks (i.e. «Component Documentation» for element groups)
Called From:
FramedDoc.tpl, SingleDoc.tpl
Related Parameters:
Generate Details | Element Groups
Details | Component Documentation
groupProfile.tpl Generates «Component Profile» section for element groups
Called From:
group.tpl, groupSummary.tpl
Related Parameters:
Details | Fragments | Component Summary | Component Profile
Details | Component Documentation | Component Profile
groupSummary.tpl Generates «Element Group Summary» sections.
Called From:
all-components-summary.tpl, namespace-overview.tpl, schema-overview.tpl
Related Parameters:
Details | All Component Summary | Element Groups
Details | Namespace Overview | Component Summaries | Element Groups
Details | Schema Overview | Component Summaries | Element Groups
attributeGroup.tpl Generates «Attribute Group Documentation» pages/blocks (i.e. «Component Documentation» for attribute groups)
Called From:
FramedDoc.tpl, SingleDoc.tpl
Related Parameters:
Generate Details | Attribute Groups
Details | Component Documentation
attributeGroupProfile.tpl Generates «Component Profile» section for attribute groups
Called From:
attributeGroup.tpl, attributeGroupSummary.tpl
Related Parameters:
Details | Fragments | Component Summary | Component Profile
Details | Component Documentation | Component Profile
attributeGroupSummary.tpl Generates «Attribute Group Summary» sections.
Called From:
all-components-summary.tpl, namespace-overview.tpl, schema-overview.tpl
Related Parameters:
Details | All Component Summary | Attribute Groups
Details | Namespace Overview | Component Summaries | Attribute Groups
Details | Schema Overview | Component Summaries | Attribute Groups
[lib/images] contains icons used in XML schema documentation
[lib/namespace] subtemplates related to documenting namespaces
namespace-frame.tpl Generates «Namespace» navigation page loaded in the «List Frame».
Called From:
FramedDoc.tpl
Related Parameter:
Navigation | List Frame
namespace-overview.tpl Generates «Namespace Overview» pages/blocks
Called From:
FramedDoc.tpl, SingleDoc.tpl
Related Parameters:
Generate Details | Namespace Overviews
Details | Namespace Overview
namespaceProfile.tpl Generates «Namespace Profile» sections
Called From:
namespace-overview.tpl, overview-summary.tpl
Related Parameters:
Details | Namespace Overview | Namespace Profile
Details | Overview Summary | Namespace Summary
[lib/schema] subtemplates related to documenting particular XML schema files (as a whole)
schema-frame.tpl Generates «Schema» navigation pages loaded in the «List Frame».
Called From:
FramedDoc.tpl
Related Parameter:
Navigation | List Frame
schema-overview.tpl Generates «Schema Overview» pages/blocks
Called From:
FramedDoc.tpl, SingleDoc.tpl
Related Parameters:
Generate Details | Schema Overviews
Details | Schema Overview
schema-source.tpl Generates «Schema XML Source» pages/sections
Called From:
FramedDoc.tpl, schema-overview.tpl
Related Parameters:
Details | Schema Overview | XML Source
schemaName.tpl Generates XML schema name, under which that schema appears in various lists and references. This includes also the hyperlink to «Schema Overview».
Called From:
globalAttributeProfile.tpl, elementProfile.tpl, attributeGroupProfile.tpl, groupProfile.tpl, namespace-frame.tpl, namespace-overview.tpl, namespaceProfile.tpl, schema-frame.tpl, schemaProfile.tpl, typeProfile.tpl
schemaLinkTitle.tpl Generates the text specified as title (tooltip) of XML schema hyperlink. This provides addition information about the schema, which can be easily seen by moving the mouse cursor over the schema link.
Called From:
overview-frame.tpl, overview-summary.tpl, schemaName.tpl
Related Parameters:
Show | Link Titles (Tooltips)
schemaProfile.tpl Generates «Schema Profile» sections
Called From:
namespace-overview.tpl, overview-summary.tpl, schema-overview.tpl
Related Parameters:
Details | Fragments | Schema Summary | Schema Profile
Details | Schema Overview | Schema Profile
Details | Overview Summary | Schema Summary | Schema Profile
Details | Namespace Overview | Schema Summary | Schema Profile
[lib/type] subtemplates related to documenting global (named) simple/complex types (those specified in XML schema with <xs:simpleType>/<xs:complexType> elements)
complexType.tpl Generates «Complex Type Documentation» pages/blocks (i.e. «Component Documentation» for complex types)
Called From:
FramedDoc.tpl, SingleDoc.tpl
Related Parameters:
Generate Details | Complex Types
Details | Component Documentation
simpleType.tpl Generates «Simple Type Documentation» pages/blocks (i.e. «Component Documentation» for simple types)
Called From:
FramedDoc.tpl, SingleDoc.tpl
Related Parameters:
Generate Details | Simple Types
Details | Component Documentation
typeProfile.tpl Generates «Component Profile» section for simple/complex types
Called From:
complexType.tpl, complexTypeSummary.tpl, simpleType.tpl, simpleTypeSummary.tpl,
Related Parameters:
Details | Fragments | Component Summary | Component Profile
Details | Component Documentation | Component Profile
typeBlockAttrInfo.tpl Generates «Block» section in profiles of complex types, which comes from the value of 'block' attribute specified in <xs:complexType> elements.
Called From:
typeProfile.tpl
Related Parameters:
Details | Component Documentation | Component Profile | Block
typeFinalAttrInfo.tpl Generates «Final» section in profiles of simple/complex types, which comes from the value of 'final' attribute specified in <xs:simpleType> and <xs:complexType> elements.
Called From:
typeProfile.tpl
Related Parameters:
Details | Component Documentation | Component Profile | Final
typeRelatedCompLists.tpl Generates the following sections:
  • «List of Direct Subtypes»
  • «List of Indirect Subtypes»
  • «List of All Based Elements»
  • «List of All Based Attributes»
Called From:
complexType.tpl, simpleType.tpl
Related Parameters:
Details | Component Documentation | Lists Of Related Components
typeUsage.tpl Generates «Known Usage Locations» section.
Called From:
complexType.tpl, simpleType.tpl
Related Parameters:
Details | Component Documentation | Usage / Definition Locations
typeDerivationTree.tpl Generates «Type Derivation Tree» section.

Type Derivation Tree graphically depicts how a given type was derived from all its know supertypes, which appear in the form of tree (that shows also the method by which each intermediate type was produced from its parent type):

In case of derivation by union, the full supertype tree is too complicated, so it is reduced to a formula that shows only the ancestor types used directly in the declaration of the given type:

Called From:
globalAttribute.tpl, contentAttributes.tpl, contentElements.tpl, element.tpl, complexType.tpl, simpleType.tpl
Related Parameters:
Details | Component Documentation | Type Definition Detail | Type Derivation Tree
Details | Component Documentation | Attribute Detail | Type Detail | Type Derivation Tree
Details | Component Documentation | Content Element Detail | Type Detail | Type Derivation Tree
typeDerivationSummary.tpl Generates a summary of type derivation, which is added to the information about an anonymous type displayed in «Type» section of «Component Profile», like on this screenshot:

Called From:
globalAttributeProfile.tpl, contentAttributes.tpl, contentElements.tpl, elementProfile.tpl
Related Parameters:
Details | Component Documentation | Component Profile | Type
Details | Component Documentation | Attribute Detail | Profile | Type
Details | Component Documentation | Content Element Detail | Profile | Type
complexTypeSummary.tpl Generates «Complex Type Summary» sections.
Called From:
all-components-summary.tpl, namespace-overview.tpl, schema-overview.tpl
Related Parameters:
Details | All Component Summary | Complex Types
Details | Namespace Overview | Component Summaries | Complex Types
Details | Schema Overview | Component Summaries | Complex Types
simpleTypeSummary.tpl Generates «Simple Type Summary» sections.
Called From:
all-components-summary.tpl, namespace-overview.tpl, schema-overview.tpl
Related Parameters:
Details | All Component Summary | Simple Types
Details | Namespace Overview | Component Summaries | Simple Types
Details | Schema Overview | Component Summaries | Simple Types
[lib/xml] subtemplates related to documenting/reproducing XML source of XML schemas
nodeSource.tpl Reproduces XML source of a given XML document node (that is a fragment of the document's full XML source corresponding to the document's W3C DOM tree branch attached to the given node), including hyperlinks from certain attribute values to the corresponding documentation details. For example:

Called From:
globalAttribute.tpl, contentAttributes.tpl, contentElements.tpl, element.tpl, attributeGroup.tpl, group.tpl, complexType.tpl, simpleType.tpl,
Related Parameters:
Details | Component Documentation | XML Source
Details | Component Documentation | Attribute Detail | XML Source
Details | Component Documentation | Content Element Detail | XML Source
sourceNote.tpl Generates some extra information about the reproduced XML source, which is displayed at the «XML Source» section heading, such as whether (and how many annotations) were removed from it and the link to the location of this fragment within the full document source, like the following:

(w/o annotations (3); see within schema source)

Called From:
globalAttribute.tpl, contentAttributes.tpl, contentElements.tpl, element.tpl, attributeGroup.tpl, group.tpl, schema-source.tpl, complexType.tpl, simpleType.tpl
documentSource.tpl Reproduces XML source of the whole XML document.
Called From:
schema-source.tpl
Related Parameters:
Details | Schema Overview | XML Source
xmlns-bindings.tpl Generates «XML Namespace Bindings» page/block
Called From:
FramedDoc.tpl, SingleDoc.tpl
Related Parameters:
Generate Details | XML Namespace Bindings