Design Approaches

Stylus Studio supports bottom-up and top-down approaches to designing XML pipelines. The approach you take depends largely on personal preference, but it can also be influenced by factors such as whether, for example, your XML pipeline will use existing transformations (like XQuery or XSLT) or you will build them specifically for use in the XML pipeline.

The following section is intended to give you some ideas for XML pipeline design.

Understand the Requirements

Regardless of which approach you choose, you should understand the goal of the XML pipeline before you start building it. For example, you should know

  • What the desired output is. Is it HTML? XSL-FO? Both? Or will the XML pipeline return data to a format other than XML?
  • If the XML pipeline is intended to stand alone, or whether it will be included in other XML pipelines.

For the purposes of describing bottom-up and top-down design approaches in this section, imagine that the requirement for our XML pipeline is to reder data in a text file as PDF.

Bottom-Up Design

In a bottom-up design approach, you already have the individual components, or most of them, that you will link together to form your XML pipeline. If we were using a bottom-up design approach to create an XML pipeline for the use case described in Understand the Requirements, we would:

  • Have a source .txt file (a comma-separated values file) identified.
  • Use a built-in Stylus Studio converter to convert this file to XML.
  • Have an XQuery file that transforms this XML to XSL-FO and performs FO post-processing to create PDF.

Using a bottom-up design approach, we would then use these source files to build our XML pipeline using the following steps:

1. Create a new XML pipeline document.
2. Create a ConvertToXML node to handle the conversion of CSV to XML. We would specify the source .txt file as the ConvertToXML node's input, and choose the Comma-Separated Values built-in converter to convert the text to XML.
3. Drag our XQuery document from the File Explorer or Project window and drop it on the XML pipeline canvas. This would automatically create and specify the XML pipeline's XQuery node for our XML pipeline. Also, because the XQuery was defined to perform XSL-FO post-processing, Stylus Studio automatically would create an XSL-FO node in the XML pipeline.
4. Connect the output port from the ConvertToXML node to the input port of the XQuery node. This instructs the XML pipeline to use the converted text file (now XML) as input for the XQuery transformation.
5. Specify a URL for the XSL-FO node's output port.

When you use a bottom-up approach, Stylus Studio leverages as much of the existing information in the documents you use to build the XML pipeline as possible. Depending on your design environment, you might need to alter the paths specified for input and output nodes, source documents, and so on, and you will typically have to link the nodes in your XML pipeline by creating pipes between appropriate output and input nodes.

Top-Down Design

When you use a top-down design approach, you do not have any pre-existing components - XSLT or XQuery documents, for example - or they might not be completely specified. In this situation, you use the XML Pipeline Editor to sketch a design, and then fill in the details once you have them. Returning to the use case described in Understand the Requirements, we would sketch our XML pipeline by:

1. Creating a new XML pipeline document.
2. Dragging a ConvertToXML icon from the Toolbox pane and dropping it on the canvas.
3. Dragging an XQuery icon from the Toolbox pane and dropping it on the canvas.
4. Dragging an XSL-FO icon from the Toolbox pane and dropping it on the canvas.
5. Connecting the ConvertToXML's output port to the input port of the XQuery node.
6. Connecting the XQuery node's output port to the input port of the XSL-FO node.

The top-down approach results in a rough outline of placeholder nodes of the desired XML pipeline - an abstract or conceptual representation of the code we want to generate to perform XML processing. The next steps would be to:

1. Identify the source document for the ConvertToXML node, and selecting the built-in Stylus Studio converter to be used to convert that source file's data to XML.
2. Creating an XQuery document that
    • Transforms the XML input from the ConvertToXML node to PostScript
    • Generates the XSL-FO grammar to convert the PostScript to PDF

Once these documents are created, they can be used to define nodes that represent them in the XML pipeline. You can do this

  • Manually, by specifying node properties in the Properties window
  • Automatically, by dragging and dropping documents onto the placeholder nodes that represent them
Free Stylus Studio XML Training: