XML:Basic:Element

Import List

    XML:DTD
    XML:Locator
    XML:Writer
 
Class List
Element
ElementFactory
List
PCData
RootFactory
StringBuffer
Class Summary: Element [Detail]
  +--XML:Basic:Element.Element
Field Summary
next-: Element

          
Constructor Summary
InitElement(Element)

          
Method Summary
AddAttribute(String, AttValue): BOOLEAN

          Adds the attribute localName to the element elem.
AddCharacters(VAR StringVar, CharPos, CharPos)

          Adds character data to the content of element elem.
AddChild(Element)

          Adds the parsed child element child to elem.
CheckElement(): String

          Called at the very end of an XML element (after Element.MissingChild) to perform consistency checks on the whole element.
HasMixedContent(): BOOLEAN

          Returns TRUE, if element elem containes mixed content.
IsAttributeName(String): BOOLEAN

          Determines if localName is a valid name for an attribute of elem.
IsChildName(String): BOOLEAN

          Determines if localName is a valid name for a child element of elem.
MissingAttribute(): String

          Called at the end of the attribute list of a start tag to determine if any required attributes are missing.
MissingChild(): String

          Called at the end of an XML element to determine if any required child elements are missing.
NewChild(String): Element

          Creates a new instance of the child element if the child can appear at the current place in the element.
SetLocator(Locator)

          Using the locator l, the context of the element and its attributes can be determined.
Write(Writer)

          Serializes the object elem into an XML element.
 
Class Summary: ElementFactory [Detail]
  +--XML:Basic:Element.ElementFactory
 
Class Summary: List [Detail]
  +--XML:Basic:Element.List
Field Summary
head-: Element

          
tail-: Element

          
Constructor Summary
NewList(): List

          
Method Summary
Append(Element)

          
IsEmpty(): BOOLEAN

          
Write(Writer)

          
 
Class Summary: PCData [Detail]
  +---XML:Basic:Element.Element
       |
       +--XML:Basic:Element.PCData
Field Summary
chars-: StringBuffer

          
Inherited Fields

From XML:Basic:Element.Element:

          next

Constructor Summary
InitPCData(PCData)

          
NewPCData(): PCData

          
Method Summary
AddCharacters(VAR StringVar, CharPos, CharPos)

          Adds character data to the content of element pcdata.
Normalize(BOOLEAN, BOOLEAN)

          
Write(Writer)

          Serializes the object pcdata into an XML element.
Inherited Methods

From XML:Basic:Element.Element:

          AddAttribute, AddCharacters, AddChild, CheckElement, HasMixedContent, IsAttributeName, IsChildName, MissingAttribute, MissingChild, NewChild, SetLocator, Write

 
Class Summary: RootFactory [Detail]
  +--XML:Basic:Element.RootFactory
Constructor Summary
NewRootFactory(): RootFactory

          
Method Summary
AddFactory(StringVar, FactoryFunction)

          
NewElement(String): Element

          Called with the name of the root element of an XML document.
 
Class Summary: StringBuffer [Detail]
  +--XML:Basic:Element.StringBuffer
Field Summary
array-: String

          
length-: LONGINT

          
Constructor Summary
NewStringBuffer(StringVar): StringBuffer

          
Method Summary
AddCharacters(VAR StringVar, CharPos, CharPos)

          
 
Type Summary
AttValue = AttValue

          
CharPos = CharPos

          
FactoryFunction = (): Element

          
String = String

          
StringVar = StringVar

          
Procedure Summary
NewString(StringVar): String

          

Class Detail: Element
Field Detail

next

FIELD next-: Element
Constructor Detail

InitElement

PROCEDURE InitElement(elem: Element)
Method Detail

AddAttribute

PROCEDURE (elem: Element) AddAttribute(localName: String; 
                       value: AttValue): BOOLEAN

Adds the attribute localName to the element elem. If the attribute value value is valid, result is TRUE. Otherwise, this functions returns FALSE and the parser will generate an appropriate error message. The default implementation always returns FALSE.


AddCharacters

PROCEDURE (elem: Element) AddCharacters(VAR chars: StringVar; 
                        charsStart: CharPos; 
                        charsEnd: CharPos)

