Avatar of indir
indir
 asked on

Need to create an exe that accepts an argument and creates an xml file

Hi I would like to create an exe from Powerbuilder that accepts an argument and based on that argument does some data manipulation and creates an xml file.  Any help is appreciated. Sample code would be very helpful.
Thanks,Indir.
Editors IDEsWeb Languages and Standards

Avatar of undefined
Last Comment
michaelstoffel

8/22/2022 - Mon
gajender_99

Klaus Kirchner
Sybase Inc.
September 2001

Applies to:

     Microsoft Internet Explorer 5.0 (and later)
     Microsoft XML Parser 3.0
     Sybase PowerBuilder 7.0 or 8.0

Summary: This article explains how PowerBuilder (prior to PB 9) can utilize XML technology. XSLT is used to transform XML data from one format to another. In the examples an XSLT style sheet is used to transform Datawindow data saved as a XML file into HTML.The code also demonstrates how to use XSLT to display data in two distinct formats by using PowerScript.

Note  : More XML support (DataWindow XML support, PBDOM, XML import and save etc.) can be found in the PB 9 and higher release ! PB 10 has additionally XML Web Datawindow and XHTML support.
 

Contents

1.Introduction
2. Microsoft XML/XSL Processors
3. Overview of the Transformation Process
4. Steps To Transform DataWindow Data into XML
5. Using Multiple Style Sheets with PowerScript
6. PowerScript Code used for Transformation
7. Results
8. Conclusion

Appendix
- Error Handling and XSLT
- Additional Resources
- Glossary

1. Introduction

One of the advantages of using the Extensible Markup Language (XML) in exchanging data between different applications is the ease in which XML data can be tranformed into other formats and structures.. As an example, you may need to convert the employee information that is currently stored in a flat XML file, into a Hypertext Markup Language (HTML) file for use on your company's HR Web site. The "mechanism" used to accomplish these conversions is an XML-based language called XSL Transformations (XSLT).

You should have a basic understanding of XML and the terms used to describe XML-related files when reading this article.

2. Microsoft XML/XSL Processors

In the PowerBuilders Developers Journal (Issue 8/2001) there has been an article that describes the Microsoft XML Processor. Furthermore the following information from Microsoft has been included for completeness:

"There are several XSLT processors available, including the Microsoft MSXML 3.0 processor which can be downloaded from the Microsoft Online XML Developer Center. The MSXML 3.0 processor can also be installed with Microsoft Office XP and Microsoft Windows® XP.

The MSXML 3.0 parser supports both the XML DOM and the Simple API for XML (SAX2). The XML DOM is a tree-based application programming interface (API) that presents a standardized interpretation of an XML document to applications and scripts. The XML DOM implementation in MSXML allows you to load or create a document; gather errors, if any; access and manipulate the information and structures contained within the document; and save the document back out to an XML file, if necessary. Where the XML DOM defines the logical structure of an XML document in memory, the SAX2 provides an event-based API, which allows developers to hook directly into the document parsing process using event interfaces that serve up the document's information items as they are parsed. In other words, the XML DOM interfaces are made available to the application after the document has been parsed and loaded. The SAX2 interfaces are available to the application as the document is being parsed.

The XSLT processor is a Component Object Model (COM) object, so it can be invoked by any language that can create a COM object, including Microsoft Visual Basic® Scripting Edition (VBScript), Microsoft JScript®, Microsoft Visual Basic, Microsoft Visual Basic for Applications, or Microsoft Visual C++®.

Note The Microsoft XML parser/processor, MSXML, was originally released as a stand-alone product and was later included with Internet Explorer 5.0. Unfortunately, the XSLT standard changed substantially after Internet Explorer 5.0 was released, so the MSXML processor is archaic. You should switch to the latest version of MSXML (which was MSXML 3.0 as of this writing). For more information on switching to the current version of MSXML, see the article How to Redistribute the Microsoft XML Parser on the Microsoft Knowledge Base Web site.
To run the following examples, you will need to have the MSXML 3.0 processor installed on your system. " 
 

