exip  Alpha 0.5.4
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Fields
TreeTableEntry Struct Reference

Represents a single definition (i.e XML element) from the XML schema. More...

#include <treeTableSchema.h>

Data Fields

QualifiedTreeTableEntry child
 Child element. More...
 
struct TreeTableEntrynext
 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...
 

Detailed Description

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.

Field Documentation

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.


The documentation for this struct was generated from the following file: