Book a Demo
Prev Next

How to Define a Custom XML Script Fragment

Within a template fragment, you can create a query to report values from an XML file produced by a previously-generated script; for example, the data from a simulation. The query operates on static data that is not updated during generation of the document.

An Example Query

This is an example of the query format:



The first line is the location of the XML file to process, and the second line is the query to perform on that file, assuming that the file content is:




                 <Row Name="NameValue" Second="Value2"></Row>

                 <Row Name="NameValue2"></Row>




You can then add fields within the 'Custom' section of your Template Fragment, to refer to the data returned by the query. For example, you might edit:

     custom >


     < custom

to give:

     custom >

     Name - Second

     < custom

Creating a Custom XML Script Fragment



See also


Using the Scripting window, create a Model Script that returns an XML file.



Open or create a Template Fragment in the Document Template Editor.

Right-click on the Template background and click on the icon.

The 'Document Options' dialog displays.

Document Templates Creating a Template Fragment


Select the 'Custom Query' tab and, in the 'Template Fragment type' panel, select the 'Custom XML' option.


In the main text field on the tab, type the entry point of your Script that returns the XML data.  For example:



Click on the OK button to close the 'Document Options' dialog.


In the Document Template Editor, in the 'Sections' panel, select the 'Custom' checkbox to generate the Custom section.

Setting Sections for Reporting


Within the 'Custom' section, right-click and select the 'Insert Custom Field' option.

A prompt displays for the name of the field to create.


In response to the prompt, type the name of the data field that is being returned by your script.

Click on the OK button.


Repeat steps 7 and 8 for each data field that you want to include in your report.

Add any other formatting and content you need, to the Template Fragment.


Save the Template Fragment, and add it to a normal Document Template.

Adding Fragments to a Document Template


  • The calling statement (not the script that is called) can reference the ID of the element or Package currently being processed by the document template, using the #OBJECTID# or #PACKAGEID# macros; for example, MyRtfData(#OBJECTID#):
         -  #Branch# gets the IDs of the child Packages of the current Package being processed,
            working recursively down to the lowest level of sub-Package; this is only valid when
            processing a Package - elements return a 0 value
         -  #Package# gets the package_ID of the currently-selected Package

Learn more