3 Overview of the Transformation Process

To understand how XSLT works, we need to look at how XML-enabled browsers such as Microsoft Internet Explorer 5.0 or later handle XML data. When you open an XML data file in an XML-enabled Web browser, the browser uses a built-in parser, such as the Microsoft XML Parser (MSXML), to parse the elements of the XML document into a tree-like structure.

<?xml version="1.0"?>
<presentation code="ID111">
        <!-- Example XML file -->
        <title>A PB 8 XML example</title>
        <author>Klaus Kirchner</author>
        <audience>PB developers</audience>
        <time>12:30</time>
        <date>27.08.2001</date>
</presentation>

    ...

This document fragment would be parsed into a tree structure: Representation PB treeview

 

Figure 1. Example of data parsed into tree structure

Notice that it isn't the data but the elements containing the data that are being manipulated by the parser. It's also worth noting that the parsing and transformation are being done in memory and not in the input file. Thus the physical input file remains untouched by the transformation, enabling you to use the same input data for any number of transformations.

After the input data has been parsed by the Browser, stored in memory, and then restructured, the browser looks for a reference to an XSLT file. If the input file contains either a reference to an XSLT document or a scripting command to load an XSLT document, the browser parses the XSLT file into memory, also as a tree structure. The browser then uses a built-in processor to apply the XSLT tree structure to the XML data tree structure to perform the transformation. So in addition to its functions as a browser and an XML parser, an XML-enabled browser such as Internet Explorer also contains an XSL processor.

If no XSL/XSLT (or other style sheet) reference exists in the input XML data file, the data is displayed as raw XML or in another default structure, depending on the browser used. As you'll see, Internet Explorer 5.0 and later have a default XSL style sheet that displays XML files as an expandable tree-like structure when no XSL/XSLT file is specified.

During the transformation, the XSL processor cycles through the XSLT tree, attempting to match patterns within the XSLT commands to specific elements (also called nodes) in the XML input tree. When a pattern match is found, the browser then searches the XSLT tree for matching template rules, which it applies to the XML element or to descendants or children of the element. The result is an output tree that contains a series of elements, data, and any HTML tags or instructions necessary to format the data. An XSLT style sheet provides a template or "blueprint" of the output structure that will result from transforming the data. The content and presentation of this output is based on the input data and the style sheet (if one is used), which provides a series of commands to manipulate the structure of the elements and HTML tags to format the data.

To complete the process, the browser parses the output tree—again using the XML parser—and displays it either as an HTML document or as whatever format was specified during the transformation. Thus, at its lowest level, XSLT is used to convert one tree structure into another tree structure. The XSLT processor does this by storing and manipulating three different tree structures: the input XML and data, the XSLT style sheet, and the output XML and data.

For Information about the parsing process with Microsoft XML parser/processor and a description about the PowerBuilder function wf_parse_node() that enables the display of the parsed XML file in a treeview please see the article "Interfacing PowerBuilder with the WEB" in the PowerBuilders Developers Journal (Issue 8/20001). In the example application presented here, the parsing process is executed when pressing the Load File.. button in the XML Parser Sheet (via File..New..XML Parser). To examining the code, look into the script in the buttons clicked event.
 

4. Steps to Transform DataWindow Data into XML

The steps necessary to transform an existing DataWindow into another format by using XSLT can be described as follows:

- Export the data from a DataWindow into an XML document by using the save_as_xml function available in the window Employee DataWindow (via File..New..Employee DataWindow).
- Create an XSLT file (with an .xsl file extension) by using a text editor. In this file, add processing instructions to convert and restructure the data as desired. You will need a processing instruction for each element or group of elements you want in the output.
Note  : More XML support (DataWindow XML support, PBDOM, XML import and save etc.) can be found in the PB 9 release !

First, we will create the Employees.xml file and then look at a default style sheet in action, by using Internet Explorer to display our results with no explicit style sheet specified.

