Open Exchange
Global Masters
Home / Class Reference / ENSLIB namespace / EnsLib.EDI.XML.Prop
Private  Storage   


class EnsLib.EDI.XML.Prop extends

This class encapsulates an XML document stream and provides methods to interrogate and update it Two types of path strings can be used to identify a document node: a 'Property path' that is based in a particular XML schema definition (xsd), irrespective of any particular document instance, or a 'DOM path' that is based in the structure of a particular document irrespective of any XML schema. The DOM Path uses XPATH conventions; it always starts with '/' while a Property Path never does.


Parameters Properties Methods Queries Indices ForeignKeys Triggers
4 16


%CalcCache %CalcCacheRef %CalcCount %ContentHandlerStatus
%ContentRef %DOMCache %DOMCacheRef %DocTypeRef
%FindCache %FindCacheRef %MaxCalcCache %ParseCache
%PropCache %PropCacheRef %PurgeIndex %SkipFind
%XMLDoc %saveParentDOMPath %storedContentRef DOMCacheSave
DOMSaveName DocType DocTypeCategory DocTypeName
Format GlobalName HandlerType Identifier
IsMutable KeepWhitespace Level Name
OriginalDocId RawContent SSLConfiguration SchemaStatus
Source TimeCreated Timeout TypeVersion
UserValues attributeCount attributeSub buildRoot
controlblock currentElement namespaceMapping noNamespaceSchemaLocation
pAfterCNode pDSubs pDSubsList pOrdinal
prevElem replace schemaLocation skipSlide

%%OIDGet %AddToSaveSet %BindExport
%BuildObjectGraph %ClassIsLatestVersion %ClassName
%Close %CompareContents %ConstructClone
%DispatchClassMethod %DispatchGetModified %DispatchGetProperty
%DispatchMethod %DispatchSetModified %DispatchSetMultidimProperty
%DispatchSetProperty %DrawHTMLForm %DrawHTMLTable
%Extends %GetContentType %GetParameter
%IncrementCount %IsA %IsModified
%New %NormalizeObject %ObjectModified
%OnTimeout %OriginalNamespace %PackageName
%ProcessSubmit %RemoveFromSaveSet %SerializeObject
%SetModified %ShowContents %ShowContentsHead
%ValidateObject AppendToDom AssertSameParent
Buffer ConditionallyGetElementOrLocal ConditionallyRemoveNSPrefix
ContentOnlyContainsText CopyValues CoverageInit
CoverageStatistics DocTypeSet DomOnlyContainsText
DrawFormButtons DrawHTMLContentsForm DrawHTMLForm
EnumerateDocTypesClose EnumerateDocTypesExecute EnumerateDocTypesFetch
EnumerateTypeCategoriesClose EnumerateTypeCategoriesExecute EnumerateTypeCategoriesFetch
EnumerateVDocsClose EnumerateVDocsExecute EnumerateVDocsFetch
GatherDOMValue GetAlias GetContentArray
GetManagerLinks GetNewManagerLinks GetNextIndex
GetStatsDimension GetValueAt IsMutableSet
LocatePosition Mask NormalizeElementNamespacePrefix
NormalizeNamespacePrefix OnPostParse PokeDocType
PopHandler PushHandler ReadString
SchematizeNamespace SetValueAt TypeVersionGet
Validate addNamespacesNotYetOutputted calcISubscript
calcInsertIndex characters choiceGetCount
choiceGetIndex comment createAttrOrNamespaceIndex
createIndex createNonExistent createNonExistentNode
dom2SlideElementNodes domEQ domElemNode
domElementNormalize domElementRemove domElementSort
domGE domGT domGetAllNamespaces
domGetAttrs domGetElemCounts domGetLocalName
domGetNamespaceHelper domGetNamespaceURI domGetNamespaces
domGetNextChild domGetNodeCounts domGetQName
domGetSubtree domGetValueAt domIncreaseElementNodes
domLE domLT domLookUpAttrNumber
domNodeRemove domNonElementSort domParsePath
domParsePathElem domRemoveAttribute domRemoveAttributeNode
domRemoveElementNodes domRemoveNonElementNodes domSeekPositionOfElement
domSeekPositionOfNode domSetAtIndex domSetValueAt
domSetValueAt1 domSlideElementNodes domSlideNodes
domValidate domValidateDOMSubs endCDATA
endDTD endDocument endElement
endEntity endPrefixMapping equalElement
error fatalError findIndex
findLast findTextAfterCNode getTestNewArg
ignorableWhitespace initNSContext listToNodes
lookupAttributeNumber nodesToList parseValueTree
processingInstruction propGetCount propGetDOMPathValue
propGetValueAt propParsePath propSetValueAt
recordNSPDeclarations setAllElementToAttribute setDOMNode
skippedEntity startCDATA startDTD
startDocument startElement startEntity
startPrefixMapping syncDOMChild syncToDOMCache
validateAnyXML validateDOM value



