DocBook|Search
Class Reference
%XML.Reader
   
Server:basexml
Instance:SOAXML
User:UnknownUser
 
-
  [USER] >  [%XML] >  [Reader]
Private  Storage  

class %XML.Reader extends %RegisteredObject

XML Objects Reader class. A usage example follows:

	#include %occStatus
	// Create a new XML Reader class
	Set reader = ##class(%XML.Reader).%New()
	// Begin processing of the XML input
	Set sc=reader.OpenFile(filename)
	If $$$ISERR(sc) Do $system.OBJ.DisplayError(sc) Quit  
	// Associate a class name with the XML element name
	Do reader.Correlate("Person","Sample.Person")
	// read Sample.Person objects from xml file
	Set Count=0
	While reader.Next(.person,.sc) {
	    Write person.Name_" imported.",!
	    Set Count=Count+1
	    Set sc=person.%Save()
	    If $$$ISERR(sc) Do $system.OBJ.DisplayError(sc) Quit  
	}
	If $$$ISERR(sc) Do $system.OBJ.DisplayError(sc) Quit  
	Write Count_" Sample.Person instances found."

Inventory

Parameters Properties Methods Queries Indices ForeignKeys Triggers
15 13


Summary

Properties
Document EntityResolver Format IgnoreNull
IgnoreSAXWarnings Node SAXFlags SAXMask
SAXSchemaSpec Summary

Methods
%%OIDGet %AddToSaveSet %ClassIsLatestVersion %ClassName
%ConstructClone %DispatchClassMethod %DispatchGetModified %DispatchGetProperty
%DispatchMethod %DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty
%Extends %GetParameter %IsA %IsModified
%New %NormalizeObject %ObjectModified %OriginalNamespace
%PackageName %RemoveFromSaveSet %SerializeObject %SetModified
%ValidateObject Close Correlate CorrelateRoot
Next NodeSet OpenFile OpenStream
OpenString OpenURL Rewind


Properties

• property Document as %XML.Document;
The %XML.Document that holds the parsed XML document.
• property EntityResolver as %XML.SAX.EntityResolver;
This property should be set to an instance of %XML.SAX.EntityResolver OR a user-defined subclass IF the default EntityResolver is not required
• property Format as %String;
The format of the XML document: "literal", "encoded" or "encoded12". This parameter may be overriden by the Open... format parameter.
• property IgnoreNull as %String [ InitialExpression = 0 ];
The runtime specification of the XMLIGNORENULL parameter to %XML.Adaptor. IgnoreNull specifies the value of XMLIGNORENULL at runtime as either 0, 1 or inputonly. IgnoreNull="inputonly" is equivalent to IgnoreNull=1.
• property IgnoreSAXWarnings as %Boolean [ InitialExpression = 0 ];
If true (1), then any warnings from the SAX parser will be not be reported and ignored.
• property Node as %String;
Current node in tree representation of XML document. Note that 0 means the document itself, i.e. the parent of the root element.
• property SAXFlags as %Integer [ InitialExpression = $$$SAXFULLDEFAULT ];
This property should be set to a combination of flags (see %occSAX.inc for details) if the default behavior of the parser is required to be modified
• property SAXMask as %Integer [ InitialExpression = $$$SAXCONTENTEVENTS ];
The SAXMask property is kept for compatibility only. The best mask is now computed and this property ignored.
• property SAXSchemaSpec as %String;
This property specifies the schema specifications that should be used when validating the document. See %XML.SAX.Parser for a full description of this property.
• property Summary as %Boolean [ InitialExpression = 0 ];
If true (1), then only the summary fields should be imported by the %XML.Adaptor.

Methods

• method Close()
Close and cleanup the %XML.Document. This method is included for backward compatibility. The %XML.Document will be cleaned up anyway during object cleanup.
• method Correlate(element As %String, class As %String, namespace As %String)
Correlate() defines an XML Element to Cache' Class correlation. Any elements encountered by Next() that are in the correlation table will cause the correlated class to be instantiated and its XMLImport method to be called with the current XML node passed as a parameter. Further examination of child nodes is skipped for correlated elements.

Matching of elements is based on the element name that is specified in the element argument. If the namespace argument is also specified, then the XML namespace of the element must also match.
• method CorrelateRoot(class As %String)
CorrelateRoot defines the root element to be correlated to the specified class. The root element when encountered by Next() will cause the correlated class to be instantiated and its XMLImport method to be called with the root XML node passed as a parameter. Further examination of child nodes is skipped for correlated elements.
• method Next(ByRef oref As %ObjectHandle, ByRef sc As %Status, namespace As %String = "") as %Integer
Get and return the next object.

Next returns 1 (true), if the next object matching one of the Correlate criteria is found and successfully imported.
Next returns 0 (false) and a %Status of $$$OK in sc after all objects have been imported.
Next returns 0 (false) and an error %Status in sc, if an error has occurred importing this object.

The namespace argument indicates the default namespace for this XML file.

• method OpenFile(xmlsource As %String, format As %String) as %Status
Import XML source from a file using %XML.Document.
• method OpenStream(xmlsource As %AbstractStream, format As %String) as %Status
Import XML source from a stream object using %XML.Document.
• method OpenString(xmlsource As %String, format As %String) as %Status
Import XML source from a string using %XML.Document.
• method OpenURL(xmlsource As %String, format As %String, httprequest As %Net.HttpRequest) as %Status
Import XML source from a URL using %XML.Document. If httprequest argument is specified, then this will be used as the %Net.HttpRequest object to open the URL.
To open https URLs:
		set reader=##class(%XML.Reader).%New()
		set httprequest=##class(%Net.HttpRequest).%New()
		set httprequest.SSLConfiguration="...."
		set status=reader.OpenURL("https://.....",,httprequest)
• method Rewind()
Restart reading at the beginning of the XML document. All correlations are cleared and Correlate must be called again for the required elements.