Open the Employee DataWindow Sheet and you will see a tabular DataWindow retrieving 4 columns from the employee table of the EAS Demo DB V4. When you press the button
Save As XML..you can enter a Filename eg. Employees.xml and press save. Now the Tabular DataWindow Data will be saved as a XML structure.
The function that is used extracts some basic information eg. the column names from the datawindow object and writes out the data together with the xml tag formatting to the file.
In the example several node names are hardcoded, but depending on the preferences this part could be enhanced by the programmer.

Locate the Employees.xml file and double-click to open.
Assuming your default browser is Internet Explorer 5.0 (or later), the file will be displayed as a tree structure with expandable branches of elements. This tree structure is created from the default XSLT style sheet used by Internet Explorer to transform the data.
The following code shows the default XML output from Internet Explorer.
 
        ......
 
 
 

5. Using Multiple Style Sheets with PowerScript

Let's look at how to use multiple XSLT style sheets to format the same XML data in two different styles by using PowerScript.

The sample we will look at (included in the download available with this article) uses the data from the Employees.xml file. We also want to provide the information in two formats: a simple list format as we are used to see in a tabular DataWindow presentation and a catalog format for a better look & feel.
 

Employees.xml file
This file contains selected information on the employees from the Employees table from the sample database.
pb_list_style.xsl file
This file contains the XSLT style sheet that is used to display the Employees.xml file in a format that lists the relevant information. We will describe this file in a little more detail later.
pb_catalog_style.xsl file
This file contains the XSLT style sheet that is used to display the Employees.xml file in a format similar to a catalog. We will also discuss this file in more detail.
Result.html , result_cat.html files
This files are the result of the transformation.
Looking at this example in a little more detail, the Employees.xml data file contains information on employees. As with any XML file, it starts with an XML processing instruction indicating that this is an XML file and the version number (sometimes additionally specifies an encoding format like: encoding="utf-8"). The file contains an <employees> document element, which contains a series of <employee> elements. There is one set of <employee> elements for each employee. These elements, in turn, contain a series of child elements that encapsulate the employee information we are interested in providing to the client.

The following is a fragment of the Employee_data.xml data file.

<?xml version="1.0"?>
<employees>
<employee>
<emp_id>102</emp_id>
<emp_fname>Fran</emp_fname>
<emp_lname>Whitney</emp_lname>
<start_date>2/26/87</start_date>
</employee>
<employee>
<emp_id>105</emp_id>
<emp_fname>Matthew</emp_fname>
<emp_lname>Cobb</emp_lname>
<start_date>7/2/87</start_date>
</employee>
<employee>
<emp_id>129</emp_id>
<emp_fname>Philip</emp_fname>
<emp_lname>Chin</emp_lname>
<start_date>8/4/98</start_date>
</employee>

 ...

Next, the pb_list_style.xsl file is an XSLT style sheet file that contains the template rules, instructions, and HTML tags necessary to display our XML data as a simple list of employee characteristics.

The following code shows the pb_list_style.xsl XSLT style sheet file.

<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                 version="1.0">

<!-- This XSLT style sheet is used to transform the Employees.xml
file to a simple list (tabular) like format.  -->

<xsl:output method="html"/>
<xsl:template match="/">
 <html>
   <head>
     <title>The XSLT list style sheet</title>
   </head>
   <body>
     <table border="0" cellpadding="10">
      <tr>
       <th align="left">Employee ID</th>
       <th align="left">First Name</th>
       <th align="left">Last Name</th>
       <th align="left">Hire Date</th>
      </tr>
      <xsl:apply-templates select="/employees/employee">
       <xsl:sort select="emp_lname"/>
      </xsl:apply-templates>
    </table><p />
   </body>
 </html>
</xsl:template>

<!-- Outputs the child elements of the employees element. -->
<xsl:template match="employee">
   <tr>
    <td><xsl:value-of select="emp_id"/></td>
    <td><xsl:value-of select="emp_fname"/></td>
    <td><xsl:value-of select="emp_lname"/></td>
    <td><xsl:value-of select="start_date"/></td>
   </tr>
