Home > Class Reference > ENSLIB namespace > EnsLib.EDI.XML.Schema
Private  Storage   


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",srcIndex)=[[ source schema document path ]]
Namespace defined by this schema and its inported and inlcuded schemas.
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
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)
           if name appears in more than one namespace, then name$nsIndex

   $$$vaSchemaGbl(category,elIndex,elType,name,"meta",... for meta information


Parameters Properties Methods Queries Indices ForeignKeys Triggers
1 30 39 2


Base BaseNSIndex Category CurrNode Default
IsQual ItemType LocalType LocalVal Max
MemberTypes Min MinLen Mixed Name
NameNSIndex OriginalName RefNo Rep Req
StructNode Type TypeNSIndex Use doNode
doVerbose doXType elno n0 x0

%AddToSaveSet %ClassIsLatestVersion %ClassName %ConstructClone
%DispatchClassMethod %DispatchGetModified %DispatchGetProperty %DispatchMethod
%DispatchSetModified %DispatchSetMultidimProperty %DispatchSetProperty %Extends
%GetParameter %IsA %IsModified %New
%NormalizeObject %ObjectModified %OnNew %OriginalNamespace
%PackageName %RemoveFromSaveSet %SerializeObject %SetModified
%ValidateObject DocStructuresClose DocStructuresExecute DocStructuresFetch
ElementExists GetAlias GetContentArray GetDescription
ResolveSchemaTypeToDocType TypeCategoriesClose TypeCategoriesExecute TypeCategoriesFetch
findTypeNode getTypeRef isXSDatatype mergeArray


limit depth of recursion building ContentArray "array" subscript to avoid size and time overflows


• property Base as %String;
• property BaseNSIndex as %Integer;
• property Category as %String;
• property CurrNode as %String;
• property Default as %String;
• property IsQual as %String;
• property ItemType as %String;
• property LocalType as %String;
• property LocalVal as %String;
• property Max as %String;
• property MemberTypes as %String;
• property Min as %String;
• property MinLen as %String;
• property Mixed as %Boolean;
• property Name as %String;
• property NameNSIndex as %String;
• property OriginalName as %String;
• property RefNo as %String;
• property Rep as %String;
• property Req as %String;
• property StructNode as %String;
• property Type as %String;
• property TypeNSIndex as %Integer;
• property Use as %String;
• property doNode as %Boolean;
• property doVerbose as %Boolean;
• property doXType as %Boolean;
• property elno as %String;
• property n0 as %String;
• property x0 as %String;


• 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