• property %DocTypeRef as %String(MAXLEN="") [ Transient,ReadOnly ];
• property SSLConfiguration as %String(MAXLEN="") [ Transient ];
• property SchemaStatus as %Status [ Transient,ReadOnly ];
The status of attempt to validate document contents against the document structure currently specified in the DocType property, or empty if the document gets updated later or the schema is discarded. Note that the schema validation is not done automatically when a saved document gets opened.
• property Timeout as %Integer [ Transient ];


• method DocTypeSet(pDocType As %String) as %Status
This is a Set accessor method for the DocType property.
• method GetNextIndex(pPath As %String, pIndex As %String, ByRef pStatus As %Status = $$$OK) as %String
Gets the next index in a collection
• method PokeDocType(pDocType As %String) as %Status
• method choiceGetCount(Output pCount, pDOMPath As %String, pRef As %String) as %Status
Get count of the elements inside a repeating choice() element. This is more tricky than for normal elements because choice excluded from DOM path
• method choiceGetIndex(pGrpIndex As %Integer, pPropPath As %String, pDOMPath As %String, pRef As %String, Output pDOMIndex As %Integer, Output pElemName As %String) as %Status
Since choice() does not appear in the DOM path we must figure out which index pDOMIndex within the parent of choice() corresponds to the index pGrpIndex within choice(). We find the name pElemName of the element at this index so that we will know whether the name at this index matches that used in the property path pPropPath
• method initNSContext(pDSubs As %String, ByRef pNSContext) as %Status
Drill from the start to the end of pDSubs path, accumulating the Namespace context to the end level
• method parseValueTree(pValue As %String, Output tVal, pPropSubs As %String, ByRef pNSContext) as %Status
Validate the input pValue, and if it contains XML elements parse them into a PropsArray style array structure rooted at pPropSubs in the Props array
• method propGetCount(Output pCount, pPropPath As %String, pDOMPath As %String, pDSubs As %String, pPSubs As %String, pRef As %String, ByRef pNSContext) as %Status
• method propGetDOMPathValue(ByRef pDOMPath, Output pPropPath, Output pValue, Output pDSubs, Output pPSubs, ByRef pSchemaRef As %String = "", ByRef pNSContext, Output pStatus As %Status) as %Boolean
Get Props array value based on given DOM path if possible. If not then return the subscripts for the most specific property path within which the given DOM path is encompassed and syncing is required
• method propGetValueAt(Output pValue As %String, pPropPath As %String, pFormat As %String) as %Status
• method propParsePath(pPropPath As %String, pMode As %String, Output pDOMPath As %String, Output pCSubs As %String = "", Output pDSubs As %String = "", Output pPSubs As %String, Output pRef As %String, Output pNodeType As %String, Output pNodeIndex As %String, Output pNodeValue As %String, Output pNSContext As %String, Output pDone As %Boolean, pFormat As %String = "") as %Status
Parse a 'Prop' (schema-based) path, constructing both DOM and Property subscript lists that correspond to it, as well as a corresponding DOM path
• method propSetValueAt(pValue As %String, pPropPath As %String, pAction As %String = "set", pKey As %String = "") as %Status
• method setDOMNode(pValue, ByRef pDupYet As %Boolean, iCurrProp As %Integer, ByRef iPrevProp As %Integer, pSchemaRef As %String, ByRef pPrevDElem As %Integer, pDOMPath As %String, pDSubs As %String, pDChildCount As %Integer, ByRef pNSContext) as %Status
Find the DOM spot where we should insert this new property
• method syncDOMChild(pKillAfter As %Boolean, pPropPath As %String, ByRef pDOMPath As %String, ByRef pDSubs As %String, ByRef pPSubs As %String, ByRef pSchemaRef As %String, ByRef pNSContext) as %Status
Migrate the %PropCache contents to %DOMCache so they are in sync Start from given PropPath or DOMPath, use subscripts if given, otherwise compute them as needed
• method syncToDOMCache(pKillAfter As %Boolean = 0, pPropPath As %String = "", ByRef pDOMPath As %String = "", ByRef pDSubs As %String = "_", ByRef pPSubs As %String = "_", ByRef pSchemaRef As %String = "", ByRef pNSContext) as %Status
Migrate the %PropCache contents to %DOMCache so they are in sync Start from given PropPath or DOMPath, use subscripts if given, otherwise compute them as needed Must clean >x=r Prop subscripts and renumber after sync removes the corresponding DOM elements
• method validateAnyXML(pXMLVal As %String) as %Status