</xsl:template>
</xsl:stylesheet>
 

Both of the XSLT style sheets used in this sample use an HTML table to contain the employee information. However, by using different template rules, instructions, and HTML formatting tags, we can achieve very different display of data.

Continuing with our discussion, we see the first template instruction, which matches the root node of the document and is used to ensure that we process all of the elements in the document.

<xsl:template match="/">

Remember that the root node is synonymous with the document node in the XML DOM and represents the entire source document. It should not be confused with the document node, the <Employees> node in our example, which contains all of the remaining nodes in our document. Next in our sample there are a number of HTML tags to create a table with heading items.

Then the <xsl:apply-template> element directs the XSLT processor to find a template matching the value of the XPath expression "employees/employee" and if found, process each of its descendants, again looking for a matching template.

<xsl:apply-templates select="/employees/employee">
    <xsl:sort select="emp_lname"/>
</xsl:apply-templates>

The position of this instruction in the page we are constructing is where the employee information will be written. Further down in our file, we see a template match for the <employee> element.

<xsl:template match="employee">
   <tr>
    <td><xsl:value-of select="emp_id"/></td>
    <td><xsl:value-of select="emp_fname"/></td>
    <td><xsl:value-of select="emp_lname"/></td>
    <td><xsl:value-of select="start_date"/></td>
   </tr>

This template contains a repetitive list of instructions to handle the children of the <employee> element. The first instruction, <td><xsl:value-of select="emp_id"/></td>, tells the processor to write the contents of the <emp_id> element into our table. This instruction is then repeated for each of the remaining children of the <employee> element.

Next we will look at the XSLT style sheet file, pb_catalog_style.xsl. This file contains the template rules, instructions, and HTML tags to display our XML data in a catalog style. The following code shows pb_catalog_style.xsl file.

<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                 version="1.0">

<!-- This XSLT style sheet is used to transform the employees.xml
file to a nicer format. -->

<xsl:output method="html"/>
<xsl:template match="/">
 <html>
   <head>
     <title>The XSLT catalog style sheet</title>
   </head>
   <body>
      <xsl:apply-templates select="/employees/employee">
       <xsl:sort select="emp_lname"/>
      </xsl:apply-templates>

   </body>
 </html>
</xsl:template>

<xsl:template match="employee">
 <table border="0" cellpadding="10" bgcolor="lightyellow">
   <tr>
    <td>
      <img src="{emp_id}.jpg" alt="{emp_fname}"/>
    </td>
    <td>
     <div>
      <b>Employee ID: </b><xsl:value-of select="emp_id"/>
     </div><p/>

     <div>
      <b>First Name: </b><xsl:value-of select="emp_fname"/>
     </div><p/>
     <div>
      <b>Last Name: </b><xsl:value-of select="emp_lname" />
      <br><b>Hiring Date: </b><xsl:value-of select="start_date"/></br>
     </div><p/>
     <div><font color="BLUE"><b>Company</b>
          <img src="sybase.gif" alt="Sybase"/></font></div>
    </td>
   </tr>
 </table>
</xsl:template>
</xsl:stylesheet>

The primary XSLT element of interest in this file is the <xsl:apply-template> element which, like its predecessor in the previous file, directs the XSLT processor to find a template matching the value of the XPath expression "employees/employee", the <xsl:template match="employee"> element in this example, and process each of its descendants. Looking further down the file, the template that matches this instruction contains a series of HTML tags that create table rows with special background coloring and other formatting attributes. Another row of data will contain a .gif file representing a picture of each employee (Only two gif files are included in the sample).The remaining template instructions instruct the processor to output the value of each specific element into our table and then we see a group of closing XSLT and HTML tags.

6. PowerScript Code used for Transformation
 

// Declare an OLE object as a reference to the parser
oleobject  lole_xml_document , lole_xsl_document
string ls_result
 
