IRISLIB database
Writer Class Reference
Inheritance diagram for Writer:
Collaboration diagram for Writer:

Public Member Functions

_.Library.Status AddInstanceNamespace (_.Library.String prefix)
 <method>AddInstanceNamespace</method> adds the schema instance More...
 
_.Library.Status AddNamespace (_.Library.String namespace, _.Library.String prefix, _.Library.String schemaLocation)
 <method>AddNamespace</method> adds a namespace to the XML document More...
 
_.Library.Status AddSOAP12Namespace (_.Library.String soapPrefix, _.Library.String schemaPrefix, _.Library.String xsiPrefix)
 <method>AddSOAP12Namespace</method> adds the SOAP 1.2 encoding, schema and More...
 
_.Library.Status AddSOAPNamespace (_.Library.String soapPrefix, _.Library.String schemaPrefix, _.Library.String xsiPrefix)
 <method>AddSOAPNamespace</method> adds the SOAP 1.1 encoding, schema and More...
 
_.Library.Status AddSchemaNamespace (_.Library.String prefix)
 <method>AddSchemaNamespace</method> adds the schema More...
 
_.Library.String AttributeText (_.Library.String attrval)
 Do canonical formatting of attribute text.
 
_.Library.Status CanonicalTree (_.XML.Node node, PrefixList, _.Library.Boolean isSTR, _.Net.MIMEPart mimeAttachments)
 The <method>CanonicalTree</method> method writes element content as represented. More...
 
_.Library.Status Canonicalize (_.XML.Node node, PrefixList, _.Library.Boolean formatXML, _.Library.Boolean isSTR, _.Net.MIMEPart mimeAttachments)
 The <method>Canonicalize</method> method writes an XML document with root element specified. More...
 
_.Library.String CharsText (_.Library.String text, overflow)
 Do canonical formatting of element text.
 
_.Library.Status Document (_.XML.Document documentArg)
 The <method>Document</method> method writes the XML document represented. More...
 
_.Library.Status DocumentNode (_.XML.Node node)
 The <method>DocumentNode</method> method writes the XML document represented. More...
 
_.Library.Status Element (tag, _.Library.String namespace)
 <method>Element</method> outputs elements nested in the root object More...
 
_.Library.Status EndDocument ()
 Finish output of the XML document.
 
_.Library.Status EndElement ()
 <method>EndElement</method> outputs the end element for the More...
 
_.Library.Status EndRootElement ()
 EndRootElement is the method to end the root element.
 
_.Library.Status EndWrite ()
 <method>EndWrite</method> restores the current device to before matching StartWrite. More...
 
_.Library.String GetXMLString (_.Library.Status status)
 <method>GetXMLString</method> gets output generated using OutputToString.
 
_.Library.Status Object (_.XML.Adaptor objectArg, _.Library.String tag, _.Library.String namespace, _.Library.Boolean local, _.Library.String className, _.Library.Boolean bare)
 <method>Object</method> outputs objects nested in the root object More...
 
_.Library.Status OutputToDevice ()
 <method>OutputToDevice</method> sets output to the current device which More...
 
_.Library.Status OutputToFile (_.Library.String filename)
 <method>OutputToFile</method> sets output to be directed to a More...
 
_.Library.Status OutputToStream (_.Library.BinaryStream export)
 <method>OutputToStream</method> sets output to be directed to a stream. More...
 
_.Library.Status OutputToString ()
 <method>OutputToString</method> sets output to be directed to a string. More...
 
_.Library.Status Reset ()
 The <method>Reset</method> method may be called after an XML. More...
 
_.Library.Status RootElement (root, _.Library.String namespace)
 The <method>RootElement</method> method writes only the root element. More...
 
_.Library.Status RootObject (_.XML.Adaptor object, _.Library.String tag, _.Library.String namespace, _.Library.String className, _.Library.Boolean bare)
 <method>RootObject</method> will output the document as a More...
 
_.Library.Status StartDocument (_.Library.Boolean allowForest)
 Start output of the XML document. More...
 
_.Library.Status StartWrite ()
 <method>StartWrite</method> sets the current device for writing arbitrary text in the XML document without any escaping being done. More...
 
_.Library.Status Tree (_.XML.Node node, _.Library.Boolean keepxmlns)
 The <method>Tree</method> method writes the XML document node represented. More...
 
