class EnsLib.EDI.XML.Schema
extends %RegisteredObject
VDoc Schema classmethods and queries
also instance of local parser state
Data structure built in $$$vaSchemaGbl(category) for schema associatedc with category.
Source documents for this schema and imported/inlcuded schemas.
$$$vaSchemaGbl(category,"src")=srcCount
$$$vaSchemaGbl(category,"src",srcIndex)=[[ source schema document path ]]
Namespace defined by this schema and its inported and inlcuded schemas.
$$$vaSchemaGbl(category,"ns","targ")=targetNamespace
$$$vaSchemaGbl(category,"ns","index",namespaceURI)=nsIndex
$$$vaSchemaGbl(category,"ns","list",nsIndex,"AttributeQualified")=attributeFormDefault
$$$vaSchemaGbl(category,"ns","list",nsIndex,"ElementQualified")=elementFormDefault
$$$vaSchemaGbl(category,"ns","list",nsIndex,"Package")=packageName
$$$vaSchemaGbl(category,"ns","list",nsIndex,"Prefix")=prefix
$$$vaSchemaGbl(category,"ns","list",nsIndex,"uri")=namespaceURI
Document Property Structure by type used to show content array
$$$vaSchemaGbl(category,"p","Element:Structure)=# of children
$$$vaSchemaGbl(category,"p","Element:Structure,1..n,"name")=Name of child
$$$vaSchemaGbl(category,"p","Element:Structure,1..n,"type")=Type (Element:Structure) of child
Documentation nodes contained in top level annotation node.
$$$vaSchemaGbl(category,"desc")=elIndex,... (may have multiple documentation nodes.
Raw schema document elements.
$$$vaSchemaGbl(category,elIndex,...) describes an element from the schema document.
$$$vaSchemaGbl(category,elIndex,"ch")=childElIndex ; element index of each child element
$$$vaSchemaGbl(category,elIndex,"chars")=text associated with node
If the schema element
$$$vaSchemaGbl(category,elIndex)=$lb("schema")
An element node of the schema
$$$vaSchemaGbl(category,elIndex,"local")=element ("element", "attribute", etc)
$$$vaSchemaGbl(category,elIndex,"src")=srcIndex (see source list above)
$$$vaSchemaGbl(category,elIndex,"attrs",attrName)=value (for each attribute of the schema element.)
General information for top level schema elements
elType="DS": element (DocType)
elType="CT": complexType
elType="ST": simpleType or attribute
elType="CG": group or attributeGroup
$$$vaSchemaGbl(category,elIndex,"")=elIndex,... (multiple elIndex allowed (e.g. for elewment and complexType)
$$$vaSchemaGbl(category,elIndex,"",elIndex)=elType
$$$vaSchemaGbl(category,elIndex,elType,name)=elIndex
$$$vaSchemaGbl(category,elIndex,elType,name,"ns")=nsIndex
if name appears in more than one namespace, then name$nsIndex
$$$vaSchemaGbl(category,elIndex,elType,name,"meta",... for meta information
"ns")=$$$vaSchemaGbl(category,elIndex,elType,name,"ns")
parameter MAXCONTENTARRAYDEPTH = 20;
limit depth of recursion building ContentArray "array" subscript to avoid size and time overflows
method %OnNew(catnode)
as %Status
This callback method is invoked by the %New method to
provide notification that a new instance of an object is being created.
If this method returns an error then the object will not be created.
It is passed the arguments provided in the %New call.
When customizing this method, override the arguments with whatever variables and types you expect to receive from %New().
For example, if you're going to call %New, passing 2 arguments, %OnNew's signature could be:
Method %OnNew(dob as %Date = "", name as %Name = "") as %Status
If instead of returning a %Status code this returns an oref and this oref is a subclass of the current
class then this oref will be the one returned to the caller of %New method.
classmethod DocStructuresClose(ByRef qHandle As %Binary)
as %Status
classmethod DocStructuresExecute(ByRef qHandle As %Binary, Category As %String = "", IncludeBase As %Boolean = 0)
as %Status
classmethod DocStructuresFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0)
as %Status
classmethod ElementExists(pElementSpec As %String = "")
as %Boolean
classmethod GetAlias(pContentArrayName As %String, pArrayPos As %String)
as %String
This method computes the Alias string for a property name, given the property's node in the Content Array.
classmethod GetContentArray(Output pContents, pMode As %String = "source", pType As %String = "", pLevel As %Integer = "", pIncludeBase As %Boolean = 0, pElem As %String = "DS", pNodeAddr="-1")
as %Status
Get all properties for a given document structure
classmethod GetDescription(pElementSpec As %String, pItem As %Integer = "")
as %String
Get the description of an item or an indexed piece of an item
classmethod ResolveSchemaTypeToDocType(pSchemaCategory As %String, pTypeName As %String, Output pStatus As %Status, pDoc As EnsLib.EDI.XML.Document = $$$NULLOREF)
as %String
Given a Schema category and a Document TypeName string, return the corresponding DocType (document structure)
classmethod TypeCategoriesClose(ByRef qHandle As %Binary)
as %Status
classmethod TypeCategoriesExecute(ByRef qHandle As %Binary, Standard As %String = "")
as %Status
classmethod TypeCategoriesFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0)
as %Status
method findTypeNode(pStructType, Output pStatus)
as %Integer
classmethod getTypeRef(pCategory, pStructType, Output pStatus=$$$OK)
as %String
Drill down until we find a type that has properties, return a schema refrerence to it
classmethod isXSDatatype(pKey As %Integer, pSchemaCategory As %String, pType As %String, pTypeNSIndex As %String)
as %Boolean
classmethod mergeArray(Output pContents, pMode As %String, pType, pElem, pNodeAddr, pMaxLevels As %Integer = 0)
as %Status
query DocStructures(Category As %String = "", IncludeBase As %Boolean = 0)
Selects
DocStructure As %String, Description As %String
Returns a list of available DocTypes for the corresponding document class.
The DocType is returned as the first column in the result set.
The Category parameter can be used to restrict the list.
If Category is:
0 - return only DocTypes in standard categories
+ - return only DocTypes in user-defined categories
empty - return DocTypes from all categories
a category name - return only DocTypes in the named category
a partial name suffixed with '%' - return only DocTypes in categories matching the partial category name
other - return nothing
If IncludeBase is:
0 - return only DocTypes defined in the current schema category itself
1 - return all DocTypes in the current schema category's base category in addition to those defined in the current category itself
query TypeCategories(Standard As %String = "")
Selects
Category As %String, Description As %String, IsStandard As %Boolean, Base As %String