parserInternals

Name

parserInternals —

Synopsis



#define     IS_CHAR                         (c)
#define     IS_BLANK                        (c)
#define     IS_BASECHAR                     (c)
#define     IS_DIGIT                        (c)
#define     IS_COMBINING                    (c)
#define     IS_EXTENDER                     (c)
#define     IS_IDEOGRAPHIC                  (c)
#define     IS_LETTER                       (c)
#define     IS_PUBIDCHAR                    (c)
#define     SKIP_EOL                        (p)
#define     MOVETO_ENDTAG                   (p)
#define     MOVETO_STARTTAG                 (p)
xmlParserCtxtPtr xmlCreateDocParserCtxt     (CHAR *cur);
xmlParserCtxtPtr xmlCreateFileParserCtxt    (const char *filename);
xmlParserCtxtPtr xmlCreateMemoryParserCtxt  (char *buffer,
                                             int size);
void        xmlFreeParserCtxt               (xmlParserCtxtPtr ctxt);
void        xmlHandleEntity                 (xmlParserCtxtPtr ctxt,
                                             xmlEntityPtr entity);
xmlParserInputPtr xmlNewEntityInputStream   (xmlParserCtxtPtr ctxt,
                                             xmlEntityPtr entity);
void        xmlPushInput                    (xmlParserCtxtPtr ctxt,
                                             xmlParserInputPtr input);
CHAR        xmlPopInput                     (xmlParserCtxtPtr ctxt);
void        xmlFreeInputStream              (xmlParserInputPtr input);
xmlParserInputPtr xmlNewInputFromFile       (xmlParserCtxtPtr ctxt,
                                             const char *filename);
CHAR*       xmlSplitQName                   (const CHAR *name,
                                             CHAR **prefix);
CHAR*       xmlNamespaceParseNCName         (xmlParserCtxtPtr ctxt);
CHAR*       xmlNamespaceParseQName          (xmlParserCtxtPtr ctxt,
                                             CHAR **prefix);
CHAR*       xmlNamespaceParseNSDef          (xmlParserCtxtPtr ctxt);
CHAR*       xmlParseQuotedString            (xmlParserCtxtPtr ctxt);
void        xmlParseNamespace               (xmlParserCtxtPtr ctxt);
CHAR*       xmlParseName                    (xmlParserCtxtPtr ctxt);
CHAR*       xmlParseNmtoken                 (xmlParserCtxtPtr ctxt);
CHAR*       xmlParseEntityValue             (xmlParserCtxtPtr ctxt,
                                             CHAR **orig);
CHAR*       xmlParseAttValue                (xmlParserCtxtPtr ctxt);
CHAR*       xmlParseSystemLiteral           (xmlParserCtxtPtr ctxt);
CHAR*       xmlParsePubidLiteral            (xmlParserCtxtPtr ctxt);
void        xmlParseCharData                (xmlParserCtxtPtr ctxt,
                                             int cdata);
CHAR*       xmlParseExternalID              (xmlParserCtxtPtr ctxt,
                                             CHAR **publicID,
                                             int strict);
void        xmlParseComment                 (xmlParserCtxtPtr ctxt,
                                             int create);
CHAR*       xmlParsePITarget                (xmlParserCtxtPtr ctxt);
void        xmlParsePI                      (xmlParserCtxtPtr ctxt);
void        xmlParseNotationDecl            (xmlParserCtxtPtr ctxt);
void        xmlParseEntityDecl              (xmlParserCtxtPtr ctxt);
int         xmlParseDefaultDecl             (xmlParserCtxtPtr ctxt,
                                             CHAR **value);
xmlEnumerationPtr xmlParseNotationType      (xmlParserCtxtPtr ctxt);
xmlEnumerationPtr xmlParseEnumerationType   (xmlParserCtxtPtr ctxt);
int         xmlParseEnumeratedType          (xmlParserCtxtPtr ctxt,
                                             xmlEnumerationPtr *tree);
int         xmlParseAttributeType           (xmlParserCtxtPtr ctxt,
                                             xmlEnumerationPtr *tree);
