Preface
Purpose
Audience
Organization
Using ABL documentation
References to ABL compiler and run-time features
References to ABL data types
Typographical conventions
Examples of syntax descriptions
Long syntax descriptions split across lines
Complex syntax descriptions with both required and optional elements
Example procedures
OpenEdge messages
Obtaining more information about OpenEdge messages
Developing with XML in OpenEdge
About XML
Role of XML
Benefits of XML
Benefits of ABL XML development in OpenEdge
Benefits of SOA XML development in OpenEdge
Recommended resources for learning XML basics
Developing XML-enabled ABL applications with DOM
DOM advantages
DOM limits
ABL support
More information
Developing XML-enabled ABL applications with SAX
SAX advantages
SAX limits
ABL support
More information
Serializing ABL temp-tables and ProDataSets to and from XML
Features
Use cases
ABL support
More information
Reading and Writing XML with the Document Object Model (DOM)
XML terminology
XML document structure
XML prolog
XML body
DTDs and XML Schema documents
XML elements
XML attributes
XML empty elements
XML entities
XML namespaces
The ABL DOM interface
Prerequisites
Representing an XML document in ABL DOM
Representing a DOM node in ABL
Creating XML output from ABL
The root node reference object
Creating and appending a node
Setting node attributes and values
Example of creating an output XML file
Writing an XML file to a MEMPTR, a stream, or a LONGCHAR
Reading XML input into ABL
Loading an XML file
Loading an XML file from a LONGCHAR
Loading an XML file from a MEMPTR
Accessing the child nodes
Using node attributes and values
Examples of reading an input XML file
Namespaces
Internationalization
Error handling
Validation
Method and attribute summary
Reading XML Documents with the Simple API for XML (SAX)
Understanding ABL SAX
SAX-reader object
ABL SAX callbacks
SAX-attributes object
Retrieving data from a SAX-attributes object
Creating a SAX-attributes object
Validation
Namespace processing
Namespace declarations
Effects of namespace processing
Parsing with one call or with multiple calls
Monitoring the state of the parse
Error handling
Developing ABL SAX applications
Basic tasks of OpenEdge SAX application
Example code: retrieving names and phone numbers
Without namespace processing
With namespace processing
Example code: reading customer data and writing a TEMP-TABLE
ABL SAX and WebSpeed
Example code: reading XML data using WebSpeed
SAX and the AppBuilder
Storing and recalling context information
Context management example
SAX API reference
SAX error message reference
SAX callback reference
Characters
EndDocument
EndElement
EndPrefixMapping
Error
FatalError
IgnorableWhitespace
NotationDecl
ProcessingInstruction
ResolveEntity
StartDocument
StartElement
StartPrefixMapping
UnparsedEntityDecl
Warning
Writing XML Documents with the Simple API for XML (SAX)
SAX-writer overview
Creating a SAX-writer
Configuring a SAX-writer
Writing an XML document
Examples
Creating an XML document from database data
Envelope information example
Concurrently reading and writing XML documents
Handling namespaces
Handling errors
How errors are handled when STRICT is FALSE
How errors are handled when STRICT is TRUE
Errors raised by invalid method calls during SAX-writer states
Example of changing values in the WRITER-STATUS attribute
Handling codepage conversions
Reading and Writing XML Data from Temp-Tables and ProDataSets
Introduction
Use cases
Other XML features
Methods and attributes
Attribute interactions
NAMESPACE-URI and NAMESPACE-PREFIX
XML-NODE-NAME and SERIALIZE-NAME
XML-NODE-TYPE and SERIALIZE-HIDDEN
ABL-specific attributes in XML Schema
Reading XML Schema into a temp-table, temp-table buffer, or ProDataSet
Creating a dynamic temp-table with XML Schema
Verifying a static temp-table against XML Schema
Creating a dynamic ProDataSet with XML Schema
Reading XML into a temp-table, temp-table buffer, or ProDataSet
Schema locations
Reading XML data into temp-tables
Adding XML data to a populated temp-table
Reading XML into a ProDataSet
Reading before-image data for ProDataSet temp-table buffers from XML
Writing XML Schema from a temp-table, temp-table buffer, or ProDataSet
Writing a temp-table definition to XML Schema
Writing a ProDataSet definition to XML Schema files
Writing XML from a temp-table, temp-table buffers, or a ProDataSet
Writing temp-table data to XML
Writing XML from a temp-table buffer's current row
Writing a ProDataSet to XML
Minimizing XML document size
Omitting foreign key fields in nested child records
Omitting fields with initial values
Sample ProDataSet to XML round-trip
Mapping ABL names to different XML element or attribute names
Using XML Schema
Creating dynamic ABL objects from XML Schema
Verifying XML Schema against ABL definitions
Inferring definitions from XML data
Inferring schema for a temp-table
Inferring schema for a ProDataSet
Inferring data-relations from nested XML and XML Schema
Examples of additional XML support
Simple example of a PARENT-ID-RELATION
XML schema with root element mapping to a temp-table
XML schema with no explicit field definition for a parent table
XML schema with parent table fields after nested child tables
XML schema with parent table fields interspersed among child tables
ABL representation of temp-tables and ProDataSets as XML Schema
Namespaces
ABL-specific attributes on temp-table and ProDataSet definitions
Representing temp-tables in XML Schema
Representing indexes in XML Schema
Representing data-relations in XML Schema
XML Schema and ABL Data Type Mappings
Default mappings between ABL data types and XML Schema data types
Default mappings from other XML Schema data types to ABL data types
ABL to IANA Code Page Mappings
ABL to IANA code page mappings
Command and Utility Reference
bproxsdto4gl utility
Preface
bproxsdto4gl utility