_.Library.Status Write (text)
 <method>Write</method> writes arbitrary text in the XML document without any escaping being done. More...
 
_.Library.Status WriteAttribute (_.Library.String name, _.Library.String value, _.Library.String namespace, _.Library.String valueNamespace, _.Library.Boolean global)
 The <method>WriteAttribute</method> method writes an attribute for the last element started. More...
 
_.Library.Status WriteBase64 (binary)
 <method>WriteBase64</method> encodes the specified binary bytes as base64 and writes out the resulting text. More...
 
_.Library.Status WriteBinHex (binary)
 <method>WriteBinHex</method> encodes the specified binary bytes as binhex and writes out the resulting text. More...
 
_.Library.Status WriteCData (text)
 <method>WriteCData</method> writes XML element text in a CData section. More...
 
_.Library.Status WriteChars (text)
 <method>WriteChars</method> writes XML element text performing any required escaping. More...
 
_.Library.Status WriteComment (text)
 <method>WriteComment</method> writes out a comment containing the specified text. More...
 
_.Library.Status WriteDocType (_.Library.String name, _.Library.String PublicId, _.Library.String SystemId, _.Library.String subset)
 <method>WriteDocType</method> writes the DOCTYPE declaration with the specified name and optional attributes. More...
 
_.Library.Status WriteProcessingInstruction (_.Library.String name, _.Library.String text)
 <method>WriteProcessingInstruction</method> writes out a processing instruction with a More...
 
- Public Member Functions inherited from RegisteredObject
_.Library.Status OnAddToSaveSet (_.Library.Integer depth, _.Library.Integer insert, _.Library.Integer callcount)
 This callback method is invoked when the current object is added to the SaveSet,. More...
 
_.Library.Status OnClose ()
 This callback method is invoked by the <METHOD>Close</METHOD> method to. More...
 
_.Library.Status OnConstructClone (_.Library.RegisteredObject object, _.Library.Boolean deep, _.Library.String cloned)
 This callback method is invoked by the <METHOD>ConstructClone</METHOD> method to. More...
 
_.Library.Status OnNew ()
 This callback method is invoked by the <METHOD>New</METHOD> method to. More...
 
_.Library.Status OnValidateObject ()
 This callback method is invoked by the <METHOD>ValidateObject</METHOD> method to. More...
 

Static Public Member Functions

 ParsePrefixList (_.Library.String PrefixList, PrefixListArray)
 The <method>ParsePrefixList</method> parses the PrefixList that is specified. More...
 

Public Attributes

 AttributeQualified
 <property>AttributeQualified</property> indicates whether or not More...
 
 Base64LineBreaks
 If <property>Base64LineBreaks</property> is true (1), then remove line breaks. More...
 
 Charset
 <property>Charset</property> is the charset to use for encoding the More...
 
 CurrentIndent
 The current indent level. More...
 
 CycleCheck
 If <property>CycleCheck</property> is true (1), then any object to be. More...
 
 DefaultNamespace
 <property>DefaultNamespace</property> is the XML namespace to use More...
 
 DefaultXmlns
 <property>DefaultXmlns</property> allows optional specification of the XML namespace More...
 
 ElementQualified
 <property>ElementQualified</property> indicates whether or not More...
 
 Format
 The format of the XML document: "literal", "encoded" or "encoded12", "literal" is the default. More...
 
 Indent
 Indent specifies that indentation of the XML output should take place. More...
 
 IndentChars
 IndentChars specifies the character sequence to be used for each indent level if Indent=1. More...
 
 NoXMLDeclaration
 If <property>NoXMLDeclaration</property> is 1 (true),. More...
 
 OutputTypeAttribute
 <property>OutputTypeAttribute</property> allows the user to force the inclusion of the xsi:type More...
 
 ReferencesInline
 If <property>ReferencesInline</property> is 1 (true), then encoded objects are exported inline. More...
 
 RuntimeIgnoreNull
 If XMLIGNORENULL = "runtime", then the behavior of XMLIGNORENULL. More...
 
 Shallow
 The <property>Shallow</property> controls shallow XML export of objects. More...
 
 Summary
 If <property>Summary</property> is 1 (true), then export the. More...
 
 SuppressXmlns
 <property>SuppressXmlns</property> allows optionally suppression of the use of xmlns= to set More...
 

Private Member Functions