// Identify the file to parse (if hardcoded)
string ls_filename = "D:\testcases\pb8\PB_xml\employees.XML"
string ls_xslfilename = "D:\testcases\pb8\PB_xml\pb_list_style.xsl"
 

// Create the OLE Object
lole_xml_document = CREATE oleobject
lole_xsl_document = CREATE oleobject
//lole_result = CREATE oleobject
// Connect to the parser
// NOTE : This example uses the parser from IE5.
// Use the class name "MSXML2.DOMDocument.3.0"
// Older version: Microsoft.XMLDOM
// for the latest version.

Integer li_rc

li_rc = lole_xml_document.ConnectToNewObject("MSXML2.DOMDocument.3.0")

IF li_rc < 0 THEN

   MessageBox("Connecting to COM Object Failed", "Error: " + String(li_rc))

   DESTROY lole_xml_document

 Return

END IF
 

  Integer li_rc1

li_rc = lole_xsl_document.ConnectToNewObject("MSXML2.DOMDocument.3.0")

IF li_rc1 < 0 THEN

   MessageBox("Connecting to COM Object Failed", "Error: " + String(li_rc))

   DESTROY lole_xsl_document

 Return

END IF
 
 

// Load the file into memory (this will parse it)
boolean lb_test
lb_test=lole_xml_document.load(ls_filename)
  IF lb_test = false THEN
    //Demonstrate the parseError attribute
    MessageBox("Load of XML doc Failed", "ErrorCode: "+string(lole_xml_document.parseError.ErrorCode)+ "~n~r" & 
  + "FilePosition: " +string(lole_xml_document.parseError.Filepos)+ "~n~r" & 
  + "Line: " +string(lole_xml_document.parseError.Line)+ "~n~r" & 
  + "LinePosition: " +string(lole_xml_document.parseError.Linepos)+ "~n~r" & 
  + "Reason: " +string(lole_xml_document.parseError.Reason)+ "~n~r" & 
  + "SourceText: " +string(lole_xml_document.parseError.SrcText))

   DESTROY lole_xml_document

   Return

END IF

// Load the file into memory (this will parse it)
boolean lb_test1
lb_test1=lole_xsl_document.load(ls_xslfilename)
  IF lb_test1 = false THEN
    //KK-Demonstrate the parseError attribute
    MessageBox("Load of XML doc Failed", "ErrorCode: "+string(lole_xsl_document.parseError.ErrorCode)+ "~n~r" & 
  + "FilePosition: " +string(lole_xsl_document.parseError.Filepos)+ "~n~r" & 
  + "Line: " +string(lole_xsl_document.parseError.Line)+ "~n~r" & 
  + "LinePosition: " +string(lole_xsl_document.parseError.Linepos)+ "~n~r" & 
  + "Reason: " +string(lole_xsl_document.parseError.Reason)+ "~n~r" & 
  + "SourceText: " +string(lole_xml_document.parseError.SrcText))
   DESTROY lole_xsl_document

   Return

END IF
 

ls_result=lole_xml_document.transformNode(lole_xsl_document)
is_html_result=ls_result

mle_1.text=ls_result
// Disconnect from the XML parser
lole_xml_document.DisConnectObject()

lole_xsl_document.DisConnectObject()
 

// Destroy the OLE object
DESTROY lole_xml_document
DESTROY lole_xsl_document

Explanation:
We first declare and create an instance of the XML DOM Document object for both the XML data and the XSLT style sheet so we can get at the properties and methods for these objects.

oleobject  lole_xml_document , lole_xsl_document

// Create the OLE Object
lole_xml_document = CREATE oleobject
lole_xsl_document = CREATE oleobject

li_rc = lole_xml_document.ConnectToNewObject("MSXML2.DOMDocument.3.0")
li_rc = lole_xsl_document.ConnectToNewObject("MSXML2.DOMDocument.3.0")
 

Then we load the XML file and XSLT style sheet into the variables. Please make sure that the filenames are matching the location where the example files are stored on the harddisc.

