Contents

Chapter 1: 
 
  • 1.1 Caché XML Architecture
  • 1.2 Caché XML Features
  • Chapter 2: 
     
  • 2.1 Basic Terms
  • 2.2 Additional Reading
  • Chapter 3: 
     
  • 3.1 Overview
  • 3.1.1 Projecting a Class as an XML Document
  • 3.1.2 The Default Projection
  • 3.2 Controlling How Properties Are Projected
  • 3.2.1 Controlling How a Property Is Projected
  • 3.2.2 Controlling How an Object-valued Property Is Projected
  • 3.3 Controlling the XML Tag Names
  • 3.3.1 Controlling the Tag of an Object Projected as a Top-level Element
  • 3.3.2 Controlling the Tags for Properties
  • 3.3.3 Controlling the Tags That Correspond to Collection Elements
  • 3.3.4 Controlling the Tag of an Array Key Attribute
  • 3.4 Specifying the XML Types
  • 3.4.1 Overview
  • 3.4.2 XML Type Names for XML-enabled Classes
  • 3.4.3 XML Types for Literal Properties
  • 3.4.4 XML Type Names for Object-valued Properties
  • 3.5 Assigning Objects to Namespaces
  • 3.5.1 Specifying the Namespace for a Top-level Element
  • 3.5.2 Qualifying Local Elements
  • 3.5.3 Making a Property into a Global Element
  • 3.6 Handling Null Values
  • 3.6.1 Handling Null Values at Runtime
  • 3.6.2 Using the xsi:nil Attribute
  • 3.7 Controlling How Properties Are Used: Import or Export
  • 3.8 Format Options: Literal and Encoded
  • 3.9 Special Cases
  • 3.9.1 Handling a Document with Multiple Tags with the Same Name
  • 3.9.2 Projecting a Property That Contains Markup Tags
  • 3.9.3 Controlling the Line Endings of Stream Properties
  • 3.9.4 Projecting Caché IDs for Export
  • 3.10 Additional Options for Controlling XML Types
  • 3.10.1 Automatic Creation of Types for Subclasses
  • 3.10.2 Creating a Choice List of Subtypes
  • 3.10.3 Creating a Substitution Group of Subtypes
  • 3.10.4 How Superclasses Are Represented As Types
  • 3.11 Parameters That Affect Only Import
  • 3.11.1 Handling Unexpected Attributes and Tags
  • 3.12 Using the %XML.Adaptor Methods
  • Chapter 4: 
     
  • 4.1 Overview
  • 4.2 Creating an Output Method
  • 4.2.1 Overall Method Structure
  • 4.2.2 Error Checking
  • 4.2.3 Inserting Comment Lines
  • 4.2.4 Example
  • 4.3 Specifying the Output Destination
  • 4.3.1 Output to a File
  • 4.3.2 Output to a String
  • 4.3.3 Output to a Stream
  • 4.4 Writing the Prolog
  • 4.4.1 Properties That Affect the Prolog
  • 4.4.2 Generating a Document Type Declaration
  • 4.4.3 Writing Processing Instructions
  • 4.5 Writing the Root Element
  • 4.6 Generating an XML Element
  • 4.6.1 Generating an Object As an Element
  • 4.6.2 Constructing an Element Manually
  • 4.6.3 Using %XML.Element
  • 4.7 Controlling the Use of Namespaces
  • 4.7.1 Default Handling of Namespaces
  • 4.7.2 Controlling Whether Local Elements Are Qualified
  • 4.7.3 Controlling Whether an Element Is Local to Its Parent
  • 4.7.4 Controlling Whether Attributes Are Qualified
  • 4.7.5 Specifying a Default Namespace
  • 4.7.6 Adding Namespace Declarations
  • 4.7.7 Summary of Namespace Assignment
  • 4.7.8 Controlling the Style of Namespace Assignment
  • 4.8 Generating SOAP-encoded XML
  • 4.8.1 Creating Inline References
  • 4.9 Other Properties of the Writer
  • 4.9.1 Shallow Property
  • 4.9.2 Summary Property
  • 4.9.3 OutputTypeAttribute Property
  • 4.9.4 CycleCheck Property
  • 4.10 Additional Example: Writer with Choice of Settings
  • Chapter 5: 
     
  • 5.1 Overview
  • 5.2 Creating a Simple Caché XML Server
  • 5.2.1 How the Example Behaves
  • 5.2.2 Creating the Example with the New Class Wizard
  • 5.3 Serving Objects as XML from CSP
  • 5.3.1 Modifying the XML Server Class
  • Chapter 6: 
     
  • 6.1 Overview
  • 6.2 Creating an Import Method
  • 6.2.1 Overall Method Structure
  • 6.2.2 Error Checking
  • 6.2.3 An XML Import Example
  • 6.3 Handling Unexpected Tags and Attributes
  • 6.4 Other Useful Methods
  • 6.5 Reader Properties
  • 6.6 Additional Examples
  • 6.6.1 Flexible Reader Class
  • 6.6.2 Reading a String
  • Chapter 7: 
     
  • 7.1 Creating a Text Reader Method
  • 7.1.1 Overall Structure
  • 7.1.2 Example 1
  • 7.1.3 Example 2
  • 7.2 Node Types
  • 7.3 Node Properties
  • 7.4 Argument Lists for the Parse Methods
  • 7.5 Navigating the Document
  • 7.5.1 Navigating to the Next Node
  • 7.5.2 Navigating to the First Occurrence of a Specific Element
  • 7.5.3 Navigating to an Attribute
  • 7.5.4 Navigating to the Next Node with Content
  • 7.5.5 Rewinding
  • 7.6 Performing Validation
  • Chapter 8: 
     
  • 8.1 Overview
  • 8.2 Controlling the Parser Behavior
  • 8.3 Setting the Parser Flags
  • 8.4 Specifying the Event Mask
  • 8.5 Specifying a Schema Document
  • 8.6 Performing Custom Entity Resolution
  • 8.7 Creating a Custom Content Handler
  • 8.7.1 Overview
  • 8.7.2 Customizable Methods of the SAX Content Handler
  • 8.7.3 Argument Lists for the SAX Parsing Methods
  • 8.7.4 A SAX Handler Example