_.Library.Status __EndDocumentInternal ()
 This method is for internal use only. More...
 
_.Library.Status __StartDocumentInternal (_.Library.Boolean rootOK)
 This method is for internal use only. More...
 

Private Attributes

 __ElementStack
 Stack of end elements for currently started elements. More...
 
 __IdList
 Internal list of orefs for use by encoded output. More...
 
 __IndentNext
 If true, indenting to be done for next element, comment or processing instruction. More...
 
 __OrefList
 Internal list of orefs for use by encoded output. More...
 
 __OutputDestination
 Internal list of ids for use by encoded output. More...
 
 __OutputFilename
 Filename for output to file. More...
 
 __OutputStream
 Stream for output to stream or file. More...
 
 __OutputTable
 Internal – translate table used for output. More...
 
 __UserStream
 User specified Global stream that will receive data. More...
 

Additional Inherited Members

- Static Public Attributes inherited from RegisteredObject
 CAPTION = None
 Optional name used by the Form Wizard for a class when generating forms. More...
 
 JAVATYPE = None
 The Java type to be used when exported.
 
 PROPERTYVALIDATION = None
 This parameter controls the default validation behavior for the object. More...
 

Detailed Description

For details on using this class, see Writing XML Output from Objects.

The <class>XML.Writer</class> controls export of XML from InterSystems IRIS. It generates a complete XML document including the <?xml> tag. <class>XML.Writer</class> works sequentially, outputting the XML as it goes.

<class>XML.Writer</class> works in two phases. During the first phase, any required parameters are set for the entire document,
for example indentation, charset, output media. In the second phase the root element and its child elements are exported. The root element may be the export of a single object and its referenced objects. Or the root element may be a simple element with any number of objects exported as its children.

All parts of the XML document should be output using methods of this class. The Write method may be used to output unformatted and unescaped text inside the the root element of the document. In this case the user is responsible for proper management of namespaces and nesting. Additionally, the Object() and Element() may be used to output nested elements.

Namespace handling is for the most part automatic.
<class>XML.Writer</class> adds namespaces, with automatically created prefixes, to the XML output as needed.
The usage of namespaces is controlled by the <property>ElementQualified</property>, <property>AttributeQualified</property> and <property>DefaultNamespace</property> properties, and any namespace argument to an Object or Element call. However, it is possible to control when a namespace is introduced into the document and the prefix used with the <method>AddNamespace</method> method.

The following usage example wraps two instances of the Sample.Person class in <Customer> tags and sets the root tag to <CustomerList> as an example of possible adherence to a business rule:

set x1=##class(Sample.Person).OpenId(1) set x2=##class(Sample.Person).OpenId(2) set writer=##class(XML.Writer).New() set writer.Charset="UTF-8" set sc=writer.OutputToString() If $$$ISERR(sc) Do $system.OBJ.DisplayError(sc) Quit s sc=writer.RootElement("CustomerList") If $$$ISERR(sc) Do $system.OBJ.DisplayError(sc) Quit set sc=writer.Object(x1,"Customer") If $$$ISERR(sc) Do $system.OBJ.DisplayError(sc) Quit set sc=writer.Object(x2,"Customer") If $$$ISERR(sc) Do $system.OBJ.DisplayError(sc) Quit s sc=writer.EndRootElement() If $$$ISERR(sc) Do $system.OBJ.DisplayError(sc) Quit s string=writer.GetXMLString()

Member Function Documentation

◆ AddInstanceNamespace()

_.Library.Status AddInstanceNamespace ( _.Library.String  prefix)

<method>AddInstanceNamespace</method> adds the schema instance

namespace to the document using the optional prefix. If the prefix argument is not specifed, "xsi" is used as the prefix.

◆ AddNamespace()

_.Library.Status AddNamespace ( _.Library.String  namespace,
_.Library.String  prefix,
_.Library.String  schemaLocation 
)

<method>AddNamespace</method> adds a namespace to the XML document

for all elements added at this nesting level. The prefix to be used for the namespace may optionally be specified with the prefix argument. A schemaLocation attribute value for the first definition of this namespace may also specified. For example, if many children of an element will use the same namespace, it is better to add the namespace above the containing element, so that the prefix may be defined only once at the containing level using the xmlns:prefix attribute.

◆ AddSOAP12Namespace()