lb_test=lole_xml_document.load(ls_filename)
lb_test1=lole_xsl_document.load(ls_xslfilename)

XML-based files are said to be "well-formed" if they conform to specific rules for XML documents such as each opening tag has a closing tag, there must be a single outermost element that encloses the others, tags must be nested inside of each other and not overlap, and so forth. XML documents can also conform to a stricter level of "correctness" if they are "valid". Valid XML documents are well-formed documents that meet two additional criteria: they must refer to a document type definition (DTD) document (such as an XSL file) and the structure of the XML data
must conform to the DTD document. Remember that XSLT is a subset of XSL (so it also counts) that describes the structure of the XML data. If you are transforming unstructured (non-XML) data, you would want to set lole_xml_document.ValidateOnParse=False.

After loading the XML data and XSLT style sheet into memory, we call the transformNode method.

ls_result=lole_xml_document.transformNode(lole_xsl_document)

This method performs the actual transformation by running the XSLT style sheet against the XML data and returning HTML data. The result of this call is stored in the string variable ls_result.

7. Results

After the button "pb_list_style" is pressed the HTML result is displayed in the multiline edit control and can be saved as an html file using the Save HTML.. button. When the HTML file has been
saved we can open it using a Browser, or using the Browser Sheet in the Example Application (via File..New..Browser).
Also the input file is parsed and displayed in the treeview in order to examine the structure of the loaded XML file.

Result : List Style - result.html
 
    .....
 
 

When the other commandbutton is pressed (pb_catalog_style) the resulting HTML file shows table rows with special background coloring and other formatting attributes. Another row of data will contain a .gif file representing a picture of each employee, as described in the stylesheet.

Result : Catalog Style - result_cat.html

 

....
 

8. Conclusion

We have seen how PowerBuilder and  XML can be used together. We first looked at parsing a XML document using PowerBuilder, then used PowerBuilder to save DataWindow data into a XML file and finally applied XSLT to transform the generated input XML file into two different HTML output files.
 

APPENDIX

Error Handling and XSLT
 

If nothing is returned (no html) it is best to check the parseError object to see if there was a parsing error when loading either the XML file or style sheet. The Document object of the XML DOM exposes a parseError object, which can be examined to tell if an error occurred. If an error did occur, you can retrieve the cause or display an error message in the page.

The parseError object provides seven properties that can be checked to reveal more information about the error. The following table describes the properties of the parseError object.
 
  Property  Description
errorCode Error number of the error that occurred.
filepos Character position within the file where the error occurred.
line  Line number where the error occurred.
linepos Character position within the line where the error occurred.
reason Text description of the error.
srcText The source (text) of the line where the error occurred.
url URL or path of the file that was loaded.


For example, you could use the following fragment of PowerScript in your code to detect and display error details eg. while loading the XML document:

IF lb_test1 = false THEN
    //KK-Demonstrate the parseError attribute
    MessageBox("Load of XML doc Failed", "ErrorCode: "+string(lole_xsl_document.parseError.ErrorCode)+ "~n~r" & 
  + "FilePosition: " +string(lole_xsl_document.parseError.Filepos)+ "~n~r" & 
  + "Line: " +string(lole_xsl_document.parseError.Line)+ "~n~r" & 
  + "LinePosition: " +string(lole_xsl_document.parseError.Linepos)+ "~n~r" & 
  + "Reason: " +string(lole_xsl_document.parseError.Reason)+ "~n~r" & 
  + "SourceText: " +string(lole_xml_document.parseError.SrcText))
 
 

More information about the parseError object can be found on the Microsoft Online XML Developer Center.
 
 

Additional Resources

For more information about XML, see the Sybase document Fast Track to XML, linked below.

For a more in-depth discussion of the concepts presented in this article, see the W3C Extensible Markup Language (XML) Web site at http://www.w3.org/XML/ .

For more information about XPATH, see the Sybase document Using XPath to Navigate XML Documents also linked below.

