class %XML.Utils.SchemaResult
extends %RegisteredObject
This class manages and contains the list of class defintions
that are created from an XML Schema. This class is intended for internal use by the
Caché XML Schema Wizard.
This class is used internally by Caché. You should not make direct
use of it within your applications. There is no guarantee made about either
the behavior or future operation of this class.
parameter DOMAIN = "%TemplateMessages";
Messages for localization of XML Schema Wizard result.
property Classes
as %String [ MultiDimensional ];
A multi-dimensional array of class names
Classes(name) = key (in original ClassTree)
property Features
as %String [ MultiDimensional ];
Array of feature codes for generated classes:
The possible nodes are as follows:
Features("DEFAULTSEQUENCE") If this node is true, the wizard does not set the XMLSEQUENCE parameter in the generated classes.
Features("JAVA") If this node is true, each class includes a Java projection.
Features("NOSEQUENCE") If this node is true, the wizard sets the XMLSEQUENCE parameter to 0 in the generated classes.
Features("POPULATE") If this node is true, each class extends %Populate in addition to %XML.Adaptor.
Features("SQLCOLUMNS") If this node is true, each class property specifies a value for the SqlColumnNumber keyword, so that the properties have the same order in SQL that they have in the schema.
Features("IGNORENULL") If this node is set, the XMLIGNORENULL parameter is set to this value for each class.
property PrefixIndex
as %Integer [ InitialExpression = 0 ];
Index for creating namespace prefixes.
property Reader
as SchemaReader;
SchemaReader that created this result
property Tree
as %Integer;
Integer tree id within ^CacheTemp
method AddToXSchema(classname As %String)
as %Status
Create the XSchema data Structure for one class
method CompileClasses(verbose As %Boolean = 0, CompileFlags As %String = "dk")
as %Status
Compile all the class definitions in this result
method CreateClassDef(pClassName As %String, test As %Boolean = 0, ByRef pCDef As %Dictionary.ClassDefinition)
as %Status
Create a class definition for an entry in the class tree.
classmethod CreateResult(pReader As SchemaReader, pPackage As %String = "", ByRef pFeatures As %String)
as SchemaResult
Create a Schema Result given a SchemaReader
classmethod DisplayClass(cdef As %Dictionary.ClassDefinition)
as %Status
Write out a formatted version of a class definition
method DisplayClassHTML(row As %Integer, cdef As %Dictionary.ClassDefinition)
as %Status
method DisplayClasses()
List all the classes in this Result.
method DisplayClassesHTML()
as %Status
Provide an HTML list of classes (for Wizard)
method ElementsToXSchema()
as %Status
Add top level elements to the XSchema data structure
method GetTypeRef(ns As %Integer, key As %Integer, ByRef nsno As %Integer, ByRef localname As %String)
as %String
classmethod IsSQLWord(name As %String)
as %Boolean
Test if name is an SQL reserved word
classmethod IsValidClassName(%val As %Binary)
as %Boolean
!!!Test if name is a valid class name
method OutputXSchema(nsno As %Integer)
Output the XSchema data structure to a file
method SaveClass(cdef As %Dictionary.ClassDefinition, verbose As %Boolean = 0)
as %Status
method SaveClasses(verbose As %Boolean = 0, test As %Boolean = 0)
as %Status
Save all the class definitions in this result to the database.
method SetupResult(pReader As SchemaReader, pPackage As %String = "", ByRef pFeatures As %String)
as SchemaResult
Setup a new Schema Result given a SchemaReader
method XSchemaToFile(filepath As %String)
as %Status
Output an XSchema format file based on the parsed XML schema.