void        xmlParseAttributeListDecl       (xmlParserCtxtPtr ctxt);
xmlElementContentPtr xmlParseElementMixedContentDecl
                                            (xmlParserCtxtPtr ctxt);
xmlElementContentPtr xmlParseElementChildrenContentDecl
                                            (xmlParserCtxtPtr ctxt);
int         xmlParseElementContentDecl      (xmlParserCtxtPtr ctxt,
                                             CHAR *name,
                                             xmlElementContentPtr *result);
int         xmlParseElementDecl             (xmlParserCtxtPtr ctxt);
void        xmlParseMarkupDecl              (xmlParserCtxtPtr ctxt);
int         xmlParseCharRef                 (xmlParserCtxtPtr ctxt);
xmlEntityPtr xmlParseEntityRef              (xmlParserCtxtPtr ctxt);
void        xmlParseReference               (xmlParserCtxtPtr ctxt);
void        xmlParsePEReference             (xmlParserCtxtPtr ctxt);
void        xmlParseDocTypeDecl             (xmlParserCtxtPtr ctxt);
CHAR*       xmlParseAttribute               (xmlParserCtxtPtr ctxt,
                                             CHAR **value);
CHAR*       xmlParseStartTag                (xmlParserCtxtPtr ctxt);
void        xmlParseEndTag                  (xmlParserCtxtPtr ctxt,
                                             CHAR *tagname);
void        xmlParseCDSect                  (xmlParserCtxtPtr ctxt);
void        xmlParseContent                 (xmlParserCtxtPtr ctxt);
void        xmlParseElement                 (xmlParserCtxtPtr ctxt);
CHAR*       xmlParseVersionNum              (xmlParserCtxtPtr ctxt);
CHAR*       xmlParseVersionInfo             (xmlParserCtxtPtr ctxt);
CHAR*       xmlParseEncName                 (xmlParserCtxtPtr ctxt);
CHAR*       xmlParseEncodingDecl            (xmlParserCtxtPtr ctxt);
int         xmlParseSDDecl                  (xmlParserCtxtPtr ctxt);
void        xmlParseXMLDecl                 (xmlParserCtxtPtr ctxt);
void        xmlParseMisc                    (xmlParserCtxtPtr ctxt);
#define     XML_SUBSTITUTE_NONE
#define     XML_SUBSTITUTE_REF
#define     XML_SUBSTITUTE_PEREF
#define     XML_SUBSTITUTE_BOTH
CHAR*       xmlDecodeEntities               (xmlParserCtxtPtr ctxt,
                                             int len,
                                             int what,
                                             CHAR end,
                                             CHAR end2,
                                             CHAR end3);
int         nodePush                        (xmlParserCtxtPtr ctxt,
                                             xmlNodePtr value);
xmlNodePtr  nodePop                         (xmlParserCtxtPtr ctxt);
int         inputPush                       (xmlParserCtxtPtr ctxt,
                                             xmlParserInputPtr value);
xmlParserInputPtr inputPop                  (xmlParserCtxtPtr ctxt);

Description

Details

IS_CHAR()

#define     IS_CHAR(c)

c : 


IS_BLANK()

#define     IS_BLANK(c)

c : 


IS_BASECHAR()

#define     IS_BASECHAR(c)

c : 


IS_DIGIT()

#define     IS_DIGIT(c)

c : 


IS_COMBINING()

#define     IS_COMBINING(c)

c : 


IS_EXTENDER()

#define     IS_EXTENDER(c)

c : 


IS_IDEOGRAPHIC()

#define     IS_IDEOGRAPHIC(c)

c : 


IS_LETTER()

#define     IS_LETTER(c)

c : 


IS_PUBIDCHAR()

#define     IS_PUBIDCHAR(c)

c : 


SKIP_EOL()

#define     SKIP_EOL(p)

p : 


MOVETO_ENDTAG()

#define     MOVETO_ENDTAG(p)

p : 


MOVETO_STARTTAG()

#define     MOVETO_STARTTAG(p)

p : 


xmlCreateDocParserCtxt ()