For more information about XSL and XSLT, see the W3C Extensible StyleSheet Language (XSL) Web site at http://www.w3.org/Style/XSL  or check the XSL Developer's Guide on MSDN.

For information about the PowerBuilders Developers Journal article, see http://www.sys-con.com/pbdj/ section August issue 2001.

You can contact the author of the PBDJ article: Paul Donohue, email: techwave@pauldonohue.com and his Web site www.pauldonohue.com .

Glossary
This glossary defines some of the technical terms presented in this article. For more information on any of these terms, see the links in the Additional Resources section of this article.

Attribute
A name=value pair appearing in an element's start tag such as  match="//employees".

Comment
An item in an XSLT style sheet that contains extraneous information. Written between the delimiters <!-- and -->.

Document Element
The outermost element of a document. The Document Element contains all of the other elements. Contrasted with the root node.

Element
A logical element within an XSLT style sheet delimited by start and end tags such as <Title>Sales Representative</Title>.

Expression
An XPath construct that can be evaluated to a string, number, Boolean, or set of nodes. Expressions are used in many contexts such as the select attribute of the <xsl:templates> element.

Namespace
A named collection of names. A namespace is named by using a URI, to ensure uniqueness, and utilizes a preface to provide context for elements and attributes.

Node
An object of a tree structure.

Output Method
XSLT defines three output methods: XML, HTML, and text.

Pattern
A construct that defines a condition that every node either satisfies or does not satisfy. Used as XPath expressions in XSLT elements such as <xsl:template>.

Processing Instruction Nodes
Nodes containing processing instructions. Processing instructions carry instructions to the software that receives the XML document and processes it. Written between the delimiters <? and ?> such as the <?xml version="1.0" encoding="UTF-8" ?> declaration in an XML document.

Result Tree
The output of a style sheet. A style sheet defines a transformation from a source tree structure to a result tree structure.

Root Node
The top-most node in a tree structure. If the tree structure represents a well-formed XML document, the root node will have exactly one element node, representing the document element, and no child nodes. It may also contain comment nodes and processing instructions nodes as children.

Template Body
A sequence of XSLT instructions, HTML tags, and text forming the contents of an <xsl:template> element.

Template Rule
An <xsl:template> element with a match= attribute. A template rule may be invoked by using the <xsl:apply-templates> instruction.

Tree Structure
An abstract data structure representing the information content of an XML document. The tree structure always has a single root.

URI
Uniform Resource Identifier: a generalization of the URLs (Uniform Resource Locators) used to uniquely identify resources such as addresses on the Internet.

Well-formed
A document is well-formed if it follows the syntax rules in the XML specification. These include such rules as there must be a single outermost element that encloses all other elements and all start tags must have closing tags.
 

michaelstoffel

For the argument to the EXE portion of the question, the OPEN event of the Application object has a string parameter called CommandLine.  This will contain any arguments passed to the EXE.

For example:  myapp.exe -f filename

The CommandLine arg in the application object will contain "-f filename".  You can pass whatever you want to the exe and then parse and act upon it.  I've created apps which take the classname of an NVO.  The app object would instantiate the NVO and call a function on it to perform whatever processing needed.

Mike
indir

ASKER
Dear michaelstoffel . Thank you for your response.
Could you provide a sample(powerscript code) and steps on how to create an xml file described below and you will get all the points.
The first reply from  gajender_99  seems too broad. I just need a simple answer. Or I could split the poinst if gajender_99 proviides an exact answer(powerscript code and steps on how to create a simple xml file described below).
Thanks again,guys,Indir.

<?xml version="1.0"?>
<employees>
<employee>
<emp_id>102</emp_id>
<emp_fname>Fran</emp_fname>
</employee>
</employees>
This is the best money I have ever spent. I cannot not tell you how many times these folks have saved my bacon. I learn so much from the contributors.
rwheeler23
ASKER CERTIFIED SOLUTION
michaelstoffel

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question