_.Library.Status AddSOAP12Namespace ( _.Library.String  soapPrefix,
_.Library.String  schemaPrefix,
_.Library.String  xsiPrefix 
)

<method>AddSOAP12Namespace</method> adds the SOAP 1.2 encoding, schema and

schema instance namespaces to the document using the optional prefixes soapPrefix, schemaPrefixPrefix and xsiPrefix.

◆ AddSOAPNamespace()

_.Library.Status AddSOAPNamespace ( _.Library.String  soapPrefix,
_.Library.String  schemaPrefix,
_.Library.String  xsiPrefix 
)

<method>AddSOAPNamespace</method> adds the SOAP 1.1 encoding, schema and

schema instance namespaces to the document using the optional prefixes soapPrefix, schemaPrefixPrefix and xsiPrefix.

◆ AddSchemaNamespace()

_.Library.Status AddSchemaNamespace ( _.Library.String  prefix)

<method>AddSchemaNamespace</method> adds the schema

namespace to the document using the optional prefix. If the prefix argument is not specifed, "s" is used as the prefix.

◆ CanonicalTree()

_.Library.Status CanonicalTree ( _.XML.Node  node,
  PrefixList,
_.Library.Boolean  isSTR,
_.Net.MIMEPart  mimeAttachments 
)

The <method>CanonicalTree</method> method writes element content as represented.

by the XML.Node class in canonicalized form specified by the Exclusive XML Canonicalization or Canonical XML (also called inclusive canonicalization) specification.

  • node is the parse tree that represents the XML document to be output.
  • For Exclusive XML Canonicalization PrefixList is a multidimensional array which specifies the prefixes that are included on the IncludedNamespaces list.
    PrefixList(prefix)="" if the prefix is on the list. If PrefixList is = "c14n", then inclusive canonicalization is performed.
  • isSTR is for internal use. If true, keep xmlns="" on the APEX node as specified by WS-Security for canonicalization of XML freferenced by a SecurityTokenReference.
  • If the XML document is in MTOM format, then mimeAttachments is a mime part which contains in the Parts property the list of attachments.

◆ Canonicalize()

_.Library.Status Canonicalize ( _.XML.Node  node,
  PrefixList,
_.Library.Boolean  formatXML,
_.Library.Boolean  isSTR,
_.Net.MIMEPart  mimeAttachments 
)

The <method>Canonicalize</method> method writes an XML document with root element specified.

by the XML.Node class in canonicalized form specified by the Exclusive XML Canonicalization or Canonical XML (also called inclusive canonicalization) specification.

  • node is the parse tree that represents the XML document to be output.
  • For Exclusive XML Canonicalization PrefixList is a multidimensional array which specifies the prefixes that are included on the IncludedNamespaces list.
    PrefixList(prefix)="" if the prefix is on the list. If PrefixList is = "c14n", then inclusive canonicalization is performed.
  • If formatXML is true, the formatting specified for XML.Writer rather than the formatting specified by the XML Canonicalization specification is used. The output is not strictly speaking canonical XML, but has done the namespace processing for canonical XML. This behavior is useful for outputting a fragment of an XML document, such as the SOAP body in the ProcessBodyNode callback from a web service, while still having some control of the format.
  • isSTR is for internal use. If true, keep xmlns="" on the APEX node as specified by WS-Security for canonicalization of XML freferenced by a SecurityTokenReference.
  • If the XML document is in MTOM format, then mimeAttachments is a mime part which contains in the Parts property the list of attachments.

◆ Document()

The <method>Document</method> method writes the XML document represented.

by the XML.Document class. The <method>Document</method> method initializes based on the properties of the <class>XML.Writer</class> instance and does the output.

document is the parse tree that represents the XML document to be output.

◆ DocumentNode()

_.Library.Status DocumentNode ( _.XML.Node  node)

The <method>DocumentNode</method> method writes the XML document represented.

by the XML.Node class. The <method>DocumentNode</method> method initializes based on the properties of the <class>XML.Writer</class> instance and does the output.

node is the parse tree that represents the XML document to be output.

◆ Element()

_.Library.Status Element (   tag,
_.Library.String  namespace 
)

<method>Element</method> outputs elements nested in the root object

of an XML document.

There are two possible polymorphic formats for the <method>Element</method> method. The element to output may be either have its name specified as a String or have the element specified as a <class>XML.Element</class> instance.

