## Oracle XML Class Generator 1.0.3.0.0 Production (C++)

July 17, 2000

Updated to match internal changes in the XML parser, otherwise no changes.

## Oracle XML Class Generator 1.0.2.0.0 Production (C++)

External DTD parsing: The Class Generator can now parse an external DTD directly without requiring a complete (dummy) document. This uses a new feature of the Oracle XML Parser version 2.0.1, the `xmlparsedtd` API. The provided command-line program `xmlcg` has a new '`-d`' option to use it, see below.

## Oracle XML Class Generator 1.0.1.0.0 Production (C++)

#### Overview

The XML Class Generator takes a Document Type Definition (DTD) and generates classes for each defined element. Those classes are then used in a C++ program to construct XML documents conforming to the DTD. Supported operating systems are Solaris 2.6, Linux 2.2, HPUX 11.0 and NT 4 (Service Pack 3 and above).

#### Input

Input is an XML document containing a DTD, or an external DTD. The document body itself is ignored; only the DTD is relevant, though the document must conform to the DTD. The underlying XML parser only accepts file names for the document and associated external entities. In future releases, URIs for additional protocols will be accepted.

The following input file encodings are supported: `UTF-8, UTF-16, US-ASCII, ISO-10646-UCS-2, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, EUC-JP, SHIFT_JIS, BIG5, GB2312, KOI8-R, EBCDIC-CP-US, EBCDIC-CP-CA, EBCDIC-CP-NL, EBCDIC-CP-WT, EBCDIC-CP-DK, EBCDIC-CP-NO, EBCDIC-CP-FI, EBCDIC-CP-SE, EBCDIC-CP-IT, EBCDIC-CP-ES, EBCDIC-CP-GB, EBCDIC-CP-FR, EBCDIC-CP-HE, EBCDIC-CP-BE, EBCDIC-CP-CH, EBCDIC-CP-ROECE, EBCDIC-CP-YU,` and `EBCDIC-CP-IS`. In addition, any character set specified in Appendix A, Character Sets, of the Oracle National Language Support Guide may be used.

In order to be able to use these encodings, you must have the `ORACLE_HOME` environment variable set and pointing to the location of your Oracle installation. In addition, the environment variables `ORA_NLS`, `ORA_NLS32`, and `ORA_NLS33` must be set to point to the location of the NLS data files. On Unix systems, this is usually `$ORACLE_HOME/ocommon/nls/admin/data`. On Windows NT, this is usually `$ORACLE_HOME/nlsrtl/admin/nlsdata`.

The default encoding is UTF-8. It is recommended that you set the default encoding explicitly if using only single byte character sets (such as US-ASCII or any of the ISO-8859 character sets) for performance up to twice as fast as with multibyte character sets such as UTF-8.

#### Output

Output is a pair of C++ source files, .cpp and .h, named after the DTD. Constructors are provided for each class (element) that allow an object to be created in two different ways: initially empty, then adding the children or data after the initial creation, or created with the initial full set of children or initial data. A method is provided for #PCDATA (and Mixed) elements to set the data and, when appropriate, set an element's attributes.

#### Licensing Agreement and Feedback

Be sure to read the licensing agreement before using this product. Please post any questions, comments, or bug reports to the XML Forum on the Oracle Technology Network. At this time OTN is your only support resource.

#### Relevant XML Standards

- The W3C recommendation for Extensible Markup Language (XML) 1.0
- The W3C recommendation for Document Object Model Level 1 1.0
- The W3C proposed recommendation for Namespaces in XML
- The Simple API for XML (SAX) 1.0

#### Manifest

The following files and directories are found in this release:

`license.html` | Licensing agreement
`readme.html` | This file
`bin/` | Standalone Class Generator "xmlcg"
`doc/` | API documentation
`include/` | Header files
`lib/` | XML and support libraries
`mesg/` | Error message files (including cause/action information in the .msg). Currently English only.
`sample/` | Example usage

The following libraries are included:

`libxml8.a` | XML Parser/XSL Processor
`libxmlg8.a` | XML Class Generator
`libxmlc8.a` | Compatibility library needed to link with Oracle 8.1.5
`libcore8.a` | CORE functions
`libnls8.a` | National Language Support

#### xmlcg Usage

The standalone parser may be called as an executable by invoking `bin/xmlcg` like

`xmlcg [flags] <XML document or External DTD>`

where the optional flags are as follows:

`-d name` | DTD - Input is an external DTD with the given name
`-o directory` | Output - Output directory for generated files (default is current directory)
`-e encoding` | Encoding - Default input file encoding
`-h` | Help - show this usage help
`-v` | Version - show the Class Generator version

#### Error Message Languages

An error message file is provided in the `mesg/` subdirectory. Currently, the only message file is in English although message files for other languages may be supplied in future releases. You should set the environment variable `ORA_XML_MESG` to point to the absolute path of the `mesg/` subdirectory. Alternately, if you have an `$ORACLE_HOME` installed, you may copy the contents of the `mesg/` subdirectory to the `$ORACLE_HOME/oracore/mesg` directory.