Skip to main content

%Projection.XML

This projection class maintains the sub class infomation needed to support that XML allows
1) the use of a derived type wherever a type may appear using the xsi:type mechanism and
2) the indication of the element type for choice constructs by the element name.

In order to accomplish the above, the XML projection maintains information about each subclass of an XML enabled class. This subclass information is updated for the super class whenever one of these subclasses is compiled. If the super class is in the same database as the class being compiled, then this information is maintained in ^oddCOM(supername,$$$cCLASSxmldata). If the super class is mapped from another database (possibly a readonly database such as %CACHELIB), then the information must is maintained in the local database in ^oddXML(supername).

Structure of ^oddXML and ^oddCOM(supername,$$$cCLASSxmldata)is as follows:
^oddXML(supername,"c",classname)=$lb(elementName,type,summaryType)
^oddXML(supername,"n",elementName)=$lb(className,...)
^oddXML(supername,"t",type)=$lb(className,...)
^oddXML(supername,"s",summaryType)=$lb(className,...)
where classname is the subclass, elementName is the element name for choice lists,
type is the XML type name and summaryType is the XML type name for the summary class.
Note that this iformation is updated for all supernames when a classname is compiled.

^oddXML (and not ^oddCOM) is also used to store an index of classes defined for each XML namespace.
^oddXML("-ns",namespace,classname)=""
^oddXML("-cns",classname)=namespace
where namespace is the XML namespace name and "-" stands for the null XML namespace for classes with no namespacee defined.
classname is the name of a class defined in this namespace.

^oddXML (and not ^oddCOM) is also used to store a mapping for binary SOAP support of remote class names to local class names based on the value of SOAPCLASSNAME being of the form serviceName:remoteClassname.
^oddXML("-cl",serviceName,remoteClassname)=localClassname
^oddXML("-cr",localClassname,serviceName)=remoteClassname
where serviceName is the name of the remote service
remoteClassname is the class name for the remote SOAP service
localClassname is the name of corresponding local class.

Parameters

parameter DisableMulticompile = 1;
Inherited description: If true then do not create this projection using the class compiler multicompile jobs but create it in the main process. Used to allow projections that do not function in the multicompile environement to disable this feature.

Inherited Members

Inherited Methods

FeedbackOpens in a new tab