tag is the nexted element specified either as a tag name or an <class>XML.Element</class> instance.
namespace optionally specifies the default namespace for this element and any nested elements.

◆ __EndDocumentInternal()

_.Library.Status __EndDocumentInternal ( )
private

This method is for internal use only.

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 property.

◆ EndElement()

_.Library.Status EndElement ( )

<method>EndElement</method> outputs the end element for the

matching element started with the <method>Element</method> method.

◆ EndWrite()

_.Library.Status EndWrite ( )

<method>EndWrite</method> restores the current device to before matching StartWrite.

This method can be used in any part of the XML document.

◆ Object()

_.Library.Status Object ( _.XML.Adaptor  objectArg,
_.Library.String  tag,
_.Library.String  namespace,
_.Library.Boolean  local,
_.Library.String  className,
_.Library.Boolean  bare 
)

<method>Object</method> outputs objects nested in the root object

of an XML document.

  • object is the XML enabled object instance to output.

  • tag optionally specifies the tag name to be used for this element.

  • 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.

  • local specifies if the element is treated as a local element. Default is 0 (false).

  • className is the expected name of this object's class.
    If the className is specified and this class's name is not equal to the name in className, then add a xsi:type attribute to the element.

  • bare is for internal ISC use only.

◆ OutputToDevice()

_.Library.Status OutputToDevice ( )

<method>OutputToDevice</method> sets output to the current device which

is the default if no output method is specified.

◆ OutputToFile()

_.Library.Status OutputToFile ( _.Library.String  filename)

<method>OutputToFile</method> sets output to be directed to a

new file, named filename.

◆ OutputToStream()

_.Library.Status OutputToStream ( _.Library.BinaryStream  export)

<method>OutputToStream</method> sets output to be directed to a stream.

export is the exported stream.
If export is the oref of a stream, the XML document will be written to this existing stream at the current position. If export is "", then a new FileBinaryStream will be created to contain the XML document and its oref returned. In this case, export must be passed by reference.

◆ OutputToString()

_.Library.Status OutputToString ( )

<method>OutputToString</method> sets output to be directed to a string.

<method>GetXMLString<method> may be called after output is complete to a string to retrieve the output.

◆ ParsePrefixList()

ParsePrefixList ( _.Library.String  PrefixList,
  PrefixListArray 
)
static

The <method>ParsePrefixList</method> parses the PrefixList that is specified.

for Exclusive Canonicalization as a list of NMTOKENS. True (1) is returned if the parsing is successful.

◆ Reset()

_.Library.Status Reset ( )

The <method>Reset</method> method may be called after an XML.

document has been output by <method>RootObject</method> or <method>RootElement</method> to reintialize the properties and output method of the XML document.

◆ RootElement()

_.Library.Status RootElement (   root,
_.Library.String  namespace 
)

The <method>RootElement</method> method writes only the root element.

of the XML document Child elments must be written by the user. The <method>RootElement</method> method initializes based on the properties of the <class>XML.Writer</class> instance and does the output. EndRootElement() writes the final end tag and closes the output device. After EndRootElement() is called, the properties may be modified and <method>RootObject</method> or <method>RootElement</method> called again to output another document.

There are two possible polymorphic formats for the <method>RootElement</method> method. The element to output may be either have its name specified as a String or have the element specified as a <class>XML.Element</class> instance.

root is the root element specified either as a tag name or an <class>XML.Element</class> instance.
namespace optionally specifies the default namespace for this element and any nested elements.

◆ RootObject()

_.Library.Status RootObject ( _.XML.Adaptor  object,
_.Library.String  tag,
_.Library.String  namespace,
_.Library.String  className,
_.Library.Boolean  bare 
)

<method>RootObject</method> will output the document as a

single object instance and all its references.
The <method>RootObject</method> method initializes itself based on the properties of the <class>XML.Writer</class> instance and does the output. When output is complete, it writes the final end tag and closes the output device. At this point, the <class>XML.Writer</class> properties may be modified and <method>RootObject</method> or <method>RootElement</method> called again to output another document.

  • object is the XML enabled object instance to output.

  • tag optionally specifies the tag name to be used for this element.

  • 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.

  • className is the expected name of this object's class.
    If the className is specified and this class's name is not equal to the name in className, then add a xsi:type attribute to the element.

  • bare is for internal ISC use only.