xmlParserCtxtPtr xmlCreateDocParserCtxt     (CHAR *cur);

Create a parser context for an XML in-memory document.

cur : 
Returns : 


xmlCreateFileParserCtxt ()

xmlParserCtxtPtr xmlCreateFileParserCtxt    (const char *filename);

Create a parser context for a file content. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.

filename : 
Returns : 


xmlCreateMemoryParserCtxt ()

xmlParserCtxtPtr xmlCreateMemoryParserCtxt  (char *buffer,
                                             int size);

Create a parser context for an XML in-memory document.

buffer : 
size : 
Returns : 


xmlFreeParserCtxt ()

void        xmlFreeParserCtxt               (xmlParserCtxtPtr ctxt);

Free all the memory used by a parser context. However the parsed document in ctxt->myDoc is not freed.

ctxt : 


xmlHandleEntity ()

void        xmlHandleEntity                 (xmlParserCtxtPtr ctxt,
                                             xmlEntityPtr entity);

Default handling of defined entities, when should we define a new input stream ? When do we just handle that as a set of chars ? TODO: we should call the SAX handler here and have it resolve the issue

ctxt : 
entity : 


xmlNewEntityInputStream ()

xmlParserInputPtr xmlNewEntityInputStream   (xmlParserCtxtPtr ctxt,
                                             xmlEntityPtr entity);

Create a new input stream based on an xmlEntityPtr

ctxt : 
entity : 
Returns : 


xmlPushInput ()

void        xmlPushInput                    (xmlParserCtxtPtr ctxt,
                                             xmlParserInputPtr input);

xmlPushInput: switch to a new input stream which is stacked on top of the previous one(s).

ctxt : 
input : 


xmlPopInput ()

CHAR        xmlPopInput                     (xmlParserCtxtPtr ctxt);

xmlPopInput: the current input pointed by ctxt->input came to an end pop it and return the next char.

TODO A deallocation of the popped Input structure is needed

ctxt : 
Returns : 


xmlFreeInputStream ()

void        xmlFreeInputStream              (xmlParserInputPtr input);

Free up an input stream.

input : 


xmlNewInputFromFile ()

xmlParserInputPtr xmlNewInputFromFile       (xmlParserCtxtPtr ctxt,
                                             const char *filename);

Create a new input stream based on a file.

ctxt : 
filename : 
Returns : 


xmlSplitQName ()

CHAR*       xmlSplitQName                   (const CHAR *name,
                                             CHAR **prefix);

parse an XML qualified name string

[NS 5] QName ::= (Prefix ':')? LocalPart

[NS 6] Prefix ::= NCName

[NS 7] LocalPart ::= NCName

name : 
prefix : 
Returns : 


xmlNamespaceParseNCName ()

CHAR*       xmlNamespaceParseNCName         (xmlParserCtxtPtr ctxt);

parse an XML namespace name.

[NS 3] NCName ::= (Letter | '_') (NCNameChar)*

[NS 4] NCNameChar ::= Letter | Digit | '.' | '-' | '_' | CombiningChar | Extender

ctxt : 
Returns : 


xmlNamespaceParseQName ()

CHAR*       xmlNamespaceParseQName          (xmlParserCtxtPtr ctxt,
                                             CHAR **prefix);

parse an XML qualified name

[NS 5] QName ::= (Prefix ':')? LocalPart

[NS 6] Prefix ::= NCName

[NS 7] LocalPart ::= NCName

ctxt : 
prefix : 
Returns : 


xmlNamespaceParseNSDef ()

CHAR*       xmlNamespaceParseNSDef          (xmlParserCtxtPtr ctxt);

parse a namespace prefix declaration

[NS 1] NSDef ::= PrefixDef Eq SystemLiteral

[NS 2] PrefixDef ::= 'xmlns' (':' NCName)?

ctxt : 
Returns : 


xmlParseQuotedString ()

CHAR*       xmlParseQuotedString            (xmlParserCtxtPtr ctxt);

[OLD] Parse and return a string between quotes or doublequotes

ctxt : 
Returns : 


