abstract class EnsLib.XML.Object.Operation.Standard
extends Ens.BusinessOperation
EnsLib.XML.Object.Operation.Standard is the base operation class for operation which output an XML document
based on a persistent using %XML.Writer.
This is a Business Operation class.
parameter SETTINGS = "RootElementName:Basic,Namespace:Basic,ExpectedClassName:Basic,Indent:Basic,IndentDepth:Basic,Charset:Basic,NoXMLDeclaration:Basic,RuntimeIgnoreNull:Basic,ElementQualified:Basic,AttributeQualified:Basic,DefaultNamespace:Basic,SuppressXmlns:Basic,Format:Basic,ReferencesInline:Basic";
List of properties can be set as settings in the configuration file
format is a comma separated list of property names
property AttributeQualified
as %Boolean [ InitialExpression = 0 ];
AttributeQualified indicates whether or not
locally declared attributes must be qualified.
See attributeFormDefault schema attribute.
property Charset
as %String;
Charset is the charset to use for encoding the
XML output. The default depends upon the output destination.
"UTF-8" is the default for output to files and binary streams.
On a Unicode instance, "UTF-16 is the default for output to character streams and strings.
On an 8 bit instance, the default charset for the locale is the default charset for output to character streams and strings.
NOTE: this Charset setting will be used rather than the Adapter Charset setting.
property DefaultNamespace
as %String;
DefaultNamespace is the XML namespace to use
for any exported classes that do not have the NAMESPACE parameter
specified. If the NAMESPACE parameter is specified for a class,
then the namespace specified in the class is always used.
property ElementQualified
as %Boolean;
ElementQualified indicates whether or not
locally declared elements must be qualified.
The default for Format="encoded"or "encoded12" = 0 and the default for Format="literal" is 1.
See elementFormDefault schema attribute.
property ExpectedClassName
as %String;
ExpectedClassName is the expected name of this object's class.
If the ExpectedClassName is specified and this class's name is not equal to the name in ExpectedClassName,
then add a xsi:type attribute to the element.
property Format
as %String(VALUELIST=",literal,encoded,encoded12") [ InitialExpression = "literal" ];
The format of the XML document: "literal", "encoded" or "encoded12", "literal" is the default.
For "literal" formatting is according to the schema for this document.
For "encoded" formatting use SOAP encoding as specified by section 5 of the SOAP 1.1 standard.
For "encoded12" formatting use SOAP encoding as specified by part 2 of the SOAP 1.2 standard.
property Indent
as %String(VALUELIST=",none,tab,space") [ InitialExpression = "none" ];
Indentation specifies if indentation of the XML output should take place and what type of indentation.
property IndentDepth
as %Integer;
IndentChars specifies the indentation characters to be used for indentation.
The default for "tab" is 1. The default for "space" is 4.
property Namespace
as %String;
Namespace optionally specifies the default namespace for this object.
If the NAMESPACE parameter is specified for a class, then the namespace specified in the class is always used.
property NoXMLDeclaration
as %Boolean;
If NoXMLDeclaration is 1 (true),
then the XML declaration will not be written.
The default is to write the XML declaration unless
Charset is not specified and the output is directed to a string
or character stream in which case no XML declaration is written.
property ReferencesInline
as %Boolean [ InitialExpression = 0 ];
If ReferencesInline is true, then encoded objects are exported inline.
By default, SOAP encoded XMLExport of a class uses idref's for class instances referenced by
a class that is being exported. This change allows the referenced class instances to be exported
inline as for "literal" format.
Note that unlike most properties of %XML.Writer, changing the value of
ReferencesInline has immediate effect on the next object exported.
property RootElementName
as %String;
Element name for the root element name of the output XML document.
This default to the input element name.
property RuntimeIgnoreNull
as %Boolean [ InitialExpression = 0 ];
If XMLIGNORENULL = "runtime", then the behavior of XMLIGNORENULL
is determined by the RuntimeIgnoreNull property.
RuntimeIgnoreNull specifies the value of
XMLIGNORENULL at runtime as either true or false.
If XMLIGNORENULL = "runtime", then the behavior of XMLIGNORENULL
is determined by the RuntimeIgnoreNull property.
property SuppressXmlns
as %Boolean [ InitialExpression = 0 ];
SuppressXmlns allows optionally suppression of the use of xmlns= to set
default XML namespace when ElementQualified is false.
If SuppressXmlns is true then a prefix is used for each tag rather than default namespace with xmlns=.
method SetProperties(pWriter As %XML.Writer)
Set the needed %XML.Writer properties.
This method may be overridden to add or change which proeprties are to be set.
method standardOnMessage(pRequest As %Persistent, Output pStream As %Stream.Object)
as %Status
Write the XML document to a stream.