exip
Alpha 0.5.4
|
Represents a single definition (i.e XML element) from the XML schema. More...
#include <treeTableSchema.h>
Data Fields | |
QualifiedTreeTableEntry | child |
Child element. More... | |
struct TreeTableEntry * | next |
Next element in group. More... | |
QualifiedTreeTableEntry | supertype |
Element corresponding to a supertype. More... | |
ElemEnum | element |
The XML schema element. More... | |
String | attributePointers [ATTRIBUTE_CONTEXT_ARRAY_SIZE] |
In case of attributes that are part of the definition, their values are stored as a string in this array. More... | |
Index | loopDetection |
Loops occur in the XSD due to <xs:element ref="element-containing-recursive-declaration" ...> in a complex type. More... | |
For example: [element] entry, [complexType], [attribute] entry etc. The entry contains all the attribute values defined as well as links to nested entries, parent entries and sibling entries.
Definition at line 175 of file treeTableSchema.h.
String TreeTableEntry::attributePointers[ATTRIBUTE_CONTEXT_ARRAY_SIZE] |
The index is the code of the attribute whose value is stored.
Definition at line 199 of file treeTableSchema.h.
QualifiedTreeTableEntry TreeTableEntry::child |
It is either a nested element or a link to a global definition. The global definition is linked during resolveTypeHierarchy(). In this case a local entry with type="..." (or ref="...") attribute is linked to a global entry that defines the corresponding type or referenced element. The linked global entry can be located in different tree (XSD file);
Definition at line 182 of file treeTableSchema.h.
ElemEnum TreeTableEntry::element |
Represented with the codes defined above
Definition at line 195 of file treeTableSchema.h.
Index TreeTableEntry::loopDetection |
When the code in treeTableToGrammars.c handleElementEl() starts processing such element it has to perform two things: 1) create a grammar production SE(qname) 2) link the grammar that describes this element to that production. When such grammar does not exists it tries to build it. But in order to build it it ends up at the same <xs:element ref="element-containing-recursive-declaration" ...> due to the recursive declaration. The idea to solve it: break the second try to process the complex type that contains <xs:element ref="element-containing-recursive-declaration" ...> loopDetection == 0 -> the first time the TreeTableEntry is processed loopDetection == INDEX_MAX -> the TreeTableEntry was processed once 0 < loopDetection < INDEX_MAX -> GrammarIndex of the Grammar table for complex grammar
Definition at line 214 of file treeTableSchema.h.
struct TreeTableEntry* TreeTableEntry::next |
For example the [element], [attribute], [sequence] are often sibling definitions in a complex type
Definition at line 186 of file treeTableSchema.h.
QualifiedTreeTableEntry TreeTableEntry::supertype |
In case of [extension] or [restriction] entries, this pointer links the base type to the corresponding global type definition. The linked global entry can be located in different tree (XSD file);
Definition at line 192 of file treeTableSchema.h.