xmlParseNamespace ()

void        xmlParseNamespace               (xmlParserCtxtPtr ctxt);

[OLD] xmlParseNamespace: parse specific PI '<?namespace ...' constructs.

This is what the older xml-name Working Draft specified, a bunch of other stuff may still rely on it, so support is still here as if ot was declared on the root of the Tree:-(

ctxt : 


xmlParseName ()

CHAR*       xmlParseName                    (xmlParserCtxtPtr ctxt);

parse an XML name.

[4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender

[5] Name ::= (Letter | '_' | ':') (NameChar)*

[6] Names ::= Name (S Name)*

ctxt : 
Returns : 


xmlParseNmtoken ()

CHAR*       xmlParseNmtoken                 (xmlParserCtxtPtr ctxt);

parse an XML Nmtoken.

[7] Nmtoken ::= (NameChar)+

[8] Nmtokens ::= Nmtoken (S Nmtoken)*

ctxt : 
Returns : 


xmlParseEntityValue ()

CHAR*       xmlParseEntityValue             (xmlParserCtxtPtr ctxt,
                                             CHAR **orig);

parse a value for ENTITY decl.

[9] EntityValue ::= '"' ([^%&"] | PEReference | Reference)* '"' | "'" ([^%&'] | PEReference | Reference)* "'"

ctxt : 
orig : 
Returns : 


xmlParseAttValue ()

CHAR*       xmlParseAttValue                (xmlParserCtxtPtr ctxt);

parse a value for an attribute Note: the parser won't do substitution of entities here, this will be handled later in xmlStringGetNodeList, unless it was asked for ctxt->replaceEntities != 0

[10] AttValue ::= '"' ([^<&"] | Reference)* '"' | "'" ([^<&'] | Reference)* "'"

ctxt : 
Returns : 


xmlParseSystemLiteral ()

CHAR*       xmlParseSystemLiteral           (xmlParserCtxtPtr ctxt);

parse an XML Literal

[11] SystemLiteral ::= ('"' [^"]* '"') | ("'" [^']* "'")

ctxt : 
Returns : 


xmlParsePubidLiteral ()

CHAR*       xmlParsePubidLiteral            (xmlParserCtxtPtr ctxt);

parse an XML public literal

[12] PubidLiteral ::= '"' PubidChar* '"' | "'" (PubidChar - "'")* "'"

ctxt : 
Returns : 


xmlParseCharData ()

void        xmlParseCharData                (xmlParserCtxtPtr ctxt,
                                             int cdata);

parse a CharData section. if we are within a CDATA section ']]>' marks an end of section.

[14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)

ctxt : 
cdata : 


xmlParseExternalID ()

CHAR*       xmlParseExternalID              (xmlParserCtxtPtr ctxt,
                                             CHAR **publicID,
                                             int strict);

Parse an External ID or a Public ID

NOTE: Productions [75] and [83] interract badly since [75] can generate 'PUBLIC' S PubidLiteral S SystemLiteral

[75] ExternalID ::= 'SYSTEM' S SystemLiteral | 'PUBLIC' S PubidLiteral S SystemLiteral

[83] PublicID ::= 'PUBLIC' S PubidLiteral

ctxt : 
publicID : 
strict : 
Returns : 


xmlParseComment ()

void        xmlParseComment                 (xmlParserCtxtPtr ctxt,
                                             int create);

Skip an XML (SGML) comment <!-- .... --> This may or may not create a node (depending on the context) The spec says that "For compatibility, the string "--" (double-hyphen) must not occur within comments. "

[15] Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'

ctxt : 
create : 


xmlParsePITarget ()

CHAR*       xmlParsePITarget                (xmlParserCtxtPtr ctxt);

parse the name of a PI

[17] PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l'))

ctxt : 
Returns : 


xmlParsePI ()

void        xmlParsePI                      (xmlParserCtxtPtr ctxt);

parse an XML Processing Instruction.

[16] PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'

The processing is transfered to SAX once parsed.

ctxt : 


xmlParseNotationDecl ()

void        xmlParseNotationDecl            (xmlParserCtxtPtr ctxt);

parse a notation declaration

[82] NotationDecl ::= '<!NOTATION' S Name S (ExternalID | PublicID) S? '>'

Hence there is actually 3 choices: 'PUBLIC' S PubidLiteral 'PUBLIC' S PubidLiteral S SystemLiteral and 'SYSTEM' S SystemLiteral

See the NOTE on xmlParseExternalID().

ctxt : 


xmlParseEntityDecl ()

void        xmlParseEntityDecl              (xmlParserCtxtPtr ctxt);

parse <!ENTITY declarations

[70] EntityDecl ::= GEDecl | PEDecl

[71] GEDecl ::= '<!ENTITY' S Name S EntityDef S? '>'

[72] PEDecl ::= '<!ENTITY' S '%' S Name S PEDef S? '>'

[73] EntityDef ::= EntityValue | (ExternalID NDataDecl?)

[74] PEDef ::= EntityValue | ExternalID

[76] NDataDecl ::= S 'NDATA' S Name

ctxt : 


xmlParseDefaultDecl ()

int         xmlParseDefaultDecl             (xmlParserCtxtPtr ctxt,
                                             CHAR **value);

Parse an attribute default declaration

[60] DefaultDecl ::= 'REQUIRED' | 'IMPLIED' | (('FIXED' S)? AttValue)

ctxt : 
value : 
Returns : 


xmlParseNotationType ()

xmlEnumerationPtr xmlParseNotationType      (xmlParserCtxtPtr ctxt);

parse an Notation attribute type.

[58] NotationType ::= 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')'

Note: the leading 'NOTATION' S part has already being parsed...

ctxt : 
Returns : 


xmlParseEnumerationType ()

xmlEnumerationPtr xmlParseEnumerationType   (xmlParserCtxtPtr ctxt);

parse an Enumeration attribute type.

[59] Enumeration ::= '(' S? Nmtoken (S? '|' S? Nmtoken)* S? ')'

ctxt : 
Returns : 


xmlParseEnumeratedType ()

int         xmlParseEnumeratedType          (xmlParserCtxtPtr ctxt,
                                             xmlEnumerationPtr *tree);

parse an Enumerated attribute type.

[57] EnumeratedType ::= NotationType | Enumeration

[58] NotationType ::= 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')'

ctxt : 
tree : 
Returns : 


xmlParseAttributeType ()

int         xmlParseAttributeType           (xmlParserCtxtPtr ctxt,
                                             xmlEnumerationPtr *tree);

parse the Attribute list def for an element

[54] AttType ::= StringType | TokenizedType | EnumeratedType

[55] StringType ::= 'CDATA'

[56] TokenizedType ::= 'ID' | 'IDREF' | 'IDREFS' | 'ENTITY' | 'ENTITIES' | 'NMTOKEN' | 'NMTOKENS'

ctxt : 
tree : 
Returns : 


xmlParseAttributeListDecl ()

void        xmlParseAttributeListDecl       (xmlParserCtxtPtr ctxt);

: parse the Attribute list def for an element

[52] AttlistDecl ::= '<!ATTLIST' S Name AttDef* S? '>'

[53] AttDef ::= S Name S AttType S DefaultDecl

ctxt : 


xmlParseElementMixedContentDecl ()

xmlElementContentPtr xmlParseElementMixedContentDecl
                                            (xmlParserCtxtPtr ctxt);

parse the declaration for a Mixed Element content The leading '(' and spaces have been skipped in xmlParseElementContentDecl

[51] Mixed ::= '(' S? 'PCDATA' (S? '|' S? Name)* S? ')*' | '(' S? 'PCDATA' S? ')'

ctxt : 
Returns : 


xmlParseElementChildrenContentDecl ()

xmlElementContentPtr xmlParseElementChildrenContentDecl
                                            (xmlParserCtxtPtr ctxt);

parse the declaration for a Mixed Element content The leading '(' and spaces have been skipped in xmlParseElementContentDecl

[47] children ::= (choice | seq) ('?' | '*' | '+')?

[48] cp ::= (Name | choice | seq) ('?' | '*' | '+')?

[49] choice ::= '(' S? cp ( S? '|' S? cp )* S? ')'

[50] seq ::= '(' S? cp ( S? ',' S? cp )* S? ')'

ctxt : 
Returns : 


xmlParseElementContentDecl ()

int         xmlParseElementContentDecl      (xmlParserCtxtPtr ctxt,
                                             CHAR *name,
                                             xmlElementContentPtr *result);

parse the declaration for an Element content either Mixed or Children, the cases EMPTY and ANY are handled directly in xmlParseElementDecl

[46] contentspec ::= 'EMPTY' | 'ANY' | Mixed | children

ctxt : 
name : 
result : 
Returns : 


xmlParseElementDecl ()

int         xmlParseElementDecl             (xmlParserCtxtPtr ctxt);

parse an Element declaration.

[45] elementdecl ::= '<!ELEMENT' S Name S contentspec S? '>'

TODO There is a check [ VC: Unique Element Type Declaration ]

ctxt : 
Returns : 


xmlParseMarkupDecl ()

void        xmlParseMarkupDecl              (xmlParserCtxtPtr ctxt);

parse Markup declarations

[29] markupdecl ::= elementdecl | AttlistDecl | EntityDecl | NotationDecl | PI | Comment

TODO There is a check [ VC: Proper Declaration/PE Nesting ]

ctxt : 


xmlParseCharRef ()

int         xmlParseCharRef                 (xmlParserCtxtPtr ctxt);

parse Reference declarations

[66] CharRef ::= '&#' [0-9]+ ';' | '&x' [0-9a-fA-F]+ ';'

ctxt : 
Returns : 


xmlParseEntityRef ()

xmlEntityPtr xmlParseEntityRef              (xmlParserCtxtPtr ctxt);

parse ENTITY references declarations

[68] EntityRef ::= '&' Name ';'

ctxt : 
Returns : 


xmlParseReference ()

void        xmlParseReference               (xmlParserCtxtPtr ctxt);

parse and handle entity references in content, depending on the SAX interface, this may end-up in a call to character() if this is a CharRef, a predefined entity, if there is no reference() callback. or if the parser was asked to switch to that mode.

[67] Reference ::= EntityRef | CharRef

ctxt : 


xmlParsePEReference ()

void        xmlParsePEReference             (xmlParserCtxtPtr ctxt);

parse PEReference declarations The entity content is handled directly by pushing it's content as a new input stream.

[69] PEReference ::= '%' Name ';'

ctxt : 


xmlParseDocTypeDecl ()

void        xmlParseDocTypeDecl             (xmlParserCtxtPtr ctxt);

parse a DOCTYPE declaration

[28] doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S? ('[' (markupdecl | PEReference | S)* ']' S?)? '>'

ctxt : 


xmlParseAttribute ()

CHAR*       xmlParseAttribute               (xmlParserCtxtPtr ctxt,
                                             CHAR **value);

parse an attribute

[41] Attribute ::= Name Eq AttValue

[25] Eq ::= S? '=' S?

With namespace:

[NS 11] Attribute ::= QName Eq AttValue

Also the case QName == xmlns:??? is handled independently as a namespace definition.

ctxt : 
value : 
Returns : 


xmlParseStartTag ()

CHAR*       xmlParseStartTag                (xmlParserCtxtPtr ctxt);

parse a start of tag either for rule element or EmptyElement. In both case we don't parse the tag closing chars.

[40] STag ::= '<' Name (S Attribute)* S? '>'

[44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'

With namespace:

[NS 8] STag ::= '<' QName (S Attribute)* S? '>'

[NS 10] EmptyElement ::= '<' QName (S Attribute)* S? '/>'

ctxt : 
Returns : 


xmlParseEndTag ()

void        xmlParseEndTag                  (xmlParserCtxtPtr ctxt,
                                             CHAR *tagname);

parse an end of tag

[42] ETag ::= '</' Name S? '>'

With namespace

[NS 9] ETag ::= '</' QName S? '>'

ctxt : 
tagname : 


xmlParseCDSect ()

void        xmlParseCDSect                  (xmlParserCtxtPtr ctxt);

Parse escaped pure raw content.

[18] CDSect ::= CDStart CData CDEnd

[19] CDStart ::= '<![CDATA['

[20] Data ::= (Char* - (Char* ']]>' Char*))

[21] CDEnd ::= ']]>'

ctxt : 


xmlParseContent ()

void        xmlParseContent                 (xmlParserCtxtPtr ctxt);

Parse a content:

[43] content ::= (element | CharData | Reference | CDSect | PI | Comment)*

ctxt : 


xmlParseElement ()

void        xmlParseElement                 (xmlParserCtxtPtr ctxt);

parse an XML element, this is highly recursive

[39] element ::= EmptyElemTag | STag content ETag

[41] Attribute ::= Name Eq AttValue

ctxt : 


xmlParseVersionNum ()

CHAR*       xmlParseVersionNum              (xmlParserCtxtPtr ctxt);

parse the XML version value.

[26] VersionNum ::= ([a-zA-Z0-9_.:] | '-')+

ctxt : 
Returns : 


xmlParseVersionInfo ()

CHAR*       xmlParseVersionInfo             (xmlParserCtxtPtr ctxt);

parse the XML version.

[24] VersionInfo ::= S 'version' Eq (' VersionNum ' | " VersionNum ")

[25] Eq ::= S? '=' S?

ctxt : 
Returns : 


xmlParseEncName ()

CHAR*       xmlParseEncName                 (xmlParserCtxtPtr ctxt);

parse the XML encoding name

[81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')*

ctxt : 
Returns : 


xmlParseEncodingDecl ()

CHAR*       xmlParseEncodingDecl            (xmlParserCtxtPtr ctxt);

parse the XML encoding declaration

[80] EncodingDecl ::= S 'encoding' Eq ('"' EncName '"' | "'" EncName "'")

TODO: this should setup the conversion filters.

ctxt : 
Returns : 


xmlParseSDDecl ()

int         xmlParseSDDecl                  (xmlParserCtxtPtr ctxt);

parse the XML standalone declaration

[32] SDDecl ::= S 'standalone' Eq (("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no')'"'))

ctxt : 
Returns : 


xmlParseXMLDecl ()

void        xmlParseXMLDecl                 (xmlParserCtxtPtr ctxt);

parse an XML declaration header

[23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'

ctxt : 


xmlParseMisc ()

void        xmlParseMisc                    (xmlParserCtxtPtr ctxt);

parse an XML Misc* optionnal field.

[27] Misc ::= Comment | PI | S

ctxt : 


XML_SUBSTITUTE_NONE

#define     XML_SUBSTITUTE_NONE


XML_SUBSTITUTE_REF

#define     XML_SUBSTITUTE_REF


XML_SUBSTITUTE_PEREF

#define     XML_SUBSTITUTE_PEREF


XML_SUBSTITUTE_BOTH

#define     XML_SUBSTITUTE_BOTH


xmlDecodeEntities ()

CHAR*       xmlDecodeEntities               (xmlParserCtxtPtr ctxt,
                                             int len,
                                             int what,
                                             CHAR end,
                                             CHAR end2,
                                             CHAR end3);

[67] Reference ::= EntityRef | CharRef

[69] PEReference ::= '%' Name ';'

ctxt : 
len : 
what : 
end : 
end2 : 
end3 : 
Returns : 


nodePush ()

int         nodePush                        (xmlParserCtxtPtr ctxt,
                                             xmlNodePtr value);

ctxt : 
value : 
Returns : 


nodePop ()

xmlNodePtr  nodePop                         (xmlParserCtxtPtr ctxt);

ctxt : 
Returns : 


inputPush ()

int         inputPush                       (xmlParserCtxtPtr ctxt,
                                             xmlParserInputPtr value);

ctxt : 
value : 
Returns : 


inputPop ()

xmlParserInputPtr inputPop                  (xmlParserCtxtPtr ctxt);

ctxt : 
Returns :