Adds character data to the content of element elem. The new characters are in the character interval `chars[charsStart..charsEnd-1]'.


AddChild

PROCEDURE (elem: Element) AddChild(child: Element)

Adds the parsed child element child to elem. The object child was previously created with Element.NewChild.


CheckElement

PROCEDURE (elem: Element) CheckElement(): String

Called at the very end of an XML element (after Element.MissingChild) to perform consistency checks on the whole element. For example, this method makes sure that the combination of attributes and content does not violate any rules of the application.

Result is an error message if some part of the element is invalid, and NIL on success. By default, NIL is returned.

Any code that should be evaluted if an element is completed, should be placed in this method.


HasMixedContent

PROCEDURE (elem: Element) HasMixedContent(): BOOLEAN

Returns TRUE, if element elem containes mixed content. In this case, the element may contain character data other than whitespace. For element that has only element content, Element.AddCharacters is not called, and an error is signalled if the element content includes non-whitespace characters. By default, element-only content is assumed.


IsAttributeName

PROCEDURE (elem: Element) IsAttributeName(localName: String): BOOLEAN

Determines if localName is a valid name for an attribute of elem. If result is FALSE, the parser will generate an appropriate error message. By default, all attribute names are rejected.


IsChildName

PROCEDURE (elem: Element) IsChildName(localName: String): BOOLEAN

Determines if localName is a valid name for a child element of elem. If result is FALSE, the parser will generate an appropriate error message. By default, all child names are rejected.


MissingAttribute

PROCEDURE (elem: Element) MissingAttribute(): String

Called at the end of the attribute list of a start tag to determine if any required attributes are missing. Result is the name of one of the missing attributes, or NIL if all required attributes are present. The default behavious is to return NIL.


MissingChild

PROCEDURE (elem: Element) MissingChild(): String

Called at the end of an XML element to determine if any required child elements are missing. Result is the name of one of the missing childs, or NIL if all required child elements are present. By default, NIL is returned.


NewChild

PROCEDURE (elem: Element) NewChild(localName: String): Element

Creates a new instance of the child element if the child can appear at the current place in the element. Otherwise, it returns NIL. The default implementation always returns NIL.


SetLocator

PROCEDURE (elem: Element) SetLocator(l: Locator)

Using the locator l, the context of the element and its attributes can be determined. This can be used to get the base URI relative to which an URI attribute value should be expanded. This method is called after an element has been created, and before any attribute or content data is passed on to it.


Write

PROCEDURE (elem: Element) Write(writer: Writer)

Serializes the object elem into an XML element. The data is generated with the writer writer.

 
Class Detail: ElementFactory
 
Class Detail: List
Field Detail

head

FIELD head-: Element

tail

FIELD tail-: Element
Constructor Detail

NewList

PROCEDURE NewList(): List
Method Detail

Append

PROCEDURE (list: List) Append(elem: Element)

IsEmpty

PROCEDURE (list: List) IsEmpty(): BOOLEAN

Write

PROCEDURE (list: List) Write(w: Writer)
 
Class Detail: PCData
Field Detail

chars

FIELD chars-: StringBuffer
Constructor Detail

InitPCData

PROCEDURE InitPCData(pcdata: PCData)

NewPCData

PROCEDURE NewPCData(): PCData
Method Detail

AddCharacters

PROCEDURE (pcdata: PCData) AddCharacters(VAR chars: StringVar; 
                        charsStart: CharPos; 
                        charsEnd: CharPos)

Adds character data to the content of element pcdata. The new characters are in the character interval `chars[charsStart..charsEnd-1]'.

[Description inherited from AddCharacters]

Redefines: AddCharacters


Normalize

PROCEDURE (pcdata: PCData) Normalize(stripLeadingWS: BOOLEAN; 
                    stripTrailingWS: BOOLEAN)

Write

PROCEDURE (pcdata: PCData) Write(writer: Writer)

Serializes the object pcdata into an XML element. The data is generated with the writer writer.

[Description inherited from Write]

Redefines: Write

 
Class Detail: RootFactory
Constructor Detail

NewRootFactory

PROCEDURE NewRootFactory(): RootFactory
Method Detail

AddFactory

PROCEDURE (rf: RootFactory) AddFactory(name: StringVar; 
                     gen: FactoryFunction)

NewElement

PROCEDURE (rf: RootFactory) NewElement(name: String): Element

Called with the name of the root element of an XML document. Result is a new instance of the element if the name is valid, or NIL otherwise.

 
Class Detail: StringBuffer
Field Detail

array

FIELD array-: String

length

FIELD length-: LONGINT
Constructor Detail

NewStringBuffer

PROCEDURE NewStringBuffer(value: StringVar): StringBuffer
Method Detail

AddCharacters

PROCEDURE (sb: StringBuffer) AddCharacters(VAR chars: StringVar; 
                        charsStart: CharPos; 
                        charsEnd: CharPos)
 
Type Detail

AttValue

TYPE AttValue = AttValue

CharPos

TYPE CharPos = CharPos

FactoryFunction

TYPE FactoryFunction = (): Element

String

TYPE String = String

StringVar

TYPE StringVar = StringVar
Procedure Detail

NewString

PROCEDURE NewString(value: StringVar): String