If the Format="encoded" property is used and <method>RootObject</method> called, then all object instances will be output as embedded in the top level object. This is usually not desired and therefore objects to be output using SOAP encoding should usually be enclosed in by a root element using <method>RootElement</method> and <method>EndRootElement</method>.

◆ StartDocument()

_.Library.Status StartDocument ( _.Library.Boolean  allowForest)

Start output of the XML document.

If <property>allowForest</property> = true, then mutiple root nodes are allowed.

◆ __StartDocumentInternal()

_.Library.Status __StartDocumentInternal ( _.Library.Boolean  rootOK)
private

This method is for internal use only.

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 property.

◆ StartWrite()

_.Library.Status StartWrite ( )

<method>StartWrite</method> sets the current device for writing arbitrary text in the XML document without any escaping being done.

This method can be used in any part of the XML document.

◆ Tree()

_.Library.Status Tree ( _.XML.Node  node,
_.Library.Boolean  keepxmlns 
)

The <method>Tree</method> method writes the XML document node represented.

by the XML.Node class and its tree of descendants..

node is an XML.Node class that is positioned at the node to output.

◆ Write()

_.Library.Status Write (   text)

<method>Write</method> writes arbitrary text in the XML document without any escaping being done.

This method can be used in any part of the XML document.
Argument:

  • text The character data to output. Type of String or CharacterStream.

◆ WriteAttribute()

_.Library.Status WriteAttribute ( _.Library.String  name,
_.Library.String  value,
_.Library.String  namespace,
_.Library.String  valueNamespace,
_.Library.Boolean  global 
)

The <method>WriteAttribute</method> method writes an attribute for the last element started.

This method may only be called immediately after StartElement or Element.
Arguments:

  • name is the attribute name and is required.
  • value is the attribute value and is required.
  • namespace is the optional namespace for the attribute name. If namespace is not specified, then the default XML namespace is used for the attribute name.
  • valueNamespace is the namespace for the value.
    If valueNamespace is not specified (the most usual case), no namespace prefix is used for the value. valueNamespace is used for attributes like xsi:type whose value comes from an XML schema namespace.
  • global is true if the attribute is global in the associated XML schema and thus should have a prefix. Default is false.

◆ WriteBase64()

_.Library.Status WriteBase64 (   binary)

<method>WriteBase64</method> encodes the specified binary bytes as base64 and writes out the resulting text.

This method is used to write element content.
Argument:

  • binary The binary data to output. Type of Binary or BinaryStream.

◆ WriteBinHex()

_.Library.Status WriteBinHex (   binary)

<method>WriteBinHex</method> encodes the specified binary bytes as binhex and writes out the resulting text.

This method is used to write element content.
Argument:

  • binary The binary data to output. Type of Binary or BinaryStream.

◆ WriteCData()

_.Library.Status WriteCData (   text)

<method>WriteCData</method> writes XML element text in a CData section.

This method is used to write element content.
Argument:

  • text The character data to output. Type of String or CharacterStream.

◆ WriteChars()

_.Library.Status WriteChars (   text)

<method>WriteChars</method> writes XML element text performing any required escaping.

This method is used to write element content.
Argument:

  • text The character data to output. Type of String or CharacterStream.

◆ WriteComment()

_.Library.Status WriteComment (   text)

<method>WriteComment</method> writes out a comment containing the specified text.

This method can be used in any part of the XML document.
Argument:

  • text Text to place inside the comment. Type of String or CharacterStream.

◆ WriteDocType()

_.Library.Status WriteDocType ( _.Library.String  name,
_.Library.String  PublicId,
_.Library.String  SystemId,
_.Library.String  subset 
)

<method>WriteDocType</method> writes the DOCTYPE declaration with the specified name and optional attributes.

This method may only be called before the root element is written.
Arguments:

  • name The name of the DOCTYPE. This must be non-empty.
  • PublicId If non-null it also writes PUBLIC "PublicId" "SystemId" where PublicId and SystemId are replaced with the value of the given arguments.
  • SystemId If PublicId is null and SystemId is non-null it writes SYSTEM "SystemId" where SystemId is replaced with the value of this argument.
  • subset If non-null it writes [Subset] where Subset is replaced with the value of this argument.

◆ WriteProcessingInstruction()

_.Library.Status WriteProcessingInstruction ( _.Library.String  name,
_.Library.String  text 
)

<method>WriteProcessingInstruction</method> writes out a processing instruction with a

space between the name and text as follows: <?name text?>. This method may only be called outside the root element is written.
Arguments:

  • name Name of the processing instruction.
  • text Text to include in the processing instruction.

Member Data Documentation

◆ AttributeQualified

AttributeQualified

<property>AttributeQualified</property> indicates whether or not

locally declared attributes must be qualified. See attributeFormDefault schema attribute.  

◆ Base64LineBreaks

Base64LineBreaks

If <property>Base64LineBreaks</property> is true (1), then remove line breaks.

from base64 encoded XML output for all properties of type Binary or xsd.base64Binary. The default is 0 which will be to not include line breaks.  

◆ Charset

Charset

<property>Charset</property> 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. "UTF-16" is the default for output to character streams and strings.

 

◆ CurrentIndent

CurrentIndent

The current indent level.

 

◆ CycleCheck

CycleCheck

If <property>CycleCheck</property> is true (1), then any object to be.

exported is checked for cycles in the referenced classes which could result in <FRAMESTACK> error. The default is 1.  

◆ DefaultNamespace

DefaultNamespace

<property>DefaultNamespace</property> 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.  

◆ DefaultXmlns

DefaultXmlns

<property>DefaultXmlns</property> allows optional specification of the XML namespace

to use as the default XML namespace when SuppressXmlns is false.
 

◆ ElementQualified

ElementQualified

<property>ElementQualified</property> 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.  

◆ __ElementStack

__ElementStack
private

Stack of end elements for currently started elements.

ElementStack(index) == qname for element ElementStack(index,"ns") == previous default namespace  

◆ Format

Format

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.  

◆ __IdList

__IdList
private

Internal list of orefs for use by encoded output.

 

◆ Indent

Indent

Indent specifies that indentation of the XML output should take place.

 

◆ IndentChars

IndentChars

IndentChars specifies the character sequence to be used for each indent level if Indent=1.

 

◆ __IndentNext

__IndentNext
private

If true, indenting to be done for next element, comment or processing instruction.

 

◆ NoXMLDeclaration

NoXMLDeclaration

If <property>NoXMLDeclaration</property> 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.  

◆ __OrefList

__OrefList
private

Internal list of orefs for use by encoded output.

 

◆ __OutputDestination

__OutputDestination
private

Internal list of ids for use by encoded output.

Destination for XML.Writer output. Possible values are "file", "charstream", "binarystream", "charstring" and "device".  

◆ __OutputFilename

__OutputFilename
private

Filename for output to file.

 

◆ __OutputStream

__OutputStream
private

Stream for output to stream or file.

Will store a stream, but declare as RegisteredObject to prevent auto create of serial object.  

◆ __OutputTable

__OutputTable
private

Internal – translate table used for output.

 

◆ OutputTypeAttribute

OutputTypeAttribute

<property>OutputTypeAttribute</property> allows the user to force the inclusion of the xsi:type

attribute for each element of object output.  

◆ ReferencesInline

ReferencesInline

If <property>ReferencesInline</property> is 1 (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 <property>ReferencesInline</property> has immediate effect on the next object exported.  

◆ RuntimeIgnoreNull

RuntimeIgnoreNull

If XMLIGNORENULL = "runtime", then the behavior of XMLIGNORENULL.

is determined by the <property>RuntimeIgnoreNull</property> property.
<property>RuntimeIgnoreNull</property> specifies the value of XMLIGNORENULL at runtime as either 0, 1 or inputonly.
RuntimeIgnoreNull="inputonly" is equivalent to RuntimeIgnoreNull=0.  

◆ Shallow

Shallow

The <property>Shallow</property> controls shallow XML export of objects.

where referenced objects are not exported. Embedded (serial) objects will still be exported. To indicate shallow export, set <property>Shallow</property> to 1 (default is 0). Note that unlike most properties of XML.Writer, changing the value of <property>Shallow</property> has immediate effect on the next object exported.  

◆ Summary

Summary

If <property>Summary</property> is 1 (true), then export the.

summary that is specified by the XMLSUMMARY class parameter. Otherwise, export the entire object.  

◆ SuppressXmlns

SuppressXmlns

<property>SuppressXmlns</property> 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=.  

◆ __UserStream

__UserStream
private

User specified Global stream that will receive data.

Will store a stream, but declare as RegisteredObject to prevent auto create of serial object.