Bunch of updates, progressive parsing, updates on HTML, XPAth and docs, Daniel

This commit is contained in:
Daniel Veillard 1999-07-27 19:52:06 +00:00
parent 15b75af8fa
commit e2d034d3b5
71 changed files with 4825 additions and 4358 deletions

View File

@ -1,3 +1,15 @@
Tue Jul 27 21:43:00 CEST 1999 Daniel Veillard <Daniel.Veillard@w3.org>
* xpath.[ch] : improvements and debug of the XPath implementation
* parser.c, HTMLparser.c : modified the parsers to be progressive
* tree.[ch] : extended the Buffer promitives
* xmlIO.[ch] : added basic I/O routines providing progressive
parsing and ready for I18N conversion plugins
* SAXresult/* : the SAX callback sequence maybe slightly different
now
* test*.c : improved/updated the tests programs
* doc/* : recompiled the docs.
1999-07-26 Michael Meeks <michael@edenproject.org>
* tree.h: Add const to 'content' in xmlNewDocNode, xmlNewChild

View File

@ -33,6 +33,10 @@
#include "encoding.h"
#include "valid.h"
#include "parserInternals.h"
#include "xmlIO.h"
#define HTML_MAX_NAMELEN 1000
#define INPUT_CHUNK 50
/* #define DEBUG */
@ -101,7 +105,6 @@ PUSH_AND_POP(xmlNodePtr, node)
* UTF-8 if we are using this mode. It returns an int.
* NEXT Skip to the next character, this does the proper decoding
* in UTF-8 mode. It also pop-up unfinished entities on the fly.
* It returns the pointer to the current CHAR.
* COPY(to) copy one char to *to, increment CUR_PTR and to accordingly
*/
@ -111,21 +114,46 @@ PUSH_AND_POP(xmlNodePtr, node)
#define NXT(val) ctxt->input->cur[(val)]
#define UPP(val) (toupper(ctxt->input->cur[(val)]))
#define CUR_PTR ctxt->input->cur
#define SHRINK xmlParserInputShrink(ctxt->input)
#define GROW xmlParserInputGrow(ctxt->input, INPUT_CHUNK)
#define SKIP_BLANKS \
while (IS_BLANK(*(ctxt->input->cur))) NEXT
#ifndef USE_UTF_8
#define CURRENT (*ctxt->input->cur)
#define NEXT { \
if ((*ctxt->input->cur == 0) && \
(xmlParserInputGrow(ctxt->input, INPUT_CHUNK) <= 0)) { \
xmlPopInput(ctxt); \
} else { \
if (*(ctxt->input->cur) == '\n') { \
ctxt->input->line++; ctxt->input->col = 1; \
} else ctxt->input->col++; \
ctxt->input->cur++; \
if (*ctxt->input->cur == 0) \
xmlParserInputGrow(ctxt->input, INPUT_CHUNK); \
}}
/****************************************
#define NEXT ((*ctxt->input->cur) ? \
(((*(ctxt->input->cur) == '\n') ? \
(ctxt->input->line++, ctxt->input->col = 1) : \
(ctxt->input->col++)), ctxt->input->cur++) : \
(ctxt->input->cur))
(ctxt->input->col++)), \
(ctxt->input->cur++), \
((*ctxt->input->cur) ? \
(xmlParserInputGrow(ctxt->input, 100), \
ctxt->input->cur): \
(ctxt->input->cur))) : \
((xmlParserInputGrow(ctxt->input, 100) > 0) ? \
ctxt->input->cur: \
(xmlPopInput(ctxt), ctxt->input->cur)))
****************************************/
#else
#endif
/************************************************************************
* *
* The list of HTML elements and their properties *
@ -803,7 +831,7 @@ htmlDecodeEntities(htmlParserCtxtPtr ctxt, int len,
CHAR *cur = NULL;
htmlEntityDescPtr ent;
const CHAR *start = CUR_PTR;
int nbchars = 0;
unsigned int max = (unsigned int) len;
/*
@ -820,7 +848,7 @@ htmlDecodeEntities(htmlParserCtxtPtr ctxt, int len,
/*
* Ok loop until we reach one of the ending char or a size limit.
*/
while ((CUR_PTR - start < max) && (CUR != end) &&
while ((nbchars < max) && (CUR != end) &&
(CUR != end2) && (CUR != end3)) {
if (CUR == '&') {
@ -828,6 +856,7 @@ htmlDecodeEntities(htmlParserCtxtPtr ctxt, int len,
int val = htmlParseCharRef(ctxt);
/* TODO: invalid for UTF-8 variable encoding !!! */
*out++ = val;
nbchars += 3; /* !!!! */
} else {
ent = htmlParseEntityRef(ctxt, &name);
if (name != NULL) {
@ -855,12 +884,14 @@ htmlDecodeEntities(htmlParserCtxtPtr ctxt, int len,
out = &buffer[index];
}
}
nbchars += 2 + xmlStrlen(name);
free(name);
}
}
} else {
/* TODO: invalid for UTF-8 , use COPY(out); */
*out++ = CUR;
nbchars++;
if (out - buffer > buffer_size - 100) {
int index = out - buffer;
@ -1170,49 +1201,67 @@ htmlParseHTMLName(htmlParserCtxtPtr ctxt) {
CHAR *
htmlParseName(htmlParserCtxtPtr ctxt) {
const CHAR *q;
CHAR *ret = NULL;
CHAR buf[HTML_MAX_NAMELEN];
int len = 0;
if (!IS_LETTER(CUR) && (CUR != '_') &&
(CUR != ':')) return(NULL);
q = NEXT;
GROW;
if (!IS_LETTER(CUR) && (CUR != '_')) {
return(NULL);
}
while ((IS_LETTER(CUR)) || (IS_DIGIT(CUR)) ||
(CUR == '.') || (CUR == '-') ||
(CUR == '_') || (CUR == ':') ||
(IS_COMBINING(CUR)) ||
(IS_EXTENDER(CUR)))
(IS_EXTENDER(CUR))) {
buf[len++] = CUR;
NEXT;
ret = xmlStrndup(q, CUR_PTR - q);
return(ret);
if (len >= HTML_MAX_NAMELEN) {
fprintf(stderr,
"htmlParseName: reached HTML_MAX_NAMELEN limit\n");
while ((IS_LETTER(CUR)) || (IS_DIGIT(CUR)) ||
(CUR == '.') || (CUR == '-') ||
(CUR == '_') || (CUR == ':') ||
(IS_COMBINING(CUR)) ||
(IS_EXTENDER(CUR)))
NEXT;
break;
}
}
return(xmlStrndup(buf, len));
}
/**
* htmlParseHTMLAttribute:
* @ctxt: an HTML parser context
*
* parse an HTML Nmtoken.
* parse an HTML attribute value (without quotes).
*
* Returns the Nmtoken parsed or NULL
*/
CHAR *
htmlParseHTMLAttribute(htmlParserCtxtPtr ctxt) {
const CHAR *q;
CHAR *ret = NULL;
q = NEXT;
CHAR buf[HTML_MAX_NAMELEN];
int len = 0;
GROW;
while ((!IS_BLANK(CUR)) && (CUR != '<') &&
(CUR != '&') && (CUR != '>') &&
(CUR != '\'') && (CUR != '"'))
(CUR != '\'') && (CUR != '"')) {
buf[len++] = CUR;
NEXT;
ret = xmlStrndup(q, CUR_PTR - q);
return(ret);
if (len >= HTML_MAX_NAMELEN) {
fprintf(stderr,
"htmlParseHTMLAttribute: reached HTML_MAX_NAMELEN limit\n");
while ((!IS_BLANK(CUR)) && (CUR != '<') &&
(CUR != '&') && (CUR != '>') &&
(CUR != '\'') && (CUR != '"'))
NEXT;
break;
}
}
return(xmlStrndup(buf, len));
}
/**
@ -1226,21 +1275,30 @@ htmlParseHTMLAttribute(htmlParserCtxtPtr ctxt) {
CHAR *
htmlParseNmtoken(htmlParserCtxtPtr ctxt) {
const CHAR *q;
CHAR *ret = NULL;
q = NEXT;
CHAR buf[HTML_MAX_NAMELEN];
int len = 0;
GROW;
while ((IS_LETTER(CUR)) || (IS_DIGIT(CUR)) ||
(CUR == '.') || (CUR == '-') ||
(CUR == '_') || (CUR == ':') ||
(IS_COMBINING(CUR)) ||
(IS_EXTENDER(CUR)))
(IS_EXTENDER(CUR))) {
buf[len++] = CUR;
NEXT;
ret = xmlStrndup(q, CUR_PTR - q);
return(ret);
if (len >= HTML_MAX_NAMELEN) {
fprintf(stderr,
"htmlParseNmtoken: reached HTML_MAX_NAMELEN limit\n");
while ((IS_LETTER(CUR)) || (IS_DIGIT(CUR)) ||
(CUR == '.') || (CUR == '-') ||
(CUR == '_') || (CUR == ':') ||
(IS_COMBINING(CUR)) ||
(IS_EXTENDER(CUR)))
NEXT;
break;
}
}
return(xmlStrndup(buf, len));
}
/**
@ -1269,6 +1327,7 @@ htmlParseEntityRef(htmlParserCtxtPtr ctxt, CHAR **str) {
ctxt->sax->error(ctxt->userData, "htmlParseEntityRef: no name\n");
ctxt->wellFormed = 0;
} else {
GROW;
if (CUR == ';') {
NEXT;
*str = name;
@ -1565,36 +1624,10 @@ htmlParseExternalID(htmlParserCtxtPtr ctxt, CHAR **publicID, int strict) {
"htmlParseExternalID: PUBLIC, no Public Identifier\n");
ctxt->wellFormed = 0;
}
if (strict) {
/*
* We don't handle [83] so "S SystemLiteral" is required.
*/
if (!IS_BLANK(CUR)) {
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
ctxt->sax->error(ctxt->userData,
"Space required after the Public Identifier\n");
ctxt->wellFormed = 0;
}
} else {
/*
* We handle [83] so we return immediately, if
* "S SystemLiteral" is not detected. From a purely parsing
* point of view that's a nice mess.
*/
const CHAR *ptr = CUR_PTR;
if (!IS_BLANK(*ptr)) return(NULL);
while (IS_BLANK(*ptr)) ptr++;
if ((*ptr != '\'') || (*ptr != '"')) return(NULL);
}
SKIP_BLANKS;
URI = htmlParseSystemLiteral(ctxt);
if (URI == NULL) {
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
ctxt->sax->error(ctxt->userData,
"htmlParseExternalID: PUBLIC, no URI\n");
ctxt->wellFormed = 0;
}
if ((CUR == '"') || (CUR == '\'')) {
URI = htmlParseSystemLiteral(ctxt);
}
}
return(URI);
}
@ -1766,7 +1799,7 @@ htmlParseDocTypeDecl(htmlParserCtxtPtr ctxt) {
/*
* Check for SystemID and ExternalID
*/
URI = htmlParseExternalID(ctxt, &ExternalID, 1);
URI = htmlParseExternalID(ctxt, &ExternalID, 0);
SKIP_BLANKS;
/*
@ -2027,6 +2060,7 @@ htmlParseEndTag(htmlParserCtxtPtr ctxt, const CHAR *tagname) {
ctxt->sax->error(ctxt->userData,
"htmlParseEndTag: unexpected close for tag %s\n",
tagname);
free(name);
ctxt->wellFormed = 0;
return;
}
@ -2168,6 +2202,7 @@ htmlParseContent(htmlParserCtxtPtr ctxt, const CHAR *name) {
ctxt->wellFormed = 0;
break;
}
GROW;
}
/*
@ -2232,8 +2267,9 @@ htmlParseElement(htmlParserCtxtPtr ctxt) {
return;
}
if (CUR == '>') NEXT;
else {
if (CUR == '>') {
NEXT;
} else {
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
ctxt->sax->error(ctxt->userData, "Couldn't find end of Start Tag\n%.30s\n",
openTag);
@ -2305,6 +2341,7 @@ htmlParseDocument(htmlParserCtxtPtr ctxt) {
htmlDefaultSAXHandlerInit();
ctxt->html = 1;
GROW;
/*
* SAX: beginning of the document processing TODO: update for HTML.
*/
@ -2490,6 +2527,7 @@ htmlCreateDocParserCtxt(CHAR *cur, const char *encoding) {
input->base = cur;
input->cur = cur;
input->free = NULL;
input->buf = NULL;
inputPush(ctxt, input);
return(ctxt);
@ -2572,114 +2610,12 @@ htmlParserCtxtPtr
htmlCreateFileParserCtxt(const char *filename, const char *encoding)
{
htmlParserCtxtPtr ctxt;
#ifdef HAVE_ZLIB_H
gzFile input;
#else
int input;
#endif
int res;
int len;
int cnt;
struct stat buf;
char *buffer, *nbuf;
htmlParserInputPtr inputStream;
xmlParserInputBufferPtr buf;
/* htmlCharEncoding enc; */
#define MINLEN 40000
if (strcmp(filename,"-") == 0) {
#ifdef HAVE_ZLIB_H
input = gzdopen (fileno(stdin), "r");
if (input == NULL) {
fprintf (stderr, "Cannot read from stdin\n");
perror ("gzdopen failed");
return(NULL);
}
#else
#ifdef WIN32
input = -1;
#else
input = fileno(stdin);
#endif
if (input < 0) {
fprintf (stderr, "Cannot read from stdin\n");
perror ("open failed");
return(NULL);
}
#endif
len = MINLEN;
} else {
#ifdef HAVE_ZLIB_H
input = gzopen (filename, "r");
if (input == NULL) {
fprintf (stderr, "Cannot read file %s :\n", filename);
perror ("gzopen failed");
return(NULL);
}
#else
#ifdef WIN32
input = _open (filename, O_RDONLY | _O_BINARY);
#else
input = open (filename, O_RDONLY);
#endif
if (input < 0) {
fprintf (stderr, "Cannot read file %s :\n", filename);
perror ("open failed");
return(NULL);
}
#endif
res = stat(filename, &buf);
if (res < 0)
return(NULL);
len = buf.st_size;
if (len < MINLEN)
len = MINLEN;
}
buffer = (char *)malloc((len+1)*sizeof(char));
if (buffer == NULL) {
fprintf (stderr, "Cannot malloc\n");
perror ("malloc failed");
return(NULL);
}
cnt = 0;
while(1) {
if (cnt == len) {
len *= 2;
nbuf = (char *)realloc(buffer,(len+1)*sizeof(char));
if (nbuf == NULL) {
fprintf(stderr,"Cannot realloc\n");
free(buffer);
perror ("realloc failed");
return(NULL);
}
buffer = nbuf;
}
#ifdef HAVE_ZLIB_H
res = gzread(input, &buffer[cnt], len-cnt);
#else
res = read(input, &buffer[cnt], len-cnt);
#endif
if (res < 0) {
fprintf (stderr, "Cannot read file %s :\n", filename);
#ifdef HAVE_ZLIB_H
perror ("gzread failed");
#else
perror ("read failed");
#endif
return(NULL);
}
if (res == 0)
break;
cnt +=res;
}
buffer[cnt] = '\0';
#ifdef HAVE_ZLIB_H
gzclose(input);
#else
close(input);
#endif
buf = xmlParserInputBufferCreateFilename(filename, XML_CHAR_ENCODING_NONE);
if (buf == NULL) return(NULL);
ctxt = (htmlParserCtxtPtr) malloc(sizeof(htmlParserCtxt));
if (ctxt == NULL) {
@ -2697,18 +2633,11 @@ htmlCreateFileParserCtxt(const char *filename, const char *encoding)
inputStream->filename = strdup(filename);
inputStream->line = 1;
inputStream->col = 1;
inputStream->buf = buf;
/*
* plug some encoding conversion routines here. !!!
if (encoding != NULL) {
enc = htmlDetectCharEncoding(buffer);
htmlSwitchEncoding(ctxt, enc);
}
*/
inputStream->base = buffer;
inputStream->cur = buffer;
inputStream->free = (xmlParserInputDeallocate) free;
inputStream->base = inputStream->buf->buffer->content;
inputStream->cur = inputStream->buf->buffer->content;
inputStream->free = NULL;
inputPush(ctxt, inputStream);
return(ctxt);

View File

@ -25,6 +25,7 @@ libxml_la_SOURCES = \
debugXML.c \
tree.c \
xpath.c \
xmlIO.c \
valid.c
xmlincdir = $(includedir)/gnome-xml

View File

@ -2,99 +2,80 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(D:multistatus, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:R='http://www.foo.bar/boxschema')
SAX.characters(
<D:response>
<D:prop>
, 3)
, 3)
SAX.startElement(D:response)
SAX.characters(
<D:prop>
<R:bigbox>, 5)
, 5)
SAX.startElement(D:prop)
SAX.characters(
<R:bigbox>
<R:B, 7)
, 7)
SAX.startElement(R:bigbox)
SAX.characters(
<R:BoxType>Box type A, 9)
, 9)
SAX.startElement(R:BoxType)
SAX.characters(Box type A</R:BoxType>
<, 10)
SAX.characters(Box type A, 10)
SAX.endElement(R:BoxType)
SAX.characters(
</R:bigbox>
<R:au, 7)
, 7)
SAX.endElement(R:bigbox)
SAX.characters(
<R:author>
<R:N, 7)
, 7)
SAX.startElement(R:author)
SAX.characters(
<R:Name>J.J. Dinglehe, 9)
, 9)
SAX.startElement(R:Name)
SAX.characters(J.J. Dingleheimerschmidt</R:Na, 24)
SAX.characters(J.J. Dingleheimerschmidt, 24)
SAX.endElement(R:Name)
SAX.characters(
</R:author>
</D:pro, 7)
, 7)
SAX.endElement(R:author)
SAX.characters(
</D:prop>
<D:status>H, 5)
, 5)
SAX.endElement(D:prop)
SAX.characters(
<D:status>HTTP/1.1 200 OK, 5)
, 5)
SAX.startElement(D:status)
SAX.characters(HTTP/1.1 200 OK</D:status>
<, 15)
SAX.characters(HTTP/1.1 200 OK, 15)
SAX.endElement(D:status)
SAX.characters(
</D:response>
<D:response, 3)
, 3)
SAX.endElement(D:response)
SAX.characters(
<D:response>
<D:prop>
, 3)
, 3)
SAX.startElement(D:response)
SAX.characters(
<D:prop>
<R:DingALi, 5)
, 5)
SAX.startElement(D:prop)
SAX.characters(
<R:DingALing/>
<R, 7)
, 7)
SAX.startElement(R:DingALing)
SAX.endElement(R:DingALing)
SAX.characters(
<R:Random/>
</D:pro, 7)
, 7)
SAX.startElement(R:Random)
SAX.endElement(R:Random)
SAX.characters(
</D:prop>
<D:status>H, 5)
, 5)
SAX.endElement(D:prop)
SAX.characters(
<D:status>HTTP/1.1 403 Fo, 5)
, 5)
SAX.startElement(D:status)
SAX.characters(HTTP/1.1 403 Forbidden</D:stat, 22)
SAX.characters(HTTP/1.1 403 Forbidden, 22)
SAX.endElement(D:status)
SAX.characters(
<D:responsedescription> T, 5)
, 5)
SAX.startElement(D:responsedescription)
SAX.characters( The user does not have access, 64)
SAX.endElement(D:responsedescription)
SAX.characters(
</D:response>
<D:response, 3)
, 3)
SAX.endElement(D:response)
SAX.characters(
<D:responsedescription> The, 3)
, 3)
SAX.startElement(D:responsedescription)
SAX.characters( There has been an access viol, 44)
SAX.endElement(D:responsedescription)
SAX.characters(
</D:multistatus>
, 1)
SAX.endElement(D:multistatus)
SAX.endDocument()

View File

@ -2,12 +2,11 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(D:owner, xmlns:D='http://www.ietf.org/standards/dav/')
SAX.characters(
<D:href>http://www.ics.uci., 3)
, 3)
SAX.startElement(D:href)
SAX.characters(http://www.ics.uci.edu/~ejw/co, 40)
SAX.endElement(D:href)
SAX.characters(
</D:owner>
, 1)
SAX.endElement(D:owner)
SAX.endDocument()

View File

@ -2,76 +2,61 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(D:prop, xmlns:D='http://www.ietf.org/standards/dav/')
SAX.characters(
<D:lockdiscovery>
<D:ac, 3)
, 3)
SAX.startElement(D:lockdiscovery)
SAX.characters(
<D:activelock>
<D:l, 5)
, 5)
SAX.startElement(D:activelock)
SAX.characters(
<D:locktype>write</D:lo, 7)
, 7)
SAX.startElement(D:locktype)
SAX.characters(write</D:locktype>
<D:lo, 5)
SAX.characters(write, 5)
SAX.endElement(D:locktype)
SAX.characters(
<D:lockscope>exclusive<, 7)
, 7)
SAX.startElement(D:lockscope)
SAX.characters(exclusive</D:lockscope>
, 9)
SAX.characters(exclusive, 9)
SAX.endElement(D:lockscope)
SAX.characters(
<D:addlocks/>
<D:, 7)
, 7)
SAX.startElement(D:addlocks)
SAX.endElement(D:addlocks)
SAX.characters(
<D:owner>
<D:hr, 7)
, 7)
SAX.startElement(D:owner)
SAX.characters(
<D:href>
http://www, 9)
, 9)
SAX.startElement(D:href)
SAX.characters(
http://www.ics.uci.edu/~ejw, 46)
SAX.endElement(D:href)
SAX.characters(
</D:owner>
<D:tim, 7)
, 7)
SAX.endElement(D:owner)
SAX.characters(
<D:timeout>Second-60480, 7)
, 7)
SAX.startElement(D:timeout)
SAX.characters(Second-604800</D:timeout>
, 13)
SAX.characters(Second-604800, 13)
SAX.endElement(D:timeout)
SAX.characters(
<D:locktoken>
<, 7)
, 7)
SAX.startElement(D:locktoken)
SAX.characters(
<D:href>
opaquelo, 9)
, 9)
SAX.startElement(D:href)
SAX.characters(
opaquelocktoken:xyz122393, 59)
SAX.endElement(D:href)
SAX.characters(
</D:locktoken>
</D:, 7)
, 7)
SAX.endElement(D:locktoken)
SAX.characters(
</D:activelock>
</D:loc, 5)
, 5)
SAX.endElement(D:activelock)
SAX.characters(
</D:lockdiscovery>
</D:prop, 3)
, 3)
SAX.endElement(D:lockdiscovery)
SAX.characters(
</D:prop>
, 1)
SAX.endElement(D:prop)
SAX.endDocument()

View File

@ -2,54 +2,45 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(D:multistatus, xmlns:D='http://www.ietf.org/standards/dav/')
SAX.characters(
<D:response>
<D:href>
, 3)
, 3)
SAX.startElement(D:response)
SAX.characters(
<D:href>
http://webda, 5)
, 5)
SAX.startElement(D:href)
SAX.characters(
http://webdav.sb.aol.com/, 66)
SAX.endElement(D:href)
SAX.characters(
<D:href>
http://webda, 5)
, 5)
SAX.startElement(D:href)
SAX.characters(
http://webdav.sb.aol.com/, 54)
SAX.endElement(D:href)
SAX.characters(
<D:status>HTTP/1.1 202 Ac, 5)
, 5)
SAX.startElement(D:status)
SAX.characters(HTTP/1.1 202 Accepted</D:statu, 21)
SAX.characters(HTTP/1.1 202 Accepted, 21)
SAX.endElement(D:status)
SAX.characters(
</D:response>
<D:response, 3)
, 3)
SAX.endElement(D:response)
SAX.characters(
<D:response>
<D:href>ht, 3)
, 3)
SAX.startElement(D:response)
SAX.characters(
<D:href>http://foo.bar/bl, 5)
, 5)
SAX.startElement(D:href)
SAX.characters(http://foo.bar/blah</D:href>
, 19)
SAX.characters(http://foo.bar/blah, 19)
SAX.endElement(D:href)
SAX.characters(
<D:status>HTTP/1.1 403 Fo, 5)
, 5)
SAX.startElement(D:status)
SAX.characters(HTTP/1.1 403 Forbidden</D:stat, 22)
SAX.characters(HTTP/1.1 403 Forbidden, 22)
SAX.endElement(D:status)
SAX.characters(
</D:response>
</D:multistat, 3)
, 3)
SAX.endElement(D:response)
SAX.characters(
</D:multistatus>
, 1)
SAX.endElement(D:multistatus)
SAX.endDocument()

View File

@ -2,92 +2,75 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(D:prop, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:F='http://www.foocorp.com/Project/')
SAX.characters(
<D:Source>
<D:link>
, 3)
, 3)
SAX.startElement(D:Source)
SAX.characters(
<D:link>
<F:projfil, 5)
, 5)
SAX.startElement(D:link)
SAX.characters(
<F:projfiles>Source</F:, 7)
, 7)
SAX.startElement(F:projfiles)
SAX.characters(Source</F:projfiles>
<D:, 6)
SAX.characters(Source, 6)
SAX.endElement(F:projfiles)
SAX.characters(
<D:src>http://foo.bar/p, 7)
, 7)
SAX.startElement(D:src)
SAX.characters(http://foo.bar/program</D:src>, 22)
SAX.characters(http://foo.bar/program, 22)
SAX.endElement(D:src)
SAX.characters(
<D:dst>http://foo.bar/s, 7)
, 7)
SAX.startElement(D:dst)
SAX.characters(http://foo.bar/src/main.c</D:d, 25)
SAX.characters(http://foo.bar/src/main.c, 25)
SAX.endElement(D:dst)
SAX.characters(
</D:link>
<D:link>
, 5)
, 5)
SAX.endElement(D:link)
SAX.characters(
<D:link>
<F:projfil, 5)
, 5)
SAX.startElement(D:link)
SAX.characters(
<F:projfiles>Library</F, 7)
, 7)
SAX.startElement(F:projfiles)
SAX.characters(Library</F:projfiles>
<D, 7)
SAX.characters(Library, 7)
SAX.endElement(F:projfiles)
SAX.characters(
<D:src>http://foo.bar/p, 7)
, 7)
SAX.startElement(D:src)
SAX.characters(http://foo.bar/program</D:src>, 22)
SAX.characters(http://foo.bar/program, 22)
SAX.endElement(D:src)
SAX.characters(
<D:dst>http://foo.bar/s, 7)
, 7)
SAX.startElement(D:dst)
SAX.characters(http://foo.bar/src/main.lib</D, 27)
SAX.characters(http://foo.bar/src/main.lib, 27)
SAX.endElement(D:dst)
SAX.characters(
</D:link>
<D:link>
, 5)
, 5)
SAX.endElement(D:link)
SAX.characters(
<D:link>
<F:projfil, 5)
, 5)
SAX.startElement(D:link)
SAX.characters(
<F:projfiles>Makefile</, 7)
, 7)
SAX.startElement(F:projfiles)
SAX.characters(Makefile</F:projfiles>
<, 8)
SAX.characters(Makefile, 8)
SAX.endElement(F:projfiles)
SAX.characters(
<D:src>http://foo.bar/p, 7)
, 7)
SAX.startElement(D:src)
SAX.characters(http://foo.bar/program</D:src>, 22)
SAX.characters(http://foo.bar/program, 22)
SAX.endElement(D:src)
SAX.characters(
<D:dst>http://foo.bar/s, 7)
, 7)
SAX.startElement(D:dst)
SAX.characters(http://foo.bar/src/makefile</D, 27)
SAX.characters(http://foo.bar/src/makefile, 27)
SAX.endElement(D:dst)
SAX.characters(
</D:link>
</D:Source>
<, 5)
, 5)
SAX.endElement(D:link)
SAX.characters(
</D:Source>
</D:prop>
, 3)
, 3)
SAX.endElement(D:Source)
SAX.characters(
</D:prop>
, 1)
SAX.endElement(D:prop)
SAX.endDocument()

View File

@ -2,21 +2,16 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(D:propfind, xmlns:D='http://www.ietf.org/standards/dav/')
SAX.characters(
<D:prop>
<lockdiscovery, 3)
, 3)
SAX.startElement(D:prop)
SAX.characters(
<lockdiscovery/>
</D:pr, 5)
, 5)
SAX.startElement(lockdiscovery)
SAX.endElement(lockdiscovery)
SAX.characters(
</D:prop>
</D:propfind>
, 3)
, 3)
SAX.endElement(D:prop)
SAX.characters(
</D:propfind>
, 1)
SAX.endElement(D:propfind)
SAX.endDocument()

View File

@ -2,98 +2,77 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(D:multistatus, xmlns:D='http://www.ietf.org/standards/dav/')
SAX.characters(
<D:response>
<D:prop>
, 3)
, 3)
SAX.startElement(D:response)
SAX.characters(
<D:prop>
<D:lockdis, 5)
, 5)
SAX.startElement(D:prop)
SAX.characters(
<D:lockdiscovery>
, 7)
, 7)
SAX.startElement(D:lockdiscovery)
SAX.characters(
<D:activelock>
, 9)
, 9)
SAX.startElement(D:activelock)
SAX.characters(
<D:locktype>write</, 11)
, 11)
SAX.startElement(D:locktype)
SAX.characters(write</D:locktype>
<, 5)
SAX.characters(write, 5)
SAX.endElement(D:locktype)
SAX.characters(
<D:lockscope>exclus, 11)
, 11)
SAX.startElement(D:lockscope)
SAX.characters(exclusive</D:lockscope>
, 9)
SAX.characters(exclusive, 9)
SAX.endElement(D:lockscope)
SAX.characters(
<D:addlocks>
, 11)
, 11)
SAX.startElement(D:addlocks)
SAX.characters(
<D:href>http://fo, 13)
, 13)
SAX.startElement(D:href)
SAX.characters(http://foo.com/doc/</D:href>
, 19)
SAX.characters(http://foo.com/doc/, 19)
SAX.endElement(D:href)
SAX.characters(
</D:addlocks>
, 11)
, 11)
SAX.endElement(D:addlocks)
SAX.characters(
<D:owner>Jane Smith, 11)
, 11)
SAX.startElement(D:owner)
SAX.characters(Jane Smith</D:owner>
, 10)
SAX.characters(Jane Smith, 10)
SAX.endElement(D:owner)
SAX.characters(
<D:timeout>Infinite, 11)
, 11)
SAX.startElement(D:timeout)
SAX.characters(Infinite</D:timeout>
, 8)
SAX.characters(Infinite, 8)
SAX.endElement(D:timeout)
SAX.characters(
<D:locktoken>
, 11)
, 11)
SAX.startElement(D:locktoken)
SAX.characters(
<D:href>iamuri:un, 13)
, 13)
SAX.startElement(D:href)
SAX.characters(iamuri:unique!!!!!</D:href>
, 18)
SAX.characters(iamuri:unique!!!!!, 18)
SAX.endElement(D:href)
SAX.characters(
</D:locktoken>
, 11)
, 11)
SAX.endElement(D:locktoken)
SAX.characters(
</D:activelock>
, 9)
, 9)
SAX.endElement(D:activelock)
SAX.characters(
</D:lockdiscovery>
, 7)
, 7)
SAX.endElement(D:lockdiscovery)
SAX.characters(
</D:prop>
<D:status>H, 5)
, 5)
SAX.endElement(D:prop)
SAX.characters(
<D:status>HTTP/1.1 200 OK, 5)
, 5)
SAX.startElement(D:status)
SAX.characters(HTTP/1.1 200 OK</D:status>
<, 15)
SAX.characters(HTTP/1.1 200 OK, 15)
SAX.endElement(D:status)
SAX.characters(
</D:response>
</D:multistat, 3)
, 3)
SAX.endElement(D:response)
SAX.characters(
</D:multistatus>
, 1)
SAX.endElement(D:multistatus)
SAX.endDocument()

View File

@ -2,21 +2,16 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(D:propfind, xmlns:D='http://www.ietf.org/standards/dav/')
SAX.characters(
<D:prop>
<supportedlock, 3)
, 3)
SAX.startElement(D:prop)
SAX.characters(
<supportedlock/>
</D:pr, 5)
, 5)
SAX.startElement(supportedlock)
SAX.endElement(supportedlock)
SAX.characters(
</D:prop>
</D:propfind>
, 3)
, 3)
SAX.endElement(D:prop)
SAX.characters(
</D:propfind>
, 1)
SAX.endElement(D:propfind)
SAX.endDocument()

View File

@ -2,78 +2,61 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(D:multistatus, xmlns:D='http://www.ietf.org/standards/dav/')
SAX.characters(
<D:response>
<D:prop>
, 3)
, 3)
SAX.startElement(D:response)
SAX.characters(
<D:prop>
<D:support, 5)
, 5)
SAX.startElement(D:prop)
SAX.characters(
<D:supportedlock>
, 7)
, 7)
SAX.startElement(D:supportedlock)
SAX.characters(
<D:LockEntry>
, 9)
, 9)
SAX.startElement(D:LockEntry)
SAX.characters(
<D:locktype>Write</, 11)
, 11)
SAX.startElement(D:locktype)
SAX.characters(Write</D:locktype>
<, 5)
SAX.characters(Write, 5)
SAX.endElement(D:locktype)
SAX.characters(
<D:lockscope>Exclus, 11)
, 11)
SAX.startElement(D:lockscope)
SAX.characters(Exclusive</D:lockscope>
, 9)
SAX.characters(Exclusive, 9)
SAX.endElement(D:lockscope)
SAX.characters(
</D:LockEntry>
, 9)
, 9)
SAX.endElement(D:LockEntry)
SAX.characters(
<D:LockEntry>
, 9)
, 9)
SAX.startElement(D:LockEntry)
SAX.characters(
<D:locktype>Write</, 11)
, 11)
SAX.startElement(D:locktype)
SAX.characters(Write</D:locktype>
<, 5)
SAX.characters(Write, 5)
SAX.endElement(D:locktype)
SAX.characters(
<D:lockscope>Shared, 11)
, 11)
SAX.startElement(D:lockscope)
SAX.characters(Shared</D:lockscope>
<, 6)
SAX.characters(Shared, 6)
SAX.endElement(D:lockscope)
SAX.characters(
</D:LockEntry>
, 9)
, 9)
SAX.endElement(D:LockEntry)
SAX.characters(
</D:supportedlock>
, 7)
, 7)
SAX.endElement(D:supportedlock)
SAX.characters(
</D:prop>
<D:status>H, 5)
, 5)
SAX.endElement(D:prop)
SAX.characters(
<D:status>HTTP/1.1 200 OK, 5)
, 5)
SAX.startElement(D:status)
SAX.characters(HTTP/1.1 200 OK</D:status>
<, 15)
SAX.characters(HTTP/1.1 200 OK, 15)
SAX.endElement(D:status)
SAX.characters(
</D:response>
</D:multistat, 3)
, 3)
SAX.endElement(D:response)
SAX.characters(
</D:multistatus>
, 1)
SAX.endElement(D:multistatus)
SAX.endDocument()

View File

@ -2,103 +2,83 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(S:multistatus, xmlns:S='http://www.ietf.org/standards/dav/', xmlns:R='http://www.foo.bar/boxschema/')
SAX.characters(
<S:response>
<S:href>ht, 3)
, 3)
SAX.startElement(S:response)
SAX.characters(
<S:href>http://www.foo.ba, 5)
, 5)
SAX.startElement(S:href)
SAX.characters(http://www.foo.bar/container/<, 29)
SAX.characters(http://www.foo.bar/container/, 29)
SAX.endElement(S:href)
SAX.characters(
<S:prop>
<R:bigbox>, 5)
, 5)
SAX.startElement(S:prop)
SAX.characters(
<R:bigbox>
<R:B, 7)
, 7)
SAX.startElement(R:bigbox)
SAX.characters(
<R:BoxType>Box type A, 9)
, 9)
SAX.startElement(R:BoxType)
SAX.characters(Box type A</R:BoxType>
<, 10)
SAX.characters(Box type A, 10)
SAX.endElement(R:BoxType)
SAX.characters(
</R:bigbox>
<R:au, 7)
, 7)
SAX.endElement(R:bigbox)
SAX.characters(
<R:author>
<R:N, 7)
, 7)
SAX.startElement(R:author)
SAX.characters(
<R:Name>Hadrian</R:Na, 9)
, 9)
SAX.startElement(R:Name)
SAX.characters(Hadrian</R:Name>
</R:aut, 7)
SAX.characters(Hadrian, 7)
SAX.endElement(R:Name)
SAX.characters(
</R:author>
</S:pro, 7)
, 7)
SAX.endElement(R:author)
SAX.characters(
</S:prop>
<S:status>H, 5)
, 5)
SAX.endElement(S:prop)
SAX.characters(
<S:status>HTTP 1.1 200 OK, 5)
, 5)
SAX.startElement(S:status)
SAX.characters(HTTP 1.1 200 OK</S:status>
<, 15)
SAX.characters(HTTP 1.1 200 OK, 15)
SAX.endElement(S:status)
SAX.characters(
</S:response>
<S:response, 3)
, 3)
SAX.endElement(S:response)
SAX.characters(
<S:response>
<S:href>ht, 3)
, 3)
SAX.startElement(S:response)
SAX.characters(
<S:href>http://www.foo.ba, 5)
, 5)
SAX.startElement(S:href)
SAX.characters(http://www.foo.bar/container/i, 39)
SAX.endElement(S:href)
SAX.characters(
<S:prop>
<R:bigbox>, 5)
, 5)
SAX.startElement(S:prop)
SAX.characters(
<R:bigbox>
<R:B, 7)
, 7)
SAX.startElement(R:bigbox)
SAX.characters(
<R:BoxType>Box type B, 9)
, 9)
SAX.startElement(R:BoxType)
SAX.characters(Box type B</R:BoxType>
<, 10)
SAX.characters(Box type B, 10)
SAX.endElement(R:BoxType)
SAX.characters(
</R:bigbox>
</S:pro, 7)
, 7)
SAX.endElement(R:bigbox)
SAX.characters(
</S:prop>
<S:status>H, 5)
, 5)
SAX.endElement(S:prop)
SAX.characters(
<S:status>HTTP 1.1 200 OK, 5)
, 5)
SAX.startElement(S:status)
SAX.characters(HTTP 1.1 200 OK</S:status>
<, 15)
SAX.characters(HTTP 1.1 200 OK, 15)
SAX.endElement(S:status)
SAX.characters(
</S:response>
</S:multistat, 3)
, 3)
SAX.endElement(S:response)
SAX.characters(
</S:multistatus>
, 1)
SAX.endElement(S:multistatus)
SAX.endDocument()

View File

@ -2,76 +2,62 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(D:multistatus, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:R='http://www.foo.bar/boxschema/')
SAX.characters(
<D:response>
<D:href>ht, 3)
, 3)
SAX.startElement(D:response)
SAX.characters(
<D:href>http://www.foo.ba, 5)
, 5)
SAX.startElement(D:href)
SAX.characters(http://www.foo.bar/container/<, 29)
SAX.characters(http://www.foo.bar/container/, 29)
SAX.endElement(D:href)
SAX.characters(
<D:prop>
<R:bigbox/, 5)
, 5)
SAX.startElement(D:prop)
SAX.characters(
<R:bigbox/>
<R:au, 7)
, 7)
SAX.startElement(R:bigbox)
SAX.endElement(R:bigbox)
SAX.characters(
<R:author/>
</D:pro, 7)
, 7)
SAX.startElement(R:author)
SAX.endElement(R:author)
SAX.characters(
</D:prop>
<D:status>H, 5)
, 5)
SAX.endElement(D:prop)
SAX.characters(
<D:status>HTTP 1.1 200 OK, 5)
, 5)
SAX.startElement(D:status)
SAX.characters(HTTP 1.1 200 OK</D:status>
<, 15)
SAX.characters(HTTP 1.1 200 OK, 15)
SAX.endElement(D:status)
SAX.characters(
</D:response>
<D:response, 3)
, 3)
SAX.endElement(D:response)
SAX.characters(
<D:response>
<D:href>ht, 3)
, 3)
SAX.startElement(D:response)
SAX.characters(
<D:href>http://www.foo.ba, 5)
, 5)
SAX.startElement(D:href)
SAX.characters(http://www.foo.bar/container/i, 39)
SAX.endElement(D:href)
SAX.characters(
<D:prop>
<R:bigbox/, 5)
, 5)
SAX.startElement(D:prop)
SAX.characters(
<R:bigbox/>
</D:pro, 7)
, 7)
SAX.startElement(R:bigbox)
SAX.endElement(R:bigbox)
SAX.characters(
</D:prop>
<D:status>H, 5)
, 5)
SAX.endElement(D:prop)
SAX.characters(
<D:status>HTTP 1.1 200 OK, 5)
, 5)
SAX.startElement(D:status)
SAX.characters(HTTP 1.1 200 OK</D:status>
<, 15)
SAX.characters(HTTP 1.1 200 OK, 15)
SAX.endElement(D:status)
SAX.characters(
</D:response>
</D:multistat, 3)
, 3)
SAX.endElement(D:response)
SAX.characters(
</D:multistatus>
, 1)
SAX.endElement(D:multistatus)
SAX.endDocument()

View File

@ -2,69 +2,50 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(D:propertyupdate, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:Z='http://www.w3.com/standards/z39.50/')
SAX.characters(
<D:set>
<D:prop>
, 3)
, 3)
SAX.startElement(D:set)
SAX.characters(
<D:prop>
<Z:authors, 5)
, 5)
SAX.startElement(D:prop)
SAX.characters(
<Z:authors>
<Z:, 7)
, 7)
SAX.startElement(Z:authors)
SAX.characters(
<Z:Author>Jim Whitehe, 9)
, 9)
SAX.startElement(Z:Author)
SAX.characters(Jim Whitehead</Z:Author>
, 13)
SAX.characters(Jim Whitehead, 13)
SAX.endElement(Z:Author)
SAX.characters(
<Z:Author>Roy Fieldin, 9)
, 9)
SAX.startElement(Z:Author)
SAX.characters(Roy Fielding</Z:Author>
, 12)
SAX.characters(Roy Fielding, 12)
SAX.endElement(Z:Author)
SAX.characters(
</Z:authors>
</D:pr, 7)
, 7)
SAX.endElement(Z:authors)
SAX.characters(
</D:prop>
</D:set>
<D, 5)
, 5)
SAX.endElement(D:prop)
SAX.characters(
</D:set>
<D:remove>
<, 3)
, 3)
SAX.endElement(D:set)
SAX.characters(
<D:remove>
<D:prop>
, 3)
, 3)
SAX.startElement(D:remove)
SAX.characters(
<D:prop>
<Z:Copyrig, 5)
, 5)
SAX.startElement(D:prop)
SAX.characters(
<Z:Copyright-Owner/>
, 7)
, 7)
SAX.startElement(Z:Copyright-Owner)
SAX.endElement(Z:Copyright-Owner)
SAX.characters(
</D:prop>
</D:remove>
<, 5)
, 5)
SAX.endElement(D:prop)
SAX.characters(
</D:remove>
</D:propertyupd, 3)
, 3)
SAX.endElement(D:remove)
SAX.characters(
</D:propertyupdate>
, 1)
SAX.endElement(D:propertyupdate)
SAX.endDocument()

View File

@ -2,66 +2,53 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(D:multistatus, xmlns:D='http://www.ietf.org/standards/dav/', xmlns:Z='http://www.w3.com/standards/z39.50/')
SAX.characters(
<D:response>
<D:prop>
, 3)
, 3)
SAX.startElement(D:response)
SAX.characters(
<D:prop>
<Z:Authors, 5)
, 5)
SAX.startElement(D:prop)
SAX.characters(
<Z:Authors/>
</D:pr, 7)
, 7)
SAX.startElement(Z:Authors)
SAX.endElement(Z:Authors)
SAX.characters(
</D:prop>
<D:status>H, 5)
, 5)
SAX.endElement(D:prop)
SAX.characters(
<D:status>HTTP/1.1 420 Me, 5)
, 5)
SAX.startElement(D:status)
SAX.characters(HTTP/1.1 420 Method Failure</D, 27)
SAX.characters(HTTP/1.1 420 Method Failure, 27)
SAX.endElement(D:status)
SAX.characters(
</D:response>
<D:response, 3)
, 3)
SAX.endElement(D:response)
SAX.characters(
<D:response>
<D:prop>
, 3)
, 3)
SAX.startElement(D:response)
SAX.characters(
<D:prop>
<Z:Copyrig, 5)
, 5)
SAX.startElement(D:prop)
SAX.characters(
<Z:Copyright-Owner/>
, 7)
, 7)
SAX.startElement(Z:Copyright-Owner)
SAX.endElement(Z:Copyright-Owner)
SAX.characters(
</D:prop>
<D:status>H, 5)
, 5)
SAX.endElement(D:prop)
SAX.characters(
<D:status>HTTP/1.1 409 Co, 5)
, 5)
SAX.startElement(D:status)
SAX.characters(HTTP/1.1 409 Conflict</D:statu, 21)
SAX.characters(HTTP/1.1 409 Conflict, 21)
SAX.endElement(D:status)
SAX.characters(
</D:response>
<D:response, 3)
, 3)
SAX.endElement(D:response)
SAX.characters(
<D:responsedescription> Cop, 3)
, 3)
SAX.startElement(D:responsedescription)
SAX.characters( Copyright Owner can not be de, 47)
SAX.endElement(D:responsedescription)
SAX.characters(
</D:multistatus>
, 1)
SAX.endElement(D:multistatus)
SAX.endDocument()

View File

@ -2,82 +2,65 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(D:multistatus, xmlns:D='http://www.ietf.org/standards/dav/')
SAX.characters(
<D:response>
<D:href>ht, 3)
, 3)
SAX.startElement(D:response)
SAX.characters(
<D:href>http://www.micros, 5)
, 5)
SAX.startElement(D:href)
SAX.characters(http://www.microsoft.com/user/, 55)
SAX.endElement(D:href)
SAX.characters(
<D:prop>
<D:resourc, 5)
, 5)
SAX.startElement(D:prop)
SAX.characters(
<D:resourcetype>
, 7)
SAX.startElement(D:resourcetype)
SAX.characters(
<D:collection/>
, 9)
, 9)
SAX.startElement(D:collection)
SAX.endElement(D:collection)
SAX.characters(
</D:resourcetype>
<, 7)
, 7)
SAX.endElement(D:resourcetype)
SAX.characters(
</D:prop>
<D:status>H, 5)
, 5)
SAX.endElement(D:prop)
SAX.characters(
<D:status>HTTP 1.1 200 OK, 5)
, 5)
SAX.startElement(D:status)
SAX.characters(HTTP 1.1 200 OK</D:status>
<, 15)
SAX.characters(HTTP 1.1 200 OK, 15)
SAX.endElement(D:status)
SAX.characters(
</D:response>
<D:response, 3)
, 3)
SAX.endElement(D:response)
SAX.characters(
<D:response>
<D:href>
, 3)
, 3)
SAX.startElement(D:response)
SAX.characters(
<D:href>
http://www, 5)
, 5)
SAX.startElement(D:href)
SAX.characters(
http://www.microsoft.co, 66)
SAX.endElement(D:href)
SAX.characters(
<D:prop>
<D:resourc, 5)
, 5)
SAX.startElement(D:prop)
SAX.characters(
<D:resourcetype/>
<, 7)
, 7)
SAX.startElement(D:resourcetype)
SAX.endElement(D:resourcetype)
SAX.characters(
</D:prop>
<D:status>H, 5)
, 5)
SAX.endElement(D:prop)
SAX.characters(
<D:status>HTTP 1.1 200 OK, 5)
, 5)
SAX.startElement(D:status)
SAX.characters(HTTP 1.1 200 OK</D:status>
<, 15)
SAX.characters(HTTP 1.1 200 OK, 15)
SAX.endElement(D:status)
SAX.characters(
</D:response>
</D:multistat, 3)
, 3)
SAX.endElement(D:response)
SAX.characters(
</D:multistatus>
, 1)
SAX.endElement(D:multistatus)
SAX.endDocument()

View File

@ -2,67 +2,59 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(d:multistatus, xmlns:d='http://www.ietf.org/standards/dav/')
SAX.characters(
<d:response>
<d:href>ht, 3)
, 3)
SAX.startElement(d:response)
SAX.characters(
<d:href>http://www.foo.ba, 5)
, 5)
SAX.startElement(d:href)
SAX.characters(http://www.foo.bar/container/r, 38)
SAX.endElement(d:href)
SAX.characters(
<d:href>http://www.foo.ba, 5)
, 5)
SAX.startElement(d:href)
SAX.characters(http://www.foo.bar/container/r, 38)
SAX.endElement(d:href)
SAX.characters(
<d:status>HTTP/1.1 200 OK, 5)
, 5)
SAX.startElement(d:status)
SAX.characters(HTTP/1.1 200 OK</d:status>
<, 15)
SAX.characters(HTTP/1.1 200 OK, 15)
SAX.endElement(d:status)
SAX.characters(
</d:response>
<d:response, 3)
, 3)
SAX.endElement(d:response)
SAX.characters(
<d:response>
<d:href>ht, 3)
, 3)
SAX.startElement(d:response)
SAX.characters(
<d:href>http://www.foo.ba, 5)
, 5)
SAX.startElement(d:href)
SAX.characters(http://www.foo.bar/container/<, 29)
SAX.characters(http://www.foo.bar/container/, 29)
SAX.endElement(d:href)
SAX.characters(
<d:status>HTTP/1.1 420 Me, 5)
, 5)
SAX.startElement(d:status)
SAX.characters(HTTP/1.1 420 Method Failure</d, 27)
SAX.characters(HTTP/1.1 420 Method Failure, 27)
SAX.endElement(d:status)
SAX.characters(
</d:response>
<d:response, 3)
, 3)
SAX.endElement(d:response)
SAX.characters(
<d:response>
<d:href>ht, 3)
, 3)
SAX.startElement(d:response)
SAX.characters(
<d:href>http://www.foo.ba, 5)
, 5)
SAX.startElement(d:href)
SAX.characters(http://www.foo.bar/container/r, 38)
SAX.endElement(d:href)
SAX.characters(
<d:status>HTTP/1.1 412 Pr, 5)
, 5)
SAX.startElement(d:status)
SAX.characters(HTTP/1.1 412 Precondition Fail, 32)
SAX.endElement(d:status)
SAX.characters(
</d:response>
</d:multistat, 3)
, 3)
SAX.endElement(d:response)
SAX.characters(
</d:multistatus>
, 1)
SAX.endElement(d:multistatus)
SAX.endDocument()

View File

@ -2,58 +2,53 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(d:multistatus, xmlns:d='http://www.ietf.org/standards/dav/')
SAX.characters(
<d:response>
<d:href>ht, 3)
, 3)
SAX.startElement(d:response)
SAX.characters(
<d:href>http://www.foo.ba, 5)
, 5)
SAX.startElement(d:href)
SAX.characters(http://www.foo.bar/othercontai, 43)
SAX.endElement(d:href)
SAX.characters(
<d:href>http://www.foo.ba, 5)
, 5)
SAX.startElement(d:href)
SAX.characters(http://www.foo.bar/othercontai, 43)
SAX.endElement(d:href)
SAX.characters(
<d:href>http://www.foo.ba, 5)
, 5)
SAX.startElement(d:href)
SAX.characters(http://www.foo.bar/othercontai, 34)
SAX.endElement(d:href)
SAX.characters(
<d:href>http://www.foo.ba, 5)
, 5)
SAX.startElement(d:href)
SAX.characters(http://www.foo.bar/othercontai, 39)
SAX.endElement(d:href)
SAX.characters(
<d:status>HTTP/1.1 201 Cr, 5)
, 5)
SAX.startElement(d:status)
SAX.characters(HTTP/1.1 201 Created</d:status, 20)
SAX.characters(HTTP/1.1 201 Created, 20)
SAX.endElement(d:status)
SAX.characters(
</d:response>
<d:response, 3)
, 3)
SAX.endElement(d:response)
SAX.characters(
<d:response>
<d:href>ht, 3)
, 3)
SAX.startElement(d:response)
SAX.characters(
<d:href>http://www.foo.ba, 5)
, 5)
SAX.startElement(d:href)
SAX.characters(http://www.foo.bar/othercontai, 37)
SAX.endElement(d:href)
SAX.characters(
<d:status>HTTP/1.1 412 Pr, 5)
, 5)
SAX.startElement(d:status)
SAX.characters(HTTP/1.1 412 Precondition Fail, 32)
SAX.endElement(d:status)
SAX.characters(
</d:response>
</d:multistat, 3)
, 3)
SAX.endElement(d:response)
SAX.characters(
</d:multistatus>
, 1)
SAX.endElement(d:multistatus)
SAX.endDocument()

View File

@ -2,76 +2,69 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(d:multistatus, xmlns:d='http://www.ietf.org/standards/dav/')
SAX.characters(
<d:response>
<d:href>ht, 3)
, 3)
SAX.startElement(d:response)
SAX.characters(
<d:href>http://www.foo.ba, 5)
, 5)
SAX.startElement(d:href)
SAX.characters(http://www.foo.bar/container/r, 38)
SAX.endElement(d:href)
SAX.characters(
<d:href>http://www.foo.ba, 5)
, 5)
SAX.startElement(d:href)
SAX.characters(http://www.foo.bar/container/r, 38)
SAX.endElement(d:href)
SAX.characters(
<d:href>http://www.foo.ba, 5)
, 5)
SAX.startElement(d:href)
SAX.characters(http://www.foo.bar/container/<, 29)
SAX.characters(http://www.foo.bar/container/, 29)
SAX.endElement(d:href)
SAX.characters(
<d:href>http://www.foo.ba, 5)
, 5)
SAX.startElement(d:href)
SAX.characters(http://www.foo.bar/container/C, 34)
SAX.endElement(d:href)
SAX.characters(
<d:status>HTTP/1.1 201 Cr, 5)
, 5)
SAX.startElement(d:status)
SAX.characters(HTTP/1.1 201 Created</d:status, 20)
SAX.characters(HTTP/1.1 201 Created, 20)
SAX.endElement(d:status)
SAX.characters(
</d:response>
<d:response, 3)
, 3)
SAX.endElement(d:response)
SAX.characters(
<d:response>
<d:href>ht, 3)
, 3)
SAX.startElement(d:response)
SAX.characters(
<d:href>http://www.foo.ba, 5)
, 5)
SAX.startElement(d:href)
SAX.characters(http://www.foo.bar/container/C, 31)
SAX.endElement(d:href)
SAX.characters(
<d:status>HTTP/1.1 420 Me, 5)
, 5)
SAX.startElement(d:status)
SAX.characters(HTTP/1.1 420 Method Failure</d, 27)
SAX.characters(HTTP/1.1 420 Method Failure, 27)
SAX.endElement(d:status)
SAX.characters(
</d:response>
<d:response, 3)
, 3)
SAX.endElement(d:response)
SAX.characters(
<d:response>
<d:href>ht, 3)
, 3)
SAX.startElement(d:response)
SAX.characters(
<d:href>http://www.foo.ba, 5)
, 5)
SAX.startElement(d:href)
SAX.characters(http://www.foo.bar/othercontai, 36)
SAX.endElement(d:href)
SAX.characters(
<d:status>HTTP/1.1 409 Co, 5)
, 5)
SAX.startElement(d:status)
SAX.characters(HTTP/1.1 409 Conflict</d:statu, 21)
SAX.characters(HTTP/1.1 409 Conflict, 21)
SAX.endElement(d:status)
SAX.characters(
</d:response>
</d:multistat, 3)
, 3)
SAX.endElement(d:response)
SAX.characters(
</d:multistatus>
, 1)
SAX.endElement(d:multistatus)
SAX.endDocument()

View File

@ -2,364 +2,322 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(dia:diagram, xmlns:dia='http://www.lysator.liu.se/~alla/dia/')
SAX.characters(
<dia:diagramdata>
<dia:, 3)
, 3)
SAX.startElement(dia:diagramdata)
SAX.characters(
<dia:attribute name="back, 5)
, 5)
SAX.startElement(dia:attribute, name='background')
SAX.characters(
<dia:color val="#ffffff, 7)
, 7)
SAX.startElement(dia:color, val='#ffffff')
SAX.endElement(dia:color)
SAX.characters(
</dia:attribute>
</dia:, 5)
, 5)
SAX.endElement(dia:attribute)
SAX.characters(
</dia:diagramdata>
<dia:l, 3)
, 3)
SAX.endElement(dia:diagramdata)
SAX.characters(
<dia:layer name="Background, 3)
, 3)
SAX.startElement(dia:layer, name='Background', visible='true')
SAX.characters(
<dia:object type="Standar, 5)
, 5)
SAX.startElement(dia:object, type='Standard - Line', version='0', id='O0')
SAX.characters(
<dia:attribute name="ob, 7)
, 7)
SAX.startElement(dia:attribute, name='obj_pos')
SAX.characters(
<dia:point val="1.95,, 9)
, 9)
SAX.startElement(dia:point, val='1.95,6.85')
SAX.endElement(dia:point)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="ob, 7)
, 7)
SAX.startElement(dia:attribute, name='obj_bb')
SAX.characters(
<dia:rectangle val="1, 9)
, 9)
SAX.startElement(dia:rectangle, val='1.9,6.8;11,8.55')
SAX.endElement(dia:rectangle)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="co, 7)
, 7)
SAX.startElement(dia:attribute, name='conn_endpoints')
SAX.characters(
<dia:point val="1.95,, 9)
, 9)
SAX.startElement(dia:point, val='1.95,6.85')
SAX.endElement(dia:point)
SAX.characters(
<dia:point val="10.95, 9)
, 9)
SAX.startElement(dia:point, val='10.95,8.5')
SAX.endElement(dia:point)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="li, 7)
, 7)
SAX.startElement(dia:attribute, name='line_color')
SAX.characters(
<dia:color val="#0000, 9)
, 9)
SAX.startElement(dia:color, val='#000000')
SAX.endElement(dia:color)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="li, 7)
, 7)
SAX.startElement(dia:attribute, name='line_width')
SAX.characters(
<dia:real val="0.1"/>, 9)
, 9)
SAX.startElement(dia:real, val='0.1')
SAX.endElement(dia:real)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="li, 7)
, 7)
SAX.startElement(dia:attribute, name='line_style')
SAX.characters(
<dia:enum val="0"/>
, 9)
, 9)
SAX.startElement(dia:enum, val='0')
SAX.endElement(dia:enum)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="st, 7)
, 7)
SAX.startElement(dia:attribute, name='start_arrow')
SAX.characters(
<dia:enum val="0"/>
, 9)
, 9)
SAX.startElement(dia:enum, val='0')
SAX.endElement(dia:enum)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="en, 7)
, 7)
SAX.startElement(dia:attribute, name='end_arrow')
SAX.characters(
<dia:enum val="0"/>
, 9)
, 9)
SAX.startElement(dia:enum, val='0')
SAX.endElement(dia:enum)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:connections>
, 7)
, 7)
SAX.startElement(dia:connections)
SAX.characters(
<dia:connection handl, 9)
, 9)
SAX.startElement(dia:connection, handle='1', to='O2', connection='3')
SAX.endElement(dia:connection)
SAX.characters(
</dia:connections>
, 7)
, 7)
SAX.endElement(dia:connections)
SAX.characters(
</dia:object>
<dia:ob, 5)
, 5)
SAX.endElement(dia:object)
SAX.characters(
<dia:object type="Standar, 5)
, 5)
SAX.startElement(dia:object, type='Standard - Text', version='0', id='O1')
SAX.characters(
<dia:attribute name="ob, 7)
, 7)
SAX.startElement(dia:attribute, name='obj_pos')
SAX.characters(
<dia:point val="4.8,4, 9)
, 9)
SAX.startElement(dia:point, val='4.8,4.75')
SAX.endElement(dia:point)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="ob, 7)
, 7)
SAX.startElement(dia:attribute, name='obj_bb')
SAX.characters(
<dia:rectangle val="2, 9)
, 9)
SAX.startElement(dia:rectangle, val='2.579,3.96359;7.021,4.96359')
SAX.endElement(dia:rectangle)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="te, 7)
, 7)
SAX.startElement(dia:attribute, name='text')
SAX.characters(
<dia:composite type=", 9)
, 9)
SAX.startElement(dia:composite, type='text')
SAX.characters(
<dia:attribute name, 11)
, 11)
SAX.startElement(dia:attribute, name='string')
SAX.characters(
<dia:string val=", 13)
, 13)
SAX.startElement(dia:string, val='sdfsdfg')
SAX.endElement(dia:string)
SAX.characters(
</dia:attribute>
, 11)
, 11)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name, 11)
, 11)
SAX.startElement(dia:attribute, name='font')
SAX.characters(
<dia:font name="C, 13)
, 13)
SAX.startElement(dia:font, name='Courier')
SAX.endElement(dia:font)
SAX.characters(
</dia:attribute>
, 11)
, 11)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name, 11)
, 11)
SAX.startElement(dia:attribute, name='height')
SAX.characters(
<dia:real val="1", 13)
, 13)
SAX.startElement(dia:real, val='1')
SAX.endElement(dia:real)
SAX.characters(
</dia:attribute>
, 11)
, 11)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name, 11)
, 11)
SAX.startElement(dia:attribute, name='pos')
SAX.characters(
<dia:point val="4, 13)
, 13)
SAX.startElement(dia:point, val='4.8,4.75')
SAX.endElement(dia:point)
SAX.characters(
</dia:attribute>
, 11)
, 11)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name, 11)
, 11)
SAX.startElement(dia:attribute, name='color')
SAX.characters(
<dia:color val="#, 13)
, 13)
SAX.startElement(dia:color, val='#000000')
SAX.endElement(dia:color)
SAX.characters(
</dia:attribute>
, 11)
, 11)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name, 11)
, 11)
SAX.startElement(dia:attribute, name='alignment')
SAX.characters(
<dia:enum val="1", 13)
, 13)
SAX.startElement(dia:enum, val='1')
SAX.endElement(dia:enum)
SAX.characters(
</dia:attribute>
, 11)
, 11)
SAX.endElement(dia:attribute)
SAX.characters(
</dia:composite>
, 9)
, 9)
SAX.endElement(dia:composite)
SAX.characters(
</dia:attribute>
</, 7)
SAX.endElement(dia:attribute)
SAX.characters(
</dia:object>
<dia:ob, 5)
SAX.endElement(dia:object)
SAX.characters(
<dia:object type="Standar, 5)
SAX.startElement(dia:object, type='Standard - Box', version='0', id='O2')
SAX.characters(
<dia:attribute name="ob, 7)
SAX.startElement(dia:attribute, name='obj_pos')
SAX.characters(
<dia:point val="10.95, 9)
SAX.startElement(dia:point, val='10.95,7.5')
SAX.endElement(dia:point)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="ob, 7)
, 5)
SAX.endElement(dia:object)
SAX.characters(
, 5)
SAX.startElement(dia:object, type='Standard - Box', version='0', id='O2')
SAX.characters(
, 7)
SAX.startElement(dia:attribute, name='obj_pos')
SAX.characters(
, 9)
SAX.startElement(dia:point, val='10.95,7.5')
SAX.endElement(dia:point)
SAX.characters(
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
, 7)
SAX.startElement(dia:attribute, name='obj_bb')
SAX.characters(
<dia:rectangle val="1, 9)
, 9)
SAX.startElement(dia:rectangle, val='10.9,7.45;13.05,9.55')
SAX.endElement(dia:rectangle)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="el, 7)
, 7)
SAX.startElement(dia:attribute, name='elem_corner')
SAX.characters(
<dia:point val="10.95, 9)
, 9)
SAX.startElement(dia:point, val='10.95,7.5')
SAX.endElement(dia:point)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="el, 7)
, 7)
SAX.startElement(dia:attribute, name='elem_width')
SAX.characters(
<dia:real val="2.05"/, 9)
, 9)
SAX.startElement(dia:real, val='2.05')
SAX.endElement(dia:real)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="el, 7)
, 7)
SAX.startElement(dia:attribute, name='elem_height')
SAX.characters(
<dia:real val="2"/>
, 9)
, 9)
SAX.startElement(dia:real, val='2')
SAX.endElement(dia:real)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="bo, 7)
, 7)
SAX.startElement(dia:attribute, name='border_width')
SAX.characters(
<dia:real val="0.1"/>, 9)
, 9)
SAX.startElement(dia:real, val='0.1')
SAX.endElement(dia:real)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="bo, 7)
, 7)
SAX.startElement(dia:attribute, name='border_color')
SAX.characters(
<dia:color val="#0000, 9)
, 9)
SAX.startElement(dia:color, val='#000000')
SAX.endElement(dia:color)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="in, 7)
, 7)
SAX.startElement(dia:attribute, name='inner_color')
SAX.characters(
<dia:color val="#ffff, 9)
, 9)
SAX.startElement(dia:color, val='#ffffff')
SAX.endElement(dia:color)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="li, 7)
, 7)
SAX.startElement(dia:attribute, name='line_style')
SAX.characters(
<dia:enum val="0"/>
, 9)
, 9)
SAX.startElement(dia:enum, val='0')
SAX.endElement(dia:enum)
SAX.characters(
</dia:attribute>
</, 7)
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
</dia:object>
</dia:lay, 5)
, 5)
SAX.endElement(dia:object)
SAX.characters(
</dia:layer>
</dia:diagram>, 3)
, 3)
SAX.endElement(dia:layer)
SAX.characters(
</dia:diagram>
, 1)
SAX.endElement(dia:diagram)
SAX.endDocument()

View File

@ -2,364 +2,322 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(dia:diagram, xmlns:dia='http://www.lysator.liu.se/~alla/dia/')
SAX.characters(
<dia:diagramdata>
<dia:, 3)
, 3)
SAX.startElement(dia:diagramdata)
SAX.characters(
<dia:attribute name="back, 5)
, 5)
SAX.startElement(dia:attribute, name='background')
SAX.characters(
<dia:color val="#ffffff, 7)
, 7)
SAX.startElement(dia:color, val='#ffffff')
SAX.endElement(dia:color)
SAX.characters(
</dia:attribute>
</dia:, 5)
, 5)
SAX.endElement(dia:attribute)
SAX.characters(
</dia:diagramdata>
<dia:l, 3)
, 3)
SAX.endElement(dia:diagramdata)
SAX.characters(
<dia:layer name="Background, 3)
, 3)
SAX.startElement(dia:layer, name='Background', visible='true')
SAX.characters(
<dia:object type="Standar, 5)
, 5)
SAX.startElement(dia:object, type='Standard - Line', version='0', id='O0')
SAX.characters(
<dia:attribute name="ob, 7)
, 7)
SAX.startElement(dia:attribute, name='obj_pos')
SAX.characters(
<dia:point val="1.95,, 9)
, 9)
SAX.startElement(dia:point, val='1.95,6.85')
SAX.endElement(dia:point)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="ob, 7)
, 7)
SAX.startElement(dia:attribute, name='obj_bb')
SAX.characters(
<dia:rectangle val="1, 9)
, 9)
SAX.startElement(dia:rectangle, val='1.9,6.8;11,8.55')
SAX.endElement(dia:rectangle)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="co, 7)
, 7)
SAX.startElement(dia:attribute, name='conn_endpoints')
SAX.characters(
<dia:point val="1.95,, 9)
, 9)
SAX.startElement(dia:point, val='1.95,6.85')
SAX.endElement(dia:point)
SAX.characters(
<dia:point val="10.95, 9)
, 9)
SAX.startElement(dia:point, val='10.95,8.5')
SAX.endElement(dia:point)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="li, 7)
, 7)
SAX.startElement(dia:attribute, name='line_color')
SAX.characters(
<dia:color val="#0000, 9)
, 9)
SAX.startElement(dia:color, val='#000000')
SAX.endElement(dia:color)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="li, 7)
, 7)
SAX.startElement(dia:attribute, name='line_width')
SAX.characters(
<dia:real val="0.1"/>, 9)
, 9)
SAX.startElement(dia:real, val='0.1')
SAX.endElement(dia:real)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="li, 7)
, 7)
SAX.startElement(dia:attribute, name='line_style')
SAX.characters(
<dia:enum val="0"/>
, 9)
, 9)
SAX.startElement(dia:enum, val='0')
SAX.endElement(dia:enum)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="st, 7)
, 7)
SAX.startElement(dia:attribute, name='start_arrow')
SAX.characters(
<dia:enum val="0"/>
, 9)
, 9)
SAX.startElement(dia:enum, val='0')
SAX.endElement(dia:enum)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="en, 7)
, 7)
SAX.startElement(dia:attribute, name='end_arrow')
SAX.characters(
<dia:enum val="0"/>
, 9)
, 9)
SAX.startElement(dia:enum, val='0')
SAX.endElement(dia:enum)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:connections>
, 7)
, 7)
SAX.startElement(dia:connections)
SAX.characters(
<dia:connection handl, 9)
, 9)
SAX.startElement(dia:connection, handle='1', to='O2', connection='3')
SAX.endElement(dia:connection)
SAX.characters(
</dia:connections>
, 7)
, 7)
SAX.endElement(dia:connections)
SAX.characters(
</dia:object>
<dia:ob, 5)
, 5)
SAX.endElement(dia:object)
SAX.characters(
<dia:object type="Standar, 5)
, 5)
SAX.startElement(dia:object, type='Standard - Text', version='0', id='O1')
SAX.characters(
<dia:attribute name="ob, 7)
, 7)
SAX.startElement(dia:attribute, name='obj_pos')
SAX.characters(
<dia:point val="4.8,4, 9)
, 9)
SAX.startElement(dia:point, val='4.8,4.75')
SAX.endElement(dia:point)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="ob, 7)
, 7)
SAX.startElement(dia:attribute, name='obj_bb')
SAX.characters(
<dia:rectangle val="2, 9)
, 9)
SAX.startElement(dia:rectangle, val='2.579,3.96359;7.021,4.96359')
SAX.endElement(dia:rectangle)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="te, 7)
, 7)
SAX.startElement(dia:attribute, name='text')
SAX.characters(
<dia:composite type=", 9)
, 9)
SAX.startElement(dia:composite, type='text')
SAX.characters(
<dia:attribute name, 11)
, 11)
SAX.startElement(dia:attribute, name='string')
SAX.characters(
<dia:string val=", 13)
, 13)
SAX.startElement(dia:string, val='sdfsdfg')
SAX.endElement(dia:string)
SAX.characters(
</dia:attribute>
, 11)
, 11)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name, 11)
, 11)
SAX.startElement(dia:attribute, name='font')
SAX.characters(
<dia:font name="C, 13)
, 13)
SAX.startElement(dia:font, name='Courier')
SAX.endElement(dia:font)
SAX.characters(
</dia:attribute>
, 11)
, 11)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name, 11)
, 11)
SAX.startElement(dia:attribute, name='height')
SAX.characters(
<dia:real val="1", 13)
, 13)
SAX.startElement(dia:real, val='1')
SAX.endElement(dia:real)
SAX.characters(
</dia:attribute>
, 11)
, 11)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name, 11)
, 11)
SAX.startElement(dia:attribute, name='pos')
SAX.characters(
<dia:point val="4, 13)
, 13)
SAX.startElement(dia:point, val='4.8,4.75')
SAX.endElement(dia:point)
SAX.characters(
</dia:attribute>
, 11)
, 11)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name, 11)
, 11)
SAX.startElement(dia:attribute, name='color')
SAX.characters(
<dia:color val="#, 13)
, 13)
SAX.startElement(dia:color, val='#000000')
SAX.endElement(dia:color)
SAX.characters(
</dia:attribute>
, 11)
, 11)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name, 11)
, 11)
SAX.startElement(dia:attribute, name='alignment')
SAX.characters(
<dia:enum val="1", 13)
, 13)
SAX.startElement(dia:enum, val='1')
SAX.endElement(dia:enum)
SAX.characters(
</dia:attribute>
, 11)
, 11)
SAX.endElement(dia:attribute)
SAX.characters(
</dia:composite>
, 9)
, 9)
SAX.endElement(dia:composite)
SAX.characters(
</dia:attribute>
</, 7)
SAX.endElement(dia:attribute)
SAX.characters(
</dia:object>
<dia:ob, 5)
SAX.endElement(dia:object)
SAX.characters(
<dia:object type="Standar, 5)
SAX.startElement(dia:object, type='Standard - Box', version='0', id='O2')
SAX.characters(
<dia:attribute name="ob, 7)
SAX.startElement(dia:attribute, name='obj_pos')
SAX.characters(
<dia:point val="10.95, 9)
SAX.startElement(dia:point, val='10.95,7.5')
SAX.endElement(dia:point)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="ob, 7)
, 5)
SAX.endElement(dia:object)
SAX.characters(
, 5)
SAX.startElement(dia:object, type='Standard - Box', version='0', id='O2')
SAX.characters(
, 7)
SAX.startElement(dia:attribute, name='obj_pos')
SAX.characters(
, 9)
SAX.startElement(dia:point, val='10.95,7.5')
SAX.endElement(dia:point)
SAX.characters(
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
, 7)
SAX.startElement(dia:attribute, name='obj_bb')
SAX.characters(
<dia:rectangle val="1, 9)
, 9)
SAX.startElement(dia:rectangle, val='10.9,7.45;13.05,9.55')
SAX.endElement(dia:rectangle)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="el, 7)
, 7)
SAX.startElement(dia:attribute, name='elem_corner')
SAX.characters(
<dia:point val="10.95, 9)
, 9)
SAX.startElement(dia:point, val='10.95,7.5')
SAX.endElement(dia:point)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="el, 7)
, 7)
SAX.startElement(dia:attribute, name='elem_width')
SAX.characters(
<dia:real val="2.05"/, 9)
, 9)
SAX.startElement(dia:real, val='2.05')
SAX.endElement(dia:real)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="el, 7)
, 7)
SAX.startElement(dia:attribute, name='elem_height')
SAX.characters(
<dia:real val="2"/>
, 9)
, 9)
SAX.startElement(dia:real, val='2')
SAX.endElement(dia:real)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="bo, 7)
, 7)
SAX.startElement(dia:attribute, name='border_width')
SAX.characters(
<dia:real val="0.1"/>, 9)
, 9)
SAX.startElement(dia:real, val='0.1')
SAX.endElement(dia:real)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="bo, 7)
, 7)
SAX.startElement(dia:attribute, name='border_color')
SAX.characters(
<dia:color val="#0000, 9)
, 9)
SAX.startElement(dia:color, val='#000000')
SAX.endElement(dia:color)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="in, 7)
, 7)
SAX.startElement(dia:attribute, name='inner_color')
SAX.characters(
<dia:color val="#ffff, 9)
, 9)
SAX.startElement(dia:color, val='#ffffff')
SAX.endElement(dia:color)
SAX.characters(
</dia:attribute>
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
<dia:attribute name="li, 7)
, 7)
SAX.startElement(dia:attribute, name='line_style')
SAX.characters(
<dia:enum val="0"/>
, 9)
, 9)
SAX.startElement(dia:enum, val='0')
SAX.endElement(dia:enum)
SAX.characters(
</dia:attribute>
</, 7)
, 7)
SAX.endElement(dia:attribute)
SAX.characters(
</dia:object>
</dia:lay, 5)
, 5)
SAX.endElement(dia:object)
SAX.characters(
</dia:layer>
</dia:diagram>, 3)
, 3)
SAX.endElement(dia:layer)
SAX.characters(
</dia:diagram>
, 1)
SAX.endElement(dia:diagram)
SAX.endDocument()

View File

@ -4,7 +4,6 @@ SAX.internalSubset(MEMO, -//SGMLSOURCE//DTD MEMO//EN, http://www.sgmlsource.com/
SAX.resolveEntity(-//SGMLSOURCE//DTD MEMO//EN, http://www.sgmlsource.com/dtds/memo.dtd)
SAX.startElement(MEMO)
SAX.characters(
</MEMO>
, 1)
SAX.endElement(MEMO)
SAX.endDocument()

View File

@ -8,14 +8,13 @@ SAX.elementDecl(c, 3, ...)
SAX.elementDecl(d, 3, ...)
SAX.startElement(doc)
SAX.startElement(b)
SAX.characters(This</b><c> is a</c><d> valid , 4)
SAX.characters(This, 4)
SAX.endElement(b)
SAX.startElement(c)
SAX.characters( is a</c><d> valid document</d, 5)
SAX.characters( is a, 5)
SAX.endElement(c)
SAX.startElement(d)
SAX.characters( valid document</d></doc>
, 15)
SAX.characters( valid document, 15)
SAX.endElement(d)
SAX.endElement(doc)
SAX.endDocument()

View File

@ -3,6 +3,6 @@ SAX.startDocument()
SAX.internalSubset(doc, (null), (null))
SAX.elementDecl(doc, 3, ...)
SAX.startElement(doc)
SAX.characters(This is a valid document !</do, 26)
SAX.characters(This is a valid document !, 26)
SAX.endElement(doc)
SAX.endDocument()

View File

@ -3,6 +3,6 @@ SAX.startDocument()
SAX.internalSubset(doc, (null), (null))
SAX.elementDecl(doc, 2, ...)
SAX.startElement(doc)
SAX.characters(This is a valid document !</do, 26)
SAX.characters(This is a valid document !, 26)
SAX.endElement(doc)
SAX.endDocument()

View File

@ -6,14 +6,12 @@ SAX.elementDecl(a, 3, ...)
SAX.elementDecl(b, 3, ...)
SAX.startElement(doc)
SAX.startElement(a)
SAX.characters(This</a> is a <b>valid</b> doc, 4)
SAX.characters(This, 4)
SAX.endElement(a)
SAX.characters( is a <b>valid</b> document</d, 6)
SAX.characters( is a , 6)
SAX.startElement(b)
SAX.characters(valid</b> document</doc>
, 5)
SAX.characters(valid, 5)
SAX.endElement(b)
SAX.characters( document</doc>
, 9)
SAX.characters( document, 9)
SAX.endElement(doc)
SAX.endDocument()

View File

@ -6,14 +6,13 @@ SAX.elementDecl(a, 3, ...)
SAX.elementDecl(b, 3, ...)
SAX.startElement(doc)
SAX.startElement(a)
SAX.characters(This</a><b> is a valid</b><a> , 4)
SAX.characters(This, 4)
SAX.endElement(a)
SAX.startElement(b)
SAX.characters( is a valid</b><a> document</a, 11)
SAX.characters( is a valid, 11)
SAX.endElement(b)
SAX.startElement(a)
SAX.characters( document</a></doc>
, 9)
SAX.characters( document, 9)
SAX.endElement(a)
SAX.endElement(doc)
SAX.endDocument()

View File

@ -6,10 +6,10 @@ SAX.elementDecl(a, 3, ...)
SAX.elementDecl(b, 3, ...)
SAX.startElement(doc)
SAX.startElement(a)
SAX.characters(This</a><b> is a valid documen, 4)
SAX.characters(This, 4)
SAX.endElement(a)
SAX.startElement(b)
SAX.characters( is a valid document</b></doc>, 20)
SAX.characters( is a valid document, 20)
SAX.endElement(b)
SAX.endElement(doc)
SAX.endDocument()

View File

@ -8,10 +8,10 @@ SAX.elementDecl(c, 3, ...)
SAX.elementDecl(d, 3, ...)
SAX.startElement(doc)
SAX.startElement(b)
SAX.characters(This</b><c> is a valid documen, 4)
SAX.characters(This, 4)
SAX.endElement(b)
SAX.startElement(c)
SAX.characters( is a valid document</c></doc>, 20)
SAX.characters( is a valid document, 20)
SAX.endElement(c)
SAX.endElement(doc)
SAX.endDocument()

View File

@ -8,10 +8,10 @@ SAX.elementDecl(c, 3, ...)
SAX.elementDecl(d, 3, ...)
SAX.startElement(doc)
SAX.startElement(b)
SAX.characters(This</b><d> is a valid documen, 4)
SAX.characters(This, 4)
SAX.endElement(b)
SAX.startElement(d)
SAX.characters( is a valid document</d></doc>, 20)
SAX.characters( is a valid document, 20)
SAX.endElement(d)
SAX.endElement(doc)
SAX.endDocument()

View File

@ -6,16 +6,13 @@ SAX.entityDecl(xml, 1, (null), (null), Extensible Markup Language)
SAX.getEntity(xml)
SAX.startElement(EXAMPLE)
SAX.characters(
&xml;
</EXAMPLE>
, 5)
, 5)
SAX.getEntity(xml)
SAX.isStandalone()
SAX.hasInternalSubset()
SAX.hasExternalSubset()
SAX.error: Entity 'xml' not defined
SAX.characters(
</EXAMPLE>
, 1)
SAX.endElement(EXAMPLE)
SAX.endDocument()

View File

@ -8,8 +8,7 @@ SAX.entityDecl(title, 2, -//MY-TITLE//FR, title.xml, (null))
SAX.entityDecl(image, 3, (null), img.gif, GIF)
SAX.startElement(EXAMPLE)
SAX.characters(
&title;
This text is abou, 3)
, 3)
SAX.getEntity(title)
SAX.isStandalone()
SAX.hasInternalSubset()
@ -22,12 +21,10 @@ SAX.isStandalone()
SAX.hasInternalSubset()
SAX.hasExternalSubset()
SAX.error: Entity 'xml' not defined
SAX.characters( and this is an embedded <IMG , 25)
SAX.characters( and this is an embedded , 25)
SAX.startElement(IMG, src='image')
SAX.endElement(IMG)
SAX.characters(
</EXAMPLE>
, 1)
SAX.endElement(EXAMPLE)
SAX.endDocument()

View File

@ -6,16 +6,13 @@ SAX.entityDecl(xml, 1, (null), (null), Extensible Markup Language)
SAX.getEntity(xml)
SAX.startElement(EXAMPLE)
SAX.characters(
Test of &amp;amp; behaviour, 11)
Test of , 11)
SAX.getEntity(amp)
SAX.characters(&, 1)
SAX.characters(amp; behaviour a&amp;b .
</EXA, 16)
SAX.characters(amp; behaviour a, 16)
SAX.getEntity(amp)
SAX.characters(&, 1)
SAX.characters(b .
</EXAMPLE>
, 4)
SAX.endElement(EXAMPLE)
SAX.endDocument()

View File

@ -5,11 +5,9 @@ SAX.characters(
This is an inverted excla, 42)
SAX.characters(¡, 1)
SAX.characters(
This is a space &#32;
</, 21)
This is a space , 21)
SAX.characters( , 1)
SAX.characters(
</EXAMPLE>
, 2)
SAX.endElement(EXAMPLE)
SAX.endDocument()

View File

@ -2,73 +2,61 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(RDF:RDF, xmlsn:p3p='http//www.w3.org/TR/1998/WD-P3P10-syntax#proposal.DTD', xmlns:RDF='http://www.w3.org/TR/WD-rdf-syntax#')
SAX.characters(
<PROP realm="http://www.CoolC, 1)
, 1)
SAX.startElement(PROP, realm='http://www.CoolCatalog.com/catalogue/', entity='CoolCatalog', agreeID='94df1293a3e519bb', assurance='http://www.TrustUs.org')
SAX.characters(
<USES>
<STATEMENT purp="2, 3)
, 3)
SAX.startElement(USES)
SAX.characters(
<STATEMENT purp="2,3" recpn, 3)
, 3)
SAX.startElement(STATEMENT, purp='2,3', recpnt='0', id='0', consq='a site with clothes you'd appreciate.')
SAX.characters(
<WITH><PREFIX name="User., 5)
, 5)
SAX.startElement(WITH)
SAX.startElement(PREFIX, name='User.')
SAX.characters(
<REF name="Name.First"/>, 6)
, 6)
SAX.startElement(REF, name='Name.First')
SAX.endElement(REF)
SAX.characters(
<REF name="Bdate.Year" o, 6)
, 6)
SAX.startElement(REF, name='Bdate.Year', optional='1')
SAX.endElement(REF)
SAX.characters(
<REF name="Gender"/>
, 6)
, 6)
SAX.startElement(REF, name='Gender')
SAX.endElement(REF)
SAX.characters(
</PREFIX></WITH>
</STAT, 5)
, 5)
SAX.endElement(PREFIX)
SAX.endElement(WITH)
SAX.characters(
</STATEMENT>
</USES>
<U, 3)
, 3)
SAX.endElement(STATEMENT)
SAX.characters(
</USES>
<USES>
<STATEME, 3)
, 3)
SAX.endElement(USES)
SAX.characters(
<USES>
<STATEMENT action=, 3)
, 3)
SAX.startElement(USES)
SAX.characters(
<STATEMENT action="read&amp, 3)
, 3)
SAX.startElement(STATEMENT, action='read&amp;write', purp='0', recpnt='0', id='1')
SAX.characters(
<REF name="User.Shipping., 5)
, 5)
SAX.startElement(REF, name='User.Shipping.')
SAX.endElement(REF)
SAX.characters(
</STATEMENT>
</USES>
<D, 3)
, 3)
SAX.endElement(STATEMENT)
SAX.characters(
</USES>
<DISCLOSURE discU, 3)
, 3)
SAX.endElement(USES)
SAX.characters(
<DISCLOSURE discURI="http:/, 3)
, 3)
SAX.startElement(DISCLOSURE, discURI='http://www.CoolCatalog.com/PrivacyPractice.html', access='3', other='0,1')
SAX.endElement(DISCLOSURE)
SAX.characters(
</PROP></RDF:RDF>
, 1)
SAX.endElement(PROP)
SAX.endElement(RDF:RDF)

View File

@ -2,222 +2,189 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(RDF:RDF, xmlns:RPM='http://www.rpm.org/', xmlns:RDF='http://www.w3.org/TR/WD-rdf-syntax#')
SAX.characters(
<RDF:Description HREF="ftp:, 3)
, 3)
SAX.startElement(RDF:Description, HREF='ftp://rufus.w3.org/linux/redhat/redhat-5.1/i386/RedHat/RPMS/rpm-2.5-2.i386.rpm')
SAX.characters(
<RPM:Name>rpm</RPM:Name>
, 5)
, 5)
SAX.startElement(RPM:Name)
SAX.characters(rpm</RPM:Name>
<RPM:Versio, 3)
SAX.characters(rpm, 3)
SAX.endElement(RPM:Name)
SAX.characters(
<RPM:Version>2.5</RPM:Ver, 5)
, 5)
SAX.startElement(RPM:Version)
SAX.characters(2.5</RPM:Version>
<RPM:Rel, 3)
SAX.characters(2.5, 3)
SAX.endElement(RPM:Version)
SAX.characters(
<RPM:Release>2</RPM:Relea, 5)
, 5)
SAX.startElement(RPM:Release)
SAX.characters(2</RPM:Release>
<RPM:Arch>, 1)
SAX.characters(2, 1)
SAX.endElement(RPM:Release)
SAX.characters(
<RPM:Arch>i386</RPM:Arch>, 5)
, 5)
SAX.startElement(RPM:Arch)
SAX.characters(i386</RPM:Arch>
<RPM:Os>Li, 4)
SAX.characters(i386, 4)
SAX.endElement(RPM:Arch)
SAX.characters(
<RPM:Os>Linux</RPM:Os>
, 5)
, 5)
SAX.startElement(RPM:Os)
SAX.characters(Linux</RPM:Os>
<RPM:Distri, 5)
SAX.characters(Linux, 5)
SAX.endElement(RPM:Os)
SAX.characters(
<RPM:Distribution>Manhatt, 5)
, 5)
SAX.startElement(RPM:Distribution)
SAX.characters(Manhattan </RPM:Distribution>
, 10)
SAX.characters(Manhattan , 10)
SAX.endElement(RPM:Distribution)
SAX.characters(
<RPM:Vendor>Red Hat Softw, 5)
, 5)
SAX.startElement(RPM:Vendor)
SAX.characters(Red Hat Software</RPM:Vendor>
, 16)
SAX.characters(Red Hat Software, 16)
SAX.endElement(RPM:Vendor)
SAX.characters(
<RPM:Packager>Red Hat Sof, 5)
, 5)
SAX.startElement(RPM:Packager)
SAX.characters(Red Hat Software &lt;bugs@redh, 17)
SAX.characters(Red Hat Software , 17)
SAX.getEntity(lt)
SAX.characters(<, 1)
SAX.characters(bugs@redhat.com&gt;</RPM:Packa, 15)
SAX.characters(bugs@redhat.com, 15)
SAX.getEntity(gt)
SAX.characters(>, 1)
SAX.endElement(RPM:Packager)
SAX.characters(
<RPM:Group>Utilities/Syst, 5)
, 5)
SAX.startElement(RPM:Group)
SAX.characters(Utilities/System</RPM:Group>
, 16)
SAX.characters(Utilities/System, 16)
SAX.endElement(RPM:Group)
SAX.characters(
<RPM:Summary>Red Hat Pack, 5)
, 5)
SAX.startElement(RPM:Summary)
SAX.characters(Red Hat Package Manager</RPM:S, 23)
SAX.characters(Red Hat Package Manager, 23)
SAX.endElement(RPM:Summary)
SAX.characters(
<RPM:Description>RPM is a, 5)
, 5)
SAX.startElement(RPM:Description)
SAX.characters(RPM is a powerful package mana, 248)
SAX.endElement(RPM:Description)
SAX.characters(
<RPM:Copyright>GPL</RPM:C, 5)
, 5)
SAX.startElement(RPM:Copyright)
SAX.characters(GPL</RPM:Copyright>
<RPM:C, 3)
SAX.characters(GPL, 3)
SAX.endElement(RPM:Copyright)
SAX.characters(
<RPM:Changelog>* Sun May , 5)
, 5)
SAX.startElement(RPM:Changelog)
SAX.characters(* Sun May 10 1998 Prospector S, 36)
SAX.getEntity(lt)
SAX.characters(<, 1)
SAX.characters(bugs@redhat.com&gt;
- transl, 15)
SAX.characters(bugs@redhat.com, 15)
SAX.getEntity(gt)
SAX.characters(>, 1)
SAX.characters(
- translations modified for, 42)
SAX.endElement(RPM:Changelog)
SAX.characters(
<RPM:Sources>rpm-2.5-2.sr, 5)
, 5)
SAX.startElement(RPM:Sources)
SAX.characters(rpm-2.5-2.src.rpm</RPM:Sources, 17)
SAX.characters(rpm-2.5-2.src.rpm, 17)
SAX.endElement(RPM:Sources)
SAX.characters(
<RPM:SourcesFtp>ftp://ftp, 5)
, 5)
SAX.startElement(RPM:SourcesFtp)
SAX.characters(ftp://ftp.redhat.com/pub/redha, 48)
SAX.endElement(RPM:SourcesFtp)
SAX.characters(
<RPM:BuildDate>Sun May 10, 5)
, 5)
SAX.startElement(RPM:BuildDate)
SAX.characters(Sun May 10 14:52:32 1998</RPM:, 24)
SAX.characters(Sun May 10 14:52:32 1998, 24)
SAX.endElement(RPM:BuildDate)
SAX.characters(
<RPM:Date>894826352</RPM:, 5)
, 5)
SAX.startElement(RPM:Date)
SAX.characters(894826352</RPM:Date>
<RPM:, 9)
SAX.characters(894826352, 9)
SAX.endElement(RPM:Date)
SAX.characters(
<RPM:Size>850599</RPM:Siz, 5)
, 5)
SAX.startElement(RPM:Size)
SAX.characters(850599</RPM:Size>
<RPM:Bui, 6)
SAX.characters(850599, 6)
SAX.endElement(RPM:Size)
SAX.characters(
<RPM:BuildHost>porky.redh, 5)
, 5)
SAX.startElement(RPM:BuildHost)
SAX.characters(porky.redhat.com</RPM:BuildHos, 16)
SAX.characters(porky.redhat.com, 16)
SAX.endElement(RPM:BuildHost)
SAX.characters(
<RPM:Provides>
<RDF, 5)
, 5)
SAX.startElement(RPM:Provides)
SAX.characters(
<RDF:Bag>
<RPM:, 7)
, 7)
SAX.startElement(RDF:Bag)
SAX.characters(
<RPM:Resource>rpm</RP, 9)
, 9)
SAX.startElement(RPM:Resource)
SAX.characters(rpm</RPM:Resource>
</RDF, 3)
SAX.characters(rpm, 3)
SAX.endElement(RPM:Resource)
SAX.characters(
</RDF:Bag>
</RPM:Pr, 7)
, 7)
SAX.endElement(RDF:Bag)
SAX.characters(
</RPM:Provides>
<RPM:, 5)
, 5)
SAX.endElement(RPM:Provides)
SAX.characters(
<RPM:Requires>
<RDF, 5)
, 5)
SAX.startElement(RPM:Requires)
SAX.characters(
<RDF:Bag>
<RPM:, 7)
, 7)
SAX.startElement(RDF:Bag)
SAX.characters(
<RPM:Resource>/bin/sh, 9)
, 9)
SAX.startElement(RPM:Resource)
SAX.characters(/bin/sh</RPM:Resource>
, 7)
SAX.characters(/bin/sh, 7)
SAX.endElement(RPM:Resource)
SAX.characters(
<RPM:Resource>ld-linu, 9)
, 9)
SAX.startElement(RPM:Resource)
SAX.characters(ld-linux.so.2</RPM:Resource>
, 13)
SAX.characters(ld-linux.so.2, 13)
SAX.endElement(RPM:Resource)
SAX.characters(
<RPM:Resource>libc.so, 9)
, 9)
SAX.startElement(RPM:Resource)
SAX.characters(libc.so.6</RPM:Resource>
, 9)
SAX.characters(libc.so.6, 9)
SAX.endElement(RPM:Resource)
SAX.characters(
<RPM:Resource>libdb.s, 9)
, 9)
SAX.startElement(RPM:Resource)
SAX.characters(libdb.so.2</RPM:Resource>
, 10)
SAX.characters(libdb.so.2, 10)
SAX.endElement(RPM:Resource)
SAX.characters(
<RPM:Resource>libz.so, 9)
, 9)
SAX.startElement(RPM:Resource)
SAX.characters(libz.so.1</RPM:Resource>
, 9)
SAX.characters(libz.so.1, 9)
SAX.endElement(RPM:Resource)
SAX.characters(
<RPM:Resource>/bin/ba, 9)
, 9)
SAX.startElement(RPM:Resource)
SAX.characters(/bin/bash</RPM:Resource>
, 9)
SAX.characters(/bin/bash, 9)
SAX.endElement(RPM:Resource)
SAX.characters(
<RPM:Resource>/bin/sh, 9)
, 9)
SAX.startElement(RPM:Resource)
SAX.characters(/bin/sh</RPM:Resource>
<, 7)
SAX.characters(/bin/sh, 7)
SAX.endElement(RPM:Resource)
SAX.characters(
</RDF:Bag>
</RPM:Re, 7)
, 7)
SAX.endElement(RDF:Bag)
SAX.characters(
</RPM:Requires>
<RPM:, 5)
, 5)
SAX.endElement(RPM:Requires)
SAX.characters(
<RPM:Files>/bin/rpm
/usr/, 5)
, 5)
SAX.startElement(RPM:Files)
SAX.characters(/bin/rpm
/usr/bin/find-provide, 885)
SAX.endElement(RPM:Files)
SAX.characters(
</RDF:Description>
</RDF:RD, 3)
, 3)
SAX.endElement(RDF:Description)
SAX.characters(
</RDF:RDF>
, 1)
SAX.endElement(RDF:RDF)
SAX.endDocument()

View File

@ -2,79 +2,71 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(RDF:RDF, xmlns:RDF='http://www.w3.org/TR/WD-rdf-syntax#', xmlns:RPM='http://www.rpm.org/')
SAX.characters(
<RDF:Description about="ftp, 3)
, 3)
SAX.startElement(RDF:Description, about='ftp://rufus.w3.org/linux/dld/5.4/i386/RPMS/i386/ncurses4-4.2-3.i386.rpm')
SAX.characters(
<RPM:Name>ncurses4</RPM:N, 5)
, 5)
SAX.startElement(RPM:Name)
SAX.characters(ncurses4</RPM:Name>
<RPM:V, 8)
SAX.characters(ncurses4, 8)
SAX.endElement(RPM:Name)
SAX.characters(
<RPM:Version>4.2</RPM:Ver, 5)
, 5)
SAX.startElement(RPM:Version)
SAX.characters(4.2</RPM:Version>
<RPM:Rel, 3)
SAX.characters(4.2, 3)
SAX.endElement(RPM:Version)
SAX.characters(
<RPM:Release>3</RPM:Relea, 5)
, 5)
SAX.startElement(RPM:Release)
SAX.characters(3</RPM:Release>
<RPM:Arch>, 1)
SAX.characters(3, 1)
SAX.endElement(RPM:Release)
SAX.characters(
<RPM:Arch>i386</RPM:Arch>, 5)
, 5)
SAX.startElement(RPM:Arch)
SAX.characters(i386</RPM:Arch>
<RPM:Os>Li, 4)
SAX.characters(i386, 4)
SAX.endElement(RPM:Arch)
SAX.characters(
<RPM:Os>Linux</RPM:Os>
, 5)
, 5)
SAX.startElement(RPM:Os)
SAX.characters(Linux</RPM:Os>
<RPM:Distri, 5)
SAX.characters(Linux, 5)
SAX.endElement(RPM:Os)
SAX.characters(
<RPM:Distribution>DLD</RP, 5)
, 5)
SAX.startElement(RPM:Distribution)
SAX.characters(DLD</RPM:Distribution>
<RP, 3)
SAX.characters(DLD, 3)
SAX.endElement(RPM:Distribution)
SAX.characters(
<RPM:Vendor>delix Compute, 5)
, 5)
SAX.startElement(RPM:Vendor)
SAX.characters(delix Computer GmbH</RPM:Vendo, 19)
SAX.characters(delix Computer GmbH, 19)
SAX.endElement(RPM:Vendor)
SAX.characters(
<RPM:Packager>Till Bubeck, 5)
, 5)
SAX.startElement(RPM:Packager)
SAX.characters(Till Bubeck &lt;bubeck@delix.d, 12)
SAX.characters(Till Bubeck , 12)
SAX.getEntity(lt)
SAX.characters(<, 1)
SAX.characters(bubeck@delix.de&gt;, Ngo Than , 15)
SAX.characters(bubeck@delix.de, 15)
SAX.getEntity(gt)
SAX.characters(>, 1)
SAX.characters(, Ngo Than &lt;than@delix.de&g, 11)
SAX.characters(, Ngo Than , 11)
SAX.getEntity(lt)
SAX.characters(<, 1)
SAX.characters(than@delix.de&gt;</RPM:Package, 13)
SAX.characters(than@delix.de, 13)
SAX.getEntity(gt)
SAX.characters(>, 1)
SAX.endElement(RPM:Packager)
SAX.characters(
<RPM:Group>Libraries</RPM, 5)
, 5)
SAX.startElement(RPM:Group)
SAX.characters(Libraries</RPM:Group>
<RPM, 9)
SAX.characters(Libraries, 9)
SAX.endElement(RPM:Group)
SAX.characters(
<RPM:Summary>Bibliothek z, 5)
, 5)
SAX.startElement(RPM:Summary)
SAX.characters(Bibliothek zur Ansteuerung von, 40)
SAX.endElement(RPM:Summary)
SAX.characters(
<RPM:Description>Diese Li, 5)
, 5)
SAX.startElement(RPM:Description)
SAX.characters(Diese Library stellt dem Progr, 57)
SAX.characters(ä, 1)
@ -85,7 +77,7 @@ SAX.characters(gung, die
speziell optimiert s, 57)
SAX.getEntity(apos)
SAX.characters(', 1)
SAX.characters(new curses&apos; (ncurses) Var, 10)
SAX.characters(new curses, 10)
SAX.getEntity(apos)
SAX.characters(', 1)
SAX.characters( (ncurses) Variante und ist de, 51)
@ -93,101 +85,219 @@ SAX.characters(
SAX.characters(r die klassische Curses-Librar, 70)
SAX.endElement(RPM:Description)
SAX.characters(
<RPM:Copyright>GPL</RPM:C, 5)
, 5)
SAX.startElement(RPM:Copyright)
SAX.characters(GPL</RPM:Copyright>
<RPM:S, 3)
SAX.characters(GPL, 3)
SAX.endElement(RPM:Copyright)
SAX.characters(
<RPM:Sources>ncurses4-4.2, 5)
, 5)
SAX.startElement(RPM:Sources)
SAX.characters(ncurses4-4.2-3.src.rpm</RPM:So, 22)
SAX.characters(ncurses4-4.2-3.src.rpm, 22)
SAX.endElement(RPM:Sources)
SAX.characters(
<RPM:BuildDate>Tue May 12, 5)
, 5)
SAX.startElement(RPM:BuildDate)
SAX.characters(Tue May 12 19:30:26 1998</RPM:, 24)
SAX.characters(Tue May 12 19:30:26 1998, 24)
SAX.endElement(RPM:BuildDate)
SAX.characters(
<RPM:Date>895015826</RPM:, 5)
, 5)
SAX.startElement(RPM:Date)
SAX.characters(895015826</RPM:Date>
<RPM:, 9)
SAX.characters(895015826, 9)
SAX.endElement(RPM:Date)
SAX.characters(
<RPM:Size>1373513</RPM:Si, 5)
, 5)
SAX.startElement(RPM:Size)
SAX.characters(1373513</RPM:Size>
<RPM:Bu, 7)
SAX.characters(1373513, 7)
SAX.endElement(RPM:Size)
SAX.characters(
<RPM:BuildHost>erdbeere.d, 5)
, 5)
SAX.startElement(RPM:BuildHost)
SAX.characters(erdbeere.delix.de</RPM:BuildHo, 17)
SAX.characters(erdbeere.delix.de, 17)
SAX.endElement(RPM:BuildHost)
SAX.characters(
<RPM:Provides>
<RDF, 5)
, 5)
SAX.startElement(RPM:Provides)
SAX.characters(
<RDF:Bag>
<RPM:, 7)
, 7)
SAX.startElement(RDF:Bag)
SAX.characters(
<RPM:Resource href="., 9)
, 9)
SAX.startElement(RPM:Resource, href='../../../../../resources/ncurses4.rdf')
SAX.characters(ncurses4</RPM:Resource>
, 8)
SAX.characters(ncurses4, 8)
SAX.endElement(RPM:Resource)
SAX.characters(
<RPM:Resource href="., 9)
, 9)
SAX.startElement(RPM:Resource, href='../../../../../resources/libpanel.so.4.rdf')
SAX.characters(libpanel.so.4</RPM:Resource>
, 13)
SAX.characters(libpanel.so.4, 13)
SAX.endElement(RPM:Resource)
SAX.characters(
<RPM:Resource href="., 9)
, 9)
SAX.startElement(RPM:Resource, href='../../../../../resources/libncurses.so.4.rdf')
SAX.characters(libncurses.so.4</RPM:Resource>, 15)
SAX.characters(libncurses.so.4, 15)
SAX.endElement(RPM:Resource)
SAX.characters(
<RPM:Resource href="., 9)
, 9)
SAX.startElement(RPM:Resource, href='../../../../../resources/libmenu.so.4.rdf')
SAX.characters(libmenu.so.4</RPM:Resource>
, 12)
SAX.characters(libmenu.so.4, 12)
SAX.endElement(RPM:Resource)
SAX.characters(
<RPM:Resource href="., 9)
, 9)
SAX.startElement(RPM:Resource, href='../../../../../resources/libform.so.4.rdf')
SAX.characters(libform.so.4</RPM:Resource>
, 12)
SAX.characters(libform.so.4, 12)
SAX.endElement(RPM:Resource)
SAX.characters(
<RPM:Resource href="., 9)
, 9)
SAX.startElement(RPM:Resource, href='../../../../../resources/ncurses.rdf')
SAX.characters(ncurses</RPM:Resource>
<, 7)
SAX.characters(ncurses, 7)
SAX.endElement(RPM:Resource)
SAX.characters(
</RDF:Bag>
</RPM:Pr, 7)
, 7)
SAX.endElement(RDF:Bag)
SAX.characters(
</RPM:Provides>
<RPM:, 5)
, 5)
SAX.endElement(RPM:Provides)
SAX.characters(
<RPM:Files>/lib/libncurse, 5)
, 5)
SAX.startElement(RPM:Files)
SAX.characters(/lib/libncurses.so.4
/lib/libn, 72915)
/lib/libn, 1000)
SAX.characters(/4025ex
/usr/share/ncurses4/te, 1000)
SAX.characters(2-W
/usr/share/ncurses4/termin, 1000)
SAX.characters(s4/terminfo/a/aaa-22
/usr/shar, 1000)
SAX.characters(t
/usr/share/ncurses4/terminfo, 1000)
SAX.characters(es4/terminfo/a/adm12
/usr/shar, 1000)
SAX.characters(re/ncurses4/terminfo/a/alt7pc
, 1000)
SAX.characters(fo/a/ampex175-b
/usr/share/ncu, 1000)
SAX.characters(i80x30
/usr/share/ncurses4/ter, 1000)
SAX.characters(
/usr/share/ncurses4/terminfo/, 1000)
SAX.characters(terminfo/a/att4415-w
/usr/shar, 1000)
SAX.characters(urses4/terminfo/a/att5410v1-w
, 1000)
SAX.characters(s4/terminfo/a/att605-pc
/usr/s, 1000)
SAX.characters(/usr/share/ncurses4/terminfo/a, 1000)
SAX.characters(are/ncurses4/terminfo/b/bee
/u, 1000)
SAX.characters(curses4/terminfo/c/c100-rv
/us, 1000)
SAX.characters(ncurses4/terminfo/c/cdc756
/us, 1000)
SAX.characters(terminfo/c/coherent
/usr/share, 1000)
SAX.characters(5r-m
/usr/share/ncurses4/termi, 1000)
SAX.characters(share/ncurses4/terminfo/c/cons, 1000)
SAX.characters(e/ncurses4/terminfo/d/ddr
/usr, 1000)
SAX.characters(/terminfo/d/diablo1640-m8
/usr, 1000)
SAX.characters(dmdt80w
/usr/share/ncurses4/te, 1000)
SAX.characters(ecma+sgr
/usr/share/ncurses4/t, 1000)
SAX.characters(0-14w
/usr/share/ncurses4/term, 1000)
SAX.characters(
/usr/share/ncurses4/terminfo/, 1000)
SAX.characters(-44-s
/usr/share/ncurses4/term, 1000)
SAX.characters(/usr/share/ncurses4/terminfo/h, 1000)
SAX.characters(minfo/h/hp+labels
/usr/share/n, 1000)
SAX.characters(hp2621a-a
/usr/share/ncurses4/, 1000)
SAX.characters(ncurses4/terminfo/h/hp2626-12x, 1000)
SAX.characters(/h/hp70092a
/usr/share/ncurses, 1000)
SAX.characters(
/usr/share/ncurses4/terminfo/, 1000)
SAX.characters(rminfo/i/ibm8514-c
/usr/share/, 1000)
SAX.characters(usr/share/ncurses4/terminfo/i/, 1000)
SAX.characters(klone+sgr
/usr/share/ncurses4/, 1000)
SAX.characters(/share/ncurses4/terminfo/m/mac, 1000)
SAX.characters(me2a-s
/usr/share/ncurses4/ter, 1000)
SAX.characters(hare/ncurses4/terminfo/m/msker, 1000)
SAX.characters(/share/ncurses4/terminfo/n/new, 1000)
SAX.characters(/ncurses4/terminfo/n/nwe501
/u, 1000)
SAX.characters(
/usr/share/ncurses4/terminfo/, 1000)
SAX.characters(
/usr/share/ncurses4/terminfo/, 1000)
SAX.characters(
/usr/share/ncurses4/terminfo/, 1000)
SAX.characters(pcvt28w
/usr/share/ncurses4/te, 1000)
SAX.characters(fo/p/prism14
/usr/share/ncurse, 1000)
SAX.characters(minfo/p/pt100w
/usr/share/ncur, 1000)
SAX.characters(re/ncurses4/terminfo/q/qvt119+, 1000)
SAX.characters(r/share/ncurses4/terminfo/r/re, 1000)
SAX.characters(fo/s/simterm
/usr/share/ncurse, 1000)
SAX.characters(e-xsb
/usr/share/ncurses4/term, 1000)
SAX.characters(4013
/usr/share/ncurses4/termi, 1000)
SAX.characters(/terminfo/t/tek4112-5
/usr/sha, 1000)
SAX.characters(/ti916-220-7
/usr/share/ncurse, 1000)
SAX.characters(t/ts1p
/usr/share/ncurses4/ter, 1000)
SAX.characters(erminfo/t/tty5425
/usr/share/n, 1000)
SAX.characters(924
/usr/share/ncurses4/termin, 1000)
SAX.characters(curses4/terminfo/v
/usr/share/, 1000)
SAX.characters(55
/usr/share/ncurses4/terminf, 1000)
SAX.characters(ses4/terminfo/v/vt100-nav
/usr, 1000)
SAX.characters(rses4/terminfo/v/vt220-w
/usr/, 1000)
SAX.characters(os
/usr/share/ncurses4/terminf, 1000)
SAX.characters(
/usr/share/ncurses4/terminfo/, 1000)
SAX.characters(-vb
/usr/share/ncurses4/termin, 1000)
SAX.characters(minfo/w/wy370-wvb
/usr/share/n, 1000)
SAX.characters(re/ncurses4/terminfo/w/wy60-25, 1000)
SAX.characters(rminfo/w/wy99gt-vb
/usr/share/, 1000)
SAX.characters(rminfo/w/wyse160-43
/usr/share, 1000)
SAX.characters(info/w/wyse350-vb
/usr/share/n, 1000)
SAX.characters(share/ncurses4/terminfo/w/wyse, 1000)
SAX.characters(terminfo/w/wyse99gt
/usr/share, 1000)
SAX.characters(lor
/usr/share/ncurses4/termin, 1000)
SAX.characters(re/ncurses4/terminfo/z/z29a
/u, 915)
SAX.endElement(RPM:Files)
SAX.characters(
</RDF:Description>
</RDF:RD, 3)
, 3)
SAX.endElement(RDF:Description)
SAX.characters(
</RDF:RDF>
, 1)
SAX.endElement(RDF:RDF)
SAX.endDocument()

View File

@ -3,272 +3,219 @@ SAX.startDocument()
SAX.startElement(rdf:RDF, xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#', xmlns='http://my.netscape.com/rdf/simple/0.9/')
SAX.characters(
<channel>
<title>Slash, 4)
, 4)
SAX.startElement(channel)
SAX.characters(
<title>Slashdot:News for , 5)
, 5)
SAX.startElement(title)
SAX.characters(Slashdot:News for Nerds. Stuff, 44)
SAX.endElement(title)
SAX.characters(
<link>http://slashdot.org, 5)
, 5)
SAX.startElement(link)
SAX.characters(http://slashdot.org/</link>
, 20)
SAX.characters(http://slashdot.org/, 20)
SAX.endElement(link)
SAX.characters(
<description>News for Ner, 5)
, 5)
SAX.startElement(description)
SAX.characters(News for Nerds. Stuff that Ma, 35)
SAX.endElement(description)
SAX.characters(
</channel>
<image>
<, 3)
, 3)
SAX.endElement(channel)
SAX.characters(
<image>
<title>Slashdo, 4)
, 4)
SAX.startElement(image)
SAX.characters(
<title>Slashdot</title>
, 5)
, 5)
SAX.startElement(title)
SAX.characters(Slashdot</title>
<url>http, 8)
SAX.characters(Slashdot, 8)
SAX.endElement(title)
SAX.characters(
<url>http://slashdot.org/, 5)
, 5)
SAX.startElement(url)
SAX.characters(http://slashdot.org/images/sla, 41)
SAX.endElement(url)
SAX.characters(
<link>http://slashdot.org, 5)
, 5)
SAX.startElement(link)
SAX.characters(http://slashdot.org</link>
<, 19)
SAX.characters(http://slashdot.org, 19)
SAX.endElement(link)
SAX.characters(
</image>
<item>
<t, 3)
, 3)
SAX.endElement(image)
SAX.characters(
<item>
<title>100 Mb, 6)
, 6)
SAX.startElement(item)
SAX.characters(
<title>100 Mbit/s on Fibr, 5)
, 5)
SAX.startElement(title)
SAX.characters(100 Mbit/s on Fibre to the hom, 31)
SAX.endElement(title)
SAX.characters(
<link>http://slashdot.org, 5)
, 5)
SAX.startElement(link)
SAX.characters(http://slashdot.org/articles/9, 51)
SAX.endElement(link)
SAX.characters(
</item>
<item>
<ti, 3)
, 3)
SAX.endElement(item)
SAX.characters(
<item>
<title>Gimp 1, 6)
, 6)
SAX.startElement(item)
SAX.characters(
<title>Gimp 1.2 Preview</, 5)
, 5)
SAX.startElement(title)
SAX.characters(Gimp 1.2 Preview</title>
<, 16)
SAX.characters(Gimp 1.2 Preview, 16)
SAX.endElement(title)
SAX.characters(
<link>http://slashdot.org, 5)
, 5)
SAX.startElement(link)
SAX.characters(http://slashdot.org/articles/9, 51)
SAX.endElement(link)
SAX.characters(
</item>
<item>
<ti, 3)
, 3)
SAX.endElement(item)
SAX.characters(
<item>
<title>Sony's, 6)
, 6)
SAX.startElement(item)
SAX.characters(
<title>Sony's AIBO robot , 5)
, 5)
SAX.startElement(title)
SAX.characters(Sony's AIBO robot Sold Out</ti, 26)
SAX.characters(Sony's AIBO robot Sold Out, 26)
SAX.endElement(title)
SAX.characters(
<link>http://slashdot.org, 5)
, 5)
SAX.startElement(link)
SAX.characters(http://slashdot.org/articles/9, 51)
SAX.endElement(link)
SAX.characters(
</item>
<item>
<ti, 3)
, 3)
SAX.endElement(item)
SAX.characters(
<item>
<title>Ask Sl, 6)
, 6)
SAX.startElement(item)
SAX.characters(
<title>Ask Slashdot: Anot, 5)
, 5)
SAX.startElement(title)
SAX.characters(Ask Slashdot: Another Word for, 40)
SAX.endElement(title)
SAX.characters(
<link>http://slashdot.org, 5)
, 5)
SAX.startElement(link)
SAX.characters(http://slashdot.org/askslashdo, 54)
SAX.endElement(link)
SAX.characters(
</item>
<item>
<ti, 3)
, 3)
SAX.endElement(item)
SAX.characters(
<item>
<title>Corel , 6)
, 6)
SAX.startElement(item)
SAX.characters(
<title>Corel Linux FAQ</t, 5)
, 5)
SAX.startElement(title)
SAX.characters(Corel Linux FAQ</title>
<l, 15)
SAX.characters(Corel Linux FAQ, 15)
SAX.endElement(title)
SAX.characters(
<link>http://slashdot.org, 5)
, 5)
SAX.startElement(link)
SAX.characters(http://slashdot.org/articles/9, 51)
SAX.endElement(link)
SAX.characters(
</item>
<item>
<ti, 3)
, 3)
SAX.endElement(item)
SAX.characters(
<item>
<title>Upside, 6)
, 6)
SAX.startElement(item)
SAX.characters(
<title>Upside downsides M, 5)
, 5)
SAX.startElement(title)
SAX.characters(Upside downsides MP3.COM.</tit, 25)
SAX.characters(Upside downsides MP3.COM., 25)
SAX.endElement(title)
SAX.characters(
<link>http://slashdot.org, 5)
, 5)
SAX.startElement(link)
SAX.characters(http://slashdot.org/articles/9, 51)
SAX.endElement(link)
SAX.characters(
</item>
<item>
<ti, 3)
, 3)
SAX.endElement(item)
SAX.characters(
<item>
<title>2 Tera, 6)
, 6)
SAX.startElement(item)
SAX.characters(
<title>2 Terabits of Band, 5)
, 5)
SAX.startElement(title)
SAX.characters(2 Terabits of Bandwidth</title, 23)
SAX.characters(2 Terabits of Bandwidth, 23)
SAX.endElement(title)
SAX.characters(
<link>http://slashdot.org, 5)
, 5)
SAX.startElement(link)
SAX.characters(http://slashdot.org/articles/9, 51)
SAX.endElement(link)
SAX.characters(
</item>
<item>
<ti, 3)
, 3)
SAX.endElement(item)
SAX.characters(
<item>
<title>Suppre, 6)
, 6)
SAX.startElement(item)
SAX.characters(
<title>Suppression of col, 5)
, 5)
SAX.startElement(title)
SAX.characters(Suppression of cold fusion res, 36)
SAX.endElement(title)
SAX.characters(
<link>http://slashdot.org, 5)
, 5)
SAX.startElement(link)
SAX.characters(http://slashdot.org/articles/9, 51)
SAX.endElement(link)
SAX.characters(
</item>
<item>
<ti, 3)
, 3)
SAX.endElement(item)
SAX.characters(
<item>
<title>Califo, 6)
, 6)
SAX.startElement(item)
SAX.characters(
<title>California Gov. Ha, 5)
, 5)
SAX.startElement(title)
SAX.characters(California Gov. Halts Wage Inf, 36)
SAX.endElement(title)
SAX.characters(
<link>http://slashdot.org, 5)
, 5)
SAX.startElement(link)
SAX.characters(http://slashdot.org/articles/9, 50)
SAX.endElement(link)
SAX.characters(
</item>
<item>
<ti, 3)
, 3)
SAX.endElement(item)
SAX.characters(
<item>
<title>Red Ha, 6)
, 6)
SAX.startElement(item)
SAX.characters(
<title>Red Hat Announces , 5)
, 5)
SAX.startElement(title)
SAX.characters(Red Hat Announces IPO</title>
, 21)
SAX.characters(Red Hat Announces IPO, 21)
SAX.endElement(title)
SAX.characters(
<link>http://slashdot.org, 5)
, 5)
SAX.startElement(link)
SAX.characters(http://slashdot.org/articles/9, 51)
SAX.endElement(link)
SAX.characters(
</item>
</rdf:RDF>, 3)
, 3)
SAX.endElement(item)
SAX.characters(
</rdf:RDF>, 1)
, 1)
SAX.endElement(rdf:RDF)
SAX.endDocument()

View File

@ -2,640 +2,516 @@ SAX.setDocumentLocator()
SAX.startDocument()
SAX.startElement(ultramode)
SAX.characters(
<story>
<title>100 Mbit/, 2)
, 2)
SAX.startElement(story)
SAX.characters(
<title>100 Mbit/s on Fibr, 5)
, 5)
SAX.startElement(title)
SAX.characters(100 Mbit/s on Fibre to the hom, 31)
SAX.endElement(title)
SAX.characters(
<url>http://slashdot.org/, 5)
, 5)
SAX.startElement(url)
SAX.characters(http://slashdot.org/articles/9, 51)
SAX.endElement(url)
SAX.characters(
<time>1999-06-06 14:39:59, 5)
, 5)
SAX.startElement(time)
SAX.characters(1999-06-06 14:39:59</time>
, 19)
SAX.characters(1999-06-06 14:39:59, 19)
SAX.endElement(time)
SAX.characters(
<author>CmdrTaco</author>, 5)
, 5)
SAX.startElement(author)
SAX.characters(CmdrTaco</author>
<departm, 8)
SAX.characters(CmdrTaco, 8)
SAX.endElement(author)
SAX.characters(
<department>wouldn't-it-b, 5)
, 5)
SAX.startElement(department)
SAX.characters(wouldn't-it-be-nice</departmen, 19)
SAX.characters(wouldn't-it-be-nice, 19)
SAX.endElement(department)
SAX.characters(
<topic>internet</topic>
, 5)
, 5)
SAX.startElement(topic)
SAX.characters(internet</topic>
<comments, 8)
SAX.characters(internet, 8)
SAX.endElement(topic)
SAX.characters(
<comments>20</comments>
, 5)
, 5)
SAX.startElement(comments)
SAX.characters(20</comments>
<section>art, 2)
SAX.characters(20, 2)
SAX.endElement(comments)
SAX.characters(
<section>articles</sectio, 5)
, 5)
SAX.startElement(section)
SAX.characters(articles</section>
<image>, 8)
SAX.characters(articles, 8)
SAX.endElement(section)
SAX.characters(
<image>topicinternet.jpg<, 5)
, 5)
SAX.startElement(image)
SAX.characters(topicinternet.jpg</image>
</, 17)
SAX.characters(topicinternet.jpg, 17)
SAX.endElement(image)
SAX.characters(
</story>
<story>
<titl, 3)
, 3)
SAX.endElement(story)
SAX.characters(
<story>
<title>Gimp 1.2 , 2)
, 2)
SAX.startElement(story)
SAX.characters(
<title>Gimp 1.2 Preview</, 5)
, 5)
SAX.startElement(title)
SAX.characters(Gimp 1.2 Preview</title>
<, 16)
SAX.characters(Gimp 1.2 Preview, 16)
SAX.endElement(title)
SAX.characters(
<url>http://slashdot.org/, 5)
, 5)
SAX.startElement(url)
SAX.characters(http://slashdot.org/articles/9, 51)
SAX.endElement(url)
SAX.characters(
<time>1999-06-06 14:38:40, 5)
, 5)
SAX.startElement(time)
SAX.characters(1999-06-06 14:38:40</time>
, 19)
SAX.characters(1999-06-06 14:38:40, 19)
SAX.endElement(time)
SAX.characters(
<author>CmdrTaco</author>, 5)
, 5)
SAX.startElement(author)
SAX.characters(CmdrTaco</author>
<departm, 8)
SAX.characters(CmdrTaco, 8)
SAX.endElement(author)
SAX.characters(
<department>stuff-to-read, 5)
, 5)
SAX.startElement(department)
SAX.characters(stuff-to-read</department>
, 13)
SAX.characters(stuff-to-read, 13)
SAX.endElement(department)
SAX.characters(
<topic>gimp</topic>
<, 5)
, 5)
SAX.startElement(topic)
SAX.characters(gimp</topic>
<comments>12<, 4)
SAX.characters(gimp, 4)
SAX.endElement(topic)
SAX.characters(
<comments>12</comments>
, 5)
, 5)
SAX.startElement(comments)
SAX.characters(12</comments>
<section>art, 2)
SAX.characters(12, 2)
SAX.endElement(comments)
SAX.characters(
<section>articles</sectio, 5)
, 5)
SAX.startElement(section)
SAX.characters(articles</section>
<image>, 8)
SAX.characters(articles, 8)
SAX.endElement(section)
SAX.characters(
<image>topicgimp.gif</ima, 5)
, 5)
SAX.startElement(image)
SAX.characters(topicgimp.gif</image>
</stor, 13)
SAX.characters(topicgimp.gif, 13)
SAX.endElement(image)
SAX.characters(
</story>
<story>
<titl, 3)
, 3)
SAX.endElement(story)
SAX.characters(
<story>
<title>Sony's AI, 2)
, 2)
SAX.startElement(story)
SAX.characters(
<title>Sony's AIBO robot , 5)
, 5)
SAX.startElement(title)
SAX.characters(Sony's AIBO robot Sold Out</ti, 26)
SAX.characters(Sony's AIBO robot Sold Out, 26)
SAX.endElement(title)
SAX.characters(
<url>http://slashdot.org/, 5)
, 5)
SAX.startElement(url)
SAX.characters(http://slashdot.org/articles/9, 51)
SAX.endElement(url)
SAX.characters(
<time>1999-06-06 14:32:51, 5)
, 5)
SAX.startElement(time)
SAX.characters(1999-06-06 14:32:51</time>
, 19)
SAX.characters(1999-06-06 14:32:51, 19)
SAX.endElement(time)
SAX.characters(
<author>CmdrTaco</author>, 5)
, 5)
SAX.startElement(author)
SAX.characters(CmdrTaco</author>
<departm, 8)
SAX.characters(CmdrTaco, 8)
SAX.endElement(author)
SAX.characters(
<department>stuff-to-see<, 5)
, 5)
SAX.startElement(department)
SAX.characters(stuff-to-see</department>
, 12)
SAX.characters(stuff-to-see, 12)
SAX.endElement(department)
SAX.characters(
<topic>tech</topic>
<, 5)
, 5)
SAX.startElement(topic)
SAX.characters(tech</topic>
<comments>10<, 4)
SAX.characters(tech, 4)
SAX.endElement(topic)
SAX.characters(
<comments>10</comments>
, 5)
, 5)
SAX.startElement(comments)
SAX.characters(10</comments>
<section>art, 2)
SAX.characters(10, 2)
SAX.endElement(comments)
SAX.characters(
<section>articles</sectio, 5)
, 5)
SAX.startElement(section)
SAX.characters(articles</section>
<image>, 8)
SAX.characters(articles, 8)
SAX.endElement(section)
SAX.characters(
<image>topictech2.jpg</im, 5)
, 5)
SAX.startElement(image)
SAX.characters(topictech2.jpg</image>
</sto, 14)
SAX.characters(topictech2.jpg, 14)
SAX.endElement(image)
SAX.characters(
</story>
<story>
<titl, 3)
, 3)
SAX.endElement(story)
SAX.characters(
<story>
<title>Ask Slash, 2)
, 2)
SAX.startElement(story)
SAX.characters(
<title>Ask Slashdot: Anot, 5)
, 5)
SAX.startElement(title)
SAX.characters(Ask Slashdot: Another Word for, 40)
SAX.endElement(title)
SAX.characters(
<url>http://slashdot.org/, 5)
, 5)
SAX.startElement(url)
SAX.characters(http://slashdot.org/askslashdo, 54)
SAX.endElement(url)
SAX.characters(
<time>1999-06-05 20:00:00, 5)
, 5)
SAX.startElement(time)
SAX.characters(1999-06-05 20:00:00</time>
, 19)
SAX.characters(1999-06-05 20:00:00, 19)
SAX.endElement(time)
SAX.characters(
<author>Cliff</author>
, 5)
, 5)
SAX.startElement(author)
SAX.characters(Cliff</author>
<department, 5)
SAX.characters(Cliff, 5)
SAX.endElement(author)
SAX.characters(
<department>hacker-vs-cra, 5)
, 5)
SAX.startElement(department)
SAX.characters(hacker-vs-cracker</department>, 17)
SAX.characters(hacker-vs-cracker, 17)
SAX.endElement(department)
SAX.characters(
<topic>news</topic>
<, 5)
SAX.startElement(topic)
SAX.characters(news</topic>
<comments>385, 4)
SAX.endElement(topic)
SAX.characters(
<comments>385</comments>
, 5)
SAX.startElement(comments)
SAX.characters(385</comments>
<section>as, 3)
SAX.endElement(comments)
SAX.characters(
<section>askslashdot</sec, 5)
SAX.startElement(section)
SAX.characters(askslashdot</section>
<ima, 11)
SAX.endElement(section)
SAX.characters(
<image>topicnews.gif</ima, 5)
SAX.startElement(image)
SAX.characters(topicnews.gif</image>
</stor, 13)
SAX.endElement(image)
SAX.characters(
</story>
<story>
<titl, 3)
SAX.endElement(story)
SAX.characters(
<story>
<title>Corel Lin, 2)
SAX.startElement(story)
SAX.characters(
<title>Corel Linux FAQ</t, 5)
SAX.startElement(title)
SAX.characters(Corel Linux FAQ</title>
<u, 15)
SAX.endElement(title)
SAX.characters(
<url>http://slashdot.org/, 5)
SAX.startElement(url)
SAX.characters(http://slashdot.org/articles/9, 51)
SAX.endElement(url)
SAX.characters(
<time>1999-06-05 18:42:06, 5)
SAX.startElement(time)
SAX.characters(1999-06-05 18:42:06</time>
, 19)
SAX.endElement(time)
SAX.characters(
<author>CmdrTaco</author>, 5)
SAX.startElement(author)
SAX.characters(CmdrTaco</author>
<departm, 8)
SAX.endElement(author)
SAX.characters(
<department>stuff-to-read, 5)
SAX.startElement(department)
SAX.characters(stuff-to-read</department>
, 13)
SAX.endElement(department)
SAX.characters(
<topic>corel</topic>
, 5)
SAX.startElement(topic)
SAX.characters(corel</topic>
<comments>16, 5)
SAX.characters(news, 4)
SAX.endElement(topic)
SAX.characters(
<comments>164</comments>
, 5)
, 5)
SAX.startElement(comments)
SAX.characters(164</comments>
<section>ar, 3)
SAX.characters(385, 3)
SAX.endElement(comments)
SAX.characters(
<section>articles</sectio, 5)
, 5)
SAX.startElement(section)
SAX.characters(articles</section>
<image>, 8)
SAX.characters(askslashdot, 11)
SAX.endElement(section)
SAX.characters(
<image>topiccorel.gif</im, 5)
, 5)
SAX.startElement(image)
SAX.characters(topiccorel.gif</image>
</sto, 14)
SAX.characters(topicnews.gif, 13)
SAX.endElement(image)
SAX.characters(
</story>
<story>
<titl, 3)
, 3)
SAX.endElement(story)
SAX.characters(
<story>
<title>Upside do, 2)
, 2)
SAX.startElement(story)
SAX.characters(
<title>Upside downsides M, 5)
, 5)
SAX.startElement(title)
SAX.characters(Upside downsides MP3.COM.</tit, 25)
SAX.characters(Corel Linux FAQ, 15)
SAX.endElement(title)
SAX.characters(
<url>http://slashdot.org/, 5)
, 5)
SAX.startElement(url)
SAX.characters(http://slashdot.org/articles/9, 51)
SAX.endElement(url)
SAX.characters(
<time>1999-06-05 15:56:45, 5)
, 5)
SAX.startElement(time)
SAX.characters(1999-06-05 15:56:45</time>
, 19)
SAX.characters(1999-06-05 18:42:06, 19)
SAX.endElement(time)
SAX.characters(
<author>CmdrTaco</author>, 5)
, 5)
SAX.startElement(author)
SAX.characters(CmdrTaco</author>
<departm, 8)
SAX.characters(CmdrTaco, 8)
SAX.endElement(author)
SAX.characters(
<department>stuff-to-thin, 5)
, 5)
SAX.startElement(department)
SAX.characters(stuff-to-think-about</departme, 20)
SAX.characters(stuff-to-read, 13)
SAX.endElement(department)
SAX.characters(
<topic>music</topic>
, 5)
SAX.startElement(topic)
SAX.characters(music</topic>
<comments>48, 5)
SAX.characters(corel, 5)
SAX.endElement(topic)
SAX.characters(
<comments>48</comments>
, 5)
, 5)
SAX.startElement(comments)
SAX.characters(48</comments>
<section>art, 2)
SAX.characters(164, 3)
SAX.endElement(comments)
SAX.characters(
<section>articles</sectio, 5)
, 5)
SAX.startElement(section)
SAX.characters(articles</section>
<image>, 8)
SAX.characters(articles, 8)
SAX.endElement(section)
SAX.characters(
<image>topicmusic.gif</im, 5)
, 5)
SAX.startElement(image)
SAX.characters(topicmusic.gif</image>
</sto, 14)
SAX.characters(topiccorel.gif, 14)
SAX.endElement(image)
SAX.characters(
</story>
<story>
<titl, 3)
, 3)
SAX.endElement(story)
SAX.characters(
<story>
<title>2 Terabit, 2)
, 2)
SAX.startElement(story)
SAX.characters(
<title>2 Terabits of Band, 5)
, 5)
SAX.startElement(title)
SAX.characters(2 Terabits of Bandwidth</title, 23)
SAX.characters(Upside downsides MP3.COM., 25)
SAX.endElement(title)
SAX.characters(
<url>http://slashdot.org/, 5)
, 5)
SAX.startElement(url)
SAX.characters(http://slashdot.org/articles/9, 51)
SAX.endElement(url)
SAX.characters(
<time>1999-06-05 15:53:43, 5)
, 5)
SAX.startElement(time)
SAX.characters(1999-06-05 15:53:43</time>
, 19)
SAX.characters(1999-06-05 15:56:45, 19)
SAX.endElement(time)
SAX.characters(
<author>CmdrTaco</author>, 5)
, 5)
SAX.startElement(author)
SAX.characters(CmdrTaco</author>
<departm, 8)
SAX.characters(CmdrTaco, 8)
SAX.endElement(author)
SAX.characters(
<department>faster-porn</, 5)
, 5)
SAX.startElement(department)
SAX.characters(faster-porn</department>
<, 11)
SAX.characters(stuff-to-think-about, 20)
SAX.endElement(department)
SAX.characters(
<topic>internet</topic>
, 5)
, 5)
SAX.startElement(topic)
SAX.characters(internet</topic>
<comments, 8)
SAX.characters(music, 5)
SAX.endElement(topic)
SAX.characters(
<comments>66</comments>
, 5)
, 5)
SAX.startElement(comments)
SAX.characters(66</comments>
<section>art, 2)
SAX.characters(48, 2)
SAX.endElement(comments)
SAX.characters(
<section>articles</sectio, 5)
, 5)
SAX.startElement(section)
SAX.characters(articles</section>
<image>, 8)
SAX.characters(articles, 8)
SAX.endElement(section)
SAX.characters(
<image>topicinternet.jpg<, 5)
, 5)
SAX.startElement(image)
SAX.characters(topicinternet.jpg</image>
</, 17)
SAX.characters(topicmusic.gif, 14)
SAX.endElement(image)
SAX.characters(
</story>
<story>
<titl, 3)
, 3)
SAX.endElement(story)
SAX.characters(
<story>
<title>Suppressi, 2)
, 2)
SAX.startElement(story)
SAX.characters(
<title>Suppression of col, 5)
, 5)
SAX.startElement(title)
SAX.characters(2 Terabits of Bandwidth, 23)
SAX.endElement(title)
SAX.characters(
, 5)
SAX.startElement(url)
SAX.characters(http://slashdot.org/articles/9, 51)
SAX.endElement(url)
SAX.characters(
, 5)
SAX.startElement(time)
SAX.characters(1999-06-05 15:53:43, 19)
SAX.endElement(time)
SAX.characters(
, 5)
SAX.startElement(author)
SAX.characters(CmdrTaco, 8)
SAX.endElement(author)
SAX.characters(
, 5)
SAX.startElement(department)
SAX.characters(faster-porn, 11)
SAX.endElement(department)
SAX.characters(
, 5)
SAX.startElement(topic)
SAX.characters(internet, 8)
SAX.endElement(topic)
SAX.characters(
, 5)
SAX.startElement(comments)
SAX.characters(66, 2)
SAX.endElement(comments)
SAX.characters(
, 5)
SAX.startElement(section)
SAX.characters(articles, 8)
SAX.endElement(section)
SAX.characters(
, 5)
SAX.startElement(image)
SAX.characters(topicinternet.jpg, 17)
SAX.endElement(image)
SAX.characters(
, 3)
SAX.endElement(story)
SAX.characters(
, 2)
SAX.startElement(story)
SAX.characters(
, 5)
SAX.startElement(title)
SAX.characters(Suppression of cold fusion res, 36)
SAX.endElement(title)
SAX.characters(
<url>http://slashdot.org/, 5)
, 5)
SAX.startElement(url)
SAX.characters(http://slashdot.org/articles/9, 51)
SAX.endElement(url)
SAX.characters(
<time>1999-06-04 23:12:29, 5)
, 5)
SAX.startElement(time)
SAX.characters(1999-06-04 23:12:29</time>
, 19)
SAX.characters(1999-06-04 23:12:29, 19)
SAX.endElement(time)
SAX.characters(
<author>Hemos</author>
, 5)
, 5)
SAX.startElement(author)
SAX.characters(Hemos</author>
<department, 5)
SAX.characters(Hemos, 5)
SAX.endElement(author)
SAX.characters(
<department>possibly-prob, 5)
, 5)
SAX.startElement(department)
SAX.characters(possibly-probably</department>, 17)
SAX.characters(possibly-probably, 17)
SAX.endElement(department)
SAX.characters(
<topic>science</topic>
, 5)
, 5)
SAX.startElement(topic)
SAX.characters(science</topic>
<comments>, 7)
SAX.characters(science, 7)
SAX.endElement(topic)
SAX.characters(
<comments>217</comments>
, 5)
, 5)
SAX.startElement(comments)
SAX.characters(217</comments>
<section>ar, 3)
SAX.characters(217, 3)
SAX.endElement(comments)
SAX.characters(
<section>articles</sectio, 5)
, 5)
SAX.startElement(section)
SAX.characters(articles</section>
<image>, 8)
SAX.characters(articles, 8)
SAX.endElement(section)
SAX.characters(
<image>topicscience.gif</, 5)
, 5)
SAX.startElement(image)
SAX.characters(topicscience.gif</image>
</s, 16)
SAX.characters(topicscience.gif, 16)
SAX.endElement(image)
SAX.characters(
</story>
<story>
<titl, 3)
, 3)
SAX.endElement(story)
SAX.characters(
<story>
<title>Californi, 2)
, 2)
SAX.startElement(story)
SAX.characters(
<title>California Gov. Ha, 5)
, 5)
SAX.startElement(title)
SAX.characters(California Gov. Halts Wage Inf, 36)
SAX.endElement(title)
SAX.characters(
<url>http://slashdot.org/, 5)
, 5)
SAX.startElement(url)
SAX.characters(http://slashdot.org/articles/9, 50)
SAX.endElement(url)
SAX.characters(
<time>1999-06-04 23:05:34, 5)
, 5)
SAX.startElement(time)
SAX.characters(1999-06-04 23:05:34</time>
, 19)
SAX.characters(1999-06-04 23:05:34, 19)
SAX.endElement(time)
SAX.characters(
<author>Hemos</author>
, 5)
, 5)
SAX.startElement(author)
SAX.characters(Hemos</author>
<department, 5)
SAX.characters(Hemos, 5)
SAX.endElement(author)
SAX.characters(
<department>woo-hoo!</dep, 5)
, 5)
SAX.startElement(department)
SAX.characters(woo-hoo!</department>
<top, 8)
SAX.characters(woo-hoo!, 8)
SAX.endElement(department)
SAX.characters(
<topic>usa</topic>
<c, 5)
, 5)
SAX.startElement(topic)
SAX.characters(usa</topic>
<comments>16</, 3)
SAX.characters(usa, 3)
SAX.endElement(topic)
SAX.characters(
<comments>16</comments>
, 5)
, 5)
SAX.startElement(comments)
SAX.characters(16</comments>
<section>art, 2)
SAX.characters(16, 2)
SAX.endElement(comments)
SAX.characters(
<section>articles</sectio, 5)
, 5)
SAX.startElement(section)
SAX.characters(articles</section>
<image>, 8)
SAX.characters(articles, 8)
SAX.endElement(section)
SAX.characters(
<image>topicus.gif</image, 5)
, 5)
SAX.startElement(image)
SAX.characters(topicus.gif</image>
</story>, 11)
SAX.characters(topicus.gif, 11)
SAX.endElement(image)
SAX.characters(
</story>
<story>
<titl, 3)
, 3)
SAX.endElement(story)
SAX.characters(
<story>
<title>Red Hat A, 2)
, 2)
SAX.startElement(story)
SAX.characters(
<title>Red Hat Announces , 5)
, 5)
SAX.startElement(title)
SAX.characters(Red Hat Announces IPO</title>
, 21)
SAX.characters(Red Hat Announces IPO, 21)
SAX.endElement(title)
SAX.characters(
<url>http://slashdot.org/, 5)
, 5)
SAX.startElement(url)
SAX.characters(http://slashdot.org/articles/9, 51)
SAX.endElement(url)
SAX.characters(
<time>1999-06-04 19:30:18, 5)
, 5)
SAX.startElement(time)
SAX.characters(1999-06-04 19:30:18</time>
, 19)
SAX.characters(1999-06-04 19:30:18, 19)
SAX.endElement(time)
SAX.characters(
<author>Justin</author>
, 5)
, 5)
SAX.startElement(author)
SAX.characters(Justin</author>
<departmen, 6)
SAX.characters(Justin, 6)
SAX.endElement(author)
SAX.characters(
<department>details-sketc, 5)
, 5)
SAX.startElement(department)
SAX.characters(details-sketchy</department>
, 15)
SAX.characters(details-sketchy, 15)
SAX.endElement(department)
SAX.characters(
<topic>redhat</topic>
, 5)
, 5)
SAX.startElement(topic)
SAX.characters(redhat</topic>
<comments>1, 6)
SAX.characters(redhat, 6)
SAX.endElement(topic)
SAX.characters(
<comments>155</comments>
, 5)
, 5)
SAX.startElement(comments)
SAX.characters(155</comments>
<section>ar, 3)
SAX.characters(155, 3)
SAX.endElement(comments)
SAX.characters(
<section>articles</sectio, 5)
, 5)
SAX.startElement(section)
SAX.characters(articles</section>
<image>, 8)
SAX.characters(articles, 8)
SAX.endElement(section)
SAX.characters(
<image>topicredhat.gif</i, 5)
, 5)
SAX.startElement(image)
SAX.characters(topicredhat.gif</image>
</st, 15)
SAX.characters(topicredhat.gif, 15)
SAX.endElement(image)
SAX.characters(
</story>
</ultramode>
, 3)
, 3)
SAX.endElement(story)
SAX.characters(
</ultramode>
, 1)
SAX.endElement(ultramode)
SAX.endDocument()

View File

@ -4,623 +4,609 @@ SAX.internalSubset(svg, -//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphi
SAX.resolveEntity(-//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphics/SVG/svg-19990412.dtd)
SAX.startElement(svg, width='242px', height='383px')
SAX.characters(
<g style = "stroke: #000000" , 1)
, 1)
SAX.startElement(g, style='stroke: #000000')
SAX.characters(
</g>
<g style = "fill: #f2c, 2)
, 2)
SAX.endElement(g)
SAX.characters(
<g style = "fill: #f2cc99" >, 2)
, 2)
SAX.startElement(g, style='fill: #f2cc99')
SAX.characters(
<polyline verts = " 69,18, 5)
, 5)
SAX.startElement(polyline, verts=' 69,18 82,8 99,3 118,5 135,12 149,21 156,13 165,9 177,13 183,28 180,50 164,91 155,107 154,114 151,121 141,127 139,136 155,206 157,251 126,342 133,357 128,376 83,376 75,368 67,350 61,350 53,369 4,369 2,361 5,354 12,342 16,321 4,257 4,244 7,218 9,179 26,127 43,93 32,77 30,70 24,67 16,49 17,35 18,23 30,12 40,7 53,7 62,12 69,18 69,18 69,18')
SAX.endElement(polyline)
SAX.characters(
</g>
<g style = "fill: #e5b, 2)
, 2)
SAX.endElement(g)
SAX.characters(
<g style = "fill: #e5b27f" >, 2)
, 2)
SAX.startElement(g, style='fill: #e5b27f')
SAX.characters(
<polyline verts = " 142,7, 5)
, 5)
SAX.startElement(polyline, verts=' 142,79 136,74 138,82 133,78 133,84 127,78 128,85 124,80 125,87 119,82 119,90 125,99 125,96 128,100 128,94 131,98 132,93 135,97 136,93 138,97 139,94 141,98 143,94 144,85 142,79 142,79 142,79')
SAX.endElement(polyline)
SAX.characters(
</g>
<g style = "fill: #eb8, 2)
, 2)
SAX.endElement(g)
SAX.characters(
<g style = "fill: #eb8080" >, 2)
, 2)
SAX.startElement(g, style='fill: #eb8080')
SAX.characters(
<polyline verts = " 127,1, 5)
, 5)
SAX.startElement(polyline, verts=' 127,101 132,100 137,99 144,101 143,105 135,110 127,101 127,101 127,101')
SAX.endElement(polyline)
SAX.characters(
</g>
<g style = "fill: #f2c, 2)
, 2)
SAX.endElement(g)
SAX.characters(
<g style = "fill: #f2cc99" >, 2)
, 2)
SAX.startElement(g, style='fill: #f2cc99')
SAX.characters(
<polyline verts = " 178,2, 5)
, 5)
SAX.startElement(polyline, verts=' 178,229 157,248 139,296 126,349 137,356 158,357 183,342 212,332 235,288 235,261 228,252 212,250 188,251 178,229 178,229 178,229')
SAX.endElement(polyline)
SAX.characters(
</g>
<g style = "fill: #9c8, 2)
, 2)
SAX.endElement(g)
SAX.characters(
<g style = "fill: #9c826b" >, 2)
, 2)
SAX.startElement(g, style='fill: #9c826b')
SAX.characters(
<polyline verts = " 56,22, 5)
, 5)
SAX.startElement(polyline, verts=' 56,229 48,241 48,250 57,281 63,325 71,338 81,315 76,321 79,311 83,301 75,308 80,298 73,303 76,296 71,298 74,292 69,293 74,284 78,278 71,278 74,274 68,273 70,268 66,267 68,261 60,266 62,259 65,253 57,258 59,251 55,254 55,248 60,237 54,240 58,234 54,236 56,229 56,229 56,229')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 74,36, 5)
, 5)
SAX.startElement(polyline, verts=' 74,363 79,368 81,368 85,362 89,363 92,370 96,373 101,372 108,361 110,371 113,373 116,371 120,358 122,363 123,371 126,371 129,367 132,357 135,361 130,376 127,377 94,378 84,376 76,371 74,363 74,363 74,363')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 212,2, 5)
, 5)
SAX.startElement(polyline, verts=' 212,250 219,251 228,258 236,270 235,287 225,304 205,332 177,343 171,352 158,357 166,352 168,346 168,339 165,333 155,327 155,323 161,320 165,316 169,316 167,312 171,313 168,308 173,309 170,306 177,306 175,308 177,311 174,311 176,316 171,315 174,319 168,320 168,323 175,327 179,332 183,326 184,332 189,323 190,328 194,320 194,325 199,316 201,320 204,313 206,316 208,310 211,305 219,298 226,288 229,279 228,266 224,259 217,253 212,250 212,250 212,250')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 151,2, 5)
, 5)
SAX.startElement(polyline, verts=' 151,205 151,238 149,252 141,268 128,282 121,301 130,300 126,313 118,324 116,337 120,346 133,352 133,340 137,333 145,329 156,327 153,319 153,291 157,271 170,259 178,277 193,250 174,216 151,205 151,205 151,205')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 78,12, 5)
, 5)
SAX.startElement(polyline, verts=' 78,127 90,142 95,155 108,164 125,167 139,175 150,206 152,191 141,140 121,148 100,136 78,127 78,127 78,127')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 21,58, 5)
, 5)
SAX.startElement(polyline, verts=' 21,58 35,63 38,68 32,69 42,74 40,79 47,80 54,83 45,94 34,81 32,73 24,66 21,58 21,58 21,58')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 71,34, 5)
, 5)
SAX.startElement(polyline, verts=' 71,34 67,34 66,27 59,24 54,17 48,17 39,22 30,26 28,31 31,39 38,46 29,45 36,54 41,61 41,70 50,69 54,71 55,58 67,52 76,43 76,39 68,44 71,34 71,34 71,34')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 139,7, 5)
, 5)
SAX.startElement(polyline, verts=' 139,74 141,83 143,89 144,104 148,104 155,106 154,86 157,77 155,72 150,77 144,77 139,74 139,74 139,74')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 105,4, 5)
, 5)
SAX.startElement(polyline, verts=' 105,44 102,53 108,58 111,62 112,55 105,44 105,44 105,44')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 141,4, 5)
, 5)
SAX.startElement(polyline, verts=' 141,48 141,54 144,58 139,62 137,66 136,59 137,52 141,48 141,48 141,48')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 98,13, 5)
, 5)
SAX.startElement(polyline, verts=' 98,135 104,130 105,134 108,132 108,135 112,134 113,137 116,136 116,139 119,139 124,141 128,140 133,138 140,133 139,140 126,146 104,144 98,135 98,135 98,135')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 97,11, 5)
, 5)
SAX.startElement(polyline, verts=' 97,116 103,119 103,116 111,118 116,117 122,114 127,107 135,111 142,107 141,114 145,118 149,121 145,125 140,124 127,121 113,125 100,124 97,116 97,116 97,116')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 147,3, 5)
, 5)
SAX.startElement(polyline, verts=' 147,33 152,35 157,34 153,31 160,31 156,28 161,28 159,24 163,25 163,21 165,22 170,23 167,17 172,21 174,18 175,23 176,22 177,28 177,33 174,37 176,39 174,44 171,49 168,53 164,57 159,68 156,70 154,60 150,51 146,43 144,35 147,33 147,33 147,33')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 85,72, 5)
, 5)
SAX.startElement(polyline, verts=' 85,72 89,74 93,75 100,76 105,75 102,79 94,79 88,76 85,72 85,72 85,72')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 86,21, 5)
, 5)
SAX.startElement(polyline, verts=' 86,214 79,221 76,232 82,225 78,239 82,234 78,245 81,243 79,255 84,250 84,267 87,254 90,271 90,257 95,271 93,256 95,249 92,252 93,243 89,253 89,241 86,250 87,236 83,245 87,231 82,231 90,219 84,221 86,214 86,214 86,214')
SAX.endElement(polyline)
SAX.characters(
</g>
<g style = "fill: #ffc, 2)
, 2)
SAX.endElement(g)
SAX.characters(
<g style = "fill: #ffcc7f" >, 2)
, 2)
SAX.startElement(g, style='fill: #ffcc7f')
SAX.characters(
<polyline verts = " 93,68, 5)
, 5)
SAX.startElement(polyline, verts=' 93,68 96,72 100,73 106,72 108,66 105,63 100,62 93,68 93,68 93,68')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 144,6, 5)
, 5)
SAX.startElement(polyline, verts=' 144,64 142,68 142,73 146,74 150,73 154,64 149,62 144,64 144,64 144,64')
SAX.endElement(polyline)
SAX.characters(
</g>
<g style = "fill: #9c8, 2)
, 2)
SAX.endElement(g)
SAX.characters(
<g style = "fill: #9c826b" >, 2)
, 2)
SAX.startElement(g, style='fill: #9c826b')
SAX.characters(
<polyline verts = " 57,91, 5)
, 5)
SAX.startElement(polyline, verts=' 57,91 42,111 52,105 41,117 53,112 46,120 53,116 50,124 57,119 55,127 61,122 60,130 67,126 66,134 71,129 72,136 77,130 76,137 80,133 82,138 86,135 96,135 94,129 86,124 83,117 77,123 79,117 73,120 75,112 68,116 71,111 65,114 69,107 63,110 68,102 61,107 66,98 61,103 63,97 57,99 57,91 57,91 57,91')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 83,79, 5)
, 5)
SAX.startElement(polyline, verts=' 83,79 76,79 67,82 75,83 65,88 76,87 65,92 76,91 68,96 77,95 70,99 80,98 72,104 80,102 76,108 85,103 92,101 87,98 93,96 86,94 91,93 85,91 93,89 99,89 105,93 107,85 102,82 92,80 83,79 83,79 83,79')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 109,7, 5)
, 5)
SAX.startElement(polyline, verts=' 109,77 111,83 109,89 113,94 117,90 117,81 114,78 109,77 109,77 109,77')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 122,1, 5)
, 5)
SAX.startElement(polyline, verts=' 122,128 127,126 134,127 136,129 134,130 130,128 124,129 122,128 122,128 122,128')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 78,27, 5)
, 5)
SAX.startElement(polyline, verts=' 78,27 82,32 80,33 82,36 78,37 82,40 78,42 81,46 76,47 78,49 74,50 82,52 87,50 83,48 91,46 86,45 91,42 88,40 92,37 86,34 90,31 86,29 89,26 78,27 78,27 78,27')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 82,17, 5)
, 5)
SAX.startElement(polyline, verts=' 82,17 92,20 79,21 90,25 81,25 94,28 93,26 101,30 101,26 107,33 108,28 111,40 113,34 115,45 117,39 119,54 121,46 124,58 126,47 129,59 130,49 134,58 133,44 137,48 133,37 137,40 133,32 126,20 135,26 132,19 138,23 135,17 142,18 132,11 116,6 94,6 78,11 92,12 80,14 90,16 82,17 82,17 82,17')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 142,2, 5)
, 5)
SAX.startElement(polyline, verts=' 142,234 132,227 124,223 115,220 110,225 118,224 127,229 135,236 122,234 115,237 113,242 121,238 139,243 121,245 111,254 95,254 102,244 104,235 110,229 100,231 104,224 113,216 122,215 132,217 141,224 145,230 149,240 142,234 142,234 142,234')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 115,2, 5)
, 5)
SAX.startElement(polyline, verts=' 115,252 125,248 137,249 143,258 134,255 125,254 115,252 115,252 115,252')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 114,2, 5)
, 5)
SAX.startElement(polyline, verts=' 114,212 130,213 140,219 147,225 144,214 137,209 128,207 114,212 114,212 114,212')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 102,2, 5)
, 5)
SAX.startElement(polyline, verts=' 102,263 108,258 117,257 131,258 116,260 109,265 102,263 102,263 102,263')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 51,24, 5)
, 5)
SAX.startElement(polyline, verts=' 51,241 35,224 40,238 23,224 31,242 19,239 28,247 17,246 25,250 37,254 39,263 44,271 47,294 48,317 51,328 60,351 60,323 53,262 47,246 51,241 51,241 51,241')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 2,364, 5)
, 5)
SAX.startElement(polyline, verts=' 2,364 9,367 14,366 18,355 20,364 26,366 31,357 35,364 39,364 42,357 47,363 53,360 59,357 54,369 7,373 2,364 2,364 2,364')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 7,349, 5)
, 5)
SAX.startElement(polyline, verts=' 7,349 19,345 25,339 18,341 23,333 28,326 23,326 27,320 23,316 25,311 20,298 15,277 12,264 9,249 10,223 3,248 5,261 15,307 17,326 11,343 7,349 7,349 7,349')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 11,22, 5)
, 5)
SAX.startElement(polyline, verts=' 11,226 15,231 25,236 18,227 11,226 11,226 11,226')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 13,21, 5)
, 5)
SAX.startElement(polyline, verts=' 13,214 19,217 32,227 23,214 16,208 15,190 24,148 31,121 24,137 14,170 8,189 13,214 13,214 13,214')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 202,2, 5)
, 5)
SAX.startElement(polyline, verts=' 202,254 195,258 199,260 193,263 197,263 190,268 196,268 191,273 188,282 200,272 194,272 201,266 197,265 204,262 200,258 204,256 202,254 202,254 202,254')
SAX.endElement(polyline)
SAX.characters(
</g>
<g style = "fill: #845, 2)
, 2)
SAX.endElement(g)
SAX.characters(
<g style = "fill: #845433" >, 2)
, 2)
SAX.startElement(g, style='fill: #845433')
SAX.characters(
<polyline verts = " 151,2, 5)
, 5)
SAX.startElement(polyline, verts=' 151,213 165,212 179,225 189,246 187,262 179,275 176,263 177,247 171,233 163,230 165,251 157,264 146,298 145,321 133,326 143,285 154,260 153,240 151,213 151,213 151,213')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 91,13, 5)
, 5)
SAX.startElement(polyline, verts=' 91,132 95,145 97,154 104,148 107,155 109,150 111,158 115,152 118,159 120,153 125,161 126,155 133,164 132,154 137,163 137,152 142,163 147,186 152,192 148,167 141,143 124,145 105,143 91,132 91,132 91,132')
SAX.endElement(polyline)
SAX.characters(
</g>
<g style = "fill: #9c8, 2)
, 2)
SAX.endElement(g)
SAX.characters(
<g style = "fill: #9c826b" >, 2)
, 2)
SAX.startElement(g, style='fill: #9c826b')
SAX.characters(
<polyline verts = " 31,57, 5)
, 5)
SAX.startElement(polyline, verts=' 31,57 23,52 26,51 20,44 23,42 21,36 22,29 25,23 24,32 30,43 26,41 30,50 26,48 31,57 31,57 31,57')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 147,2, 5)
, 5)
SAX.startElement(polyline, verts=' 147,21 149,28 155,21 161,16 167,14 175,15 173,11 161,9 147,21 147,21 147,21')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 181,3, 5)
, 5)
SAX.startElement(polyline, verts=' 181,39 175,51 169,57 171,65 165,68 165,75 160,76 162,91 171,71 180,51 181,39 181,39 181,39')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 132,3, 5)
, 5)
SAX.startElement(polyline, verts=' 132,346 139,348 141,346 142,341 147,342 143,355 133,350 132,346 132,346 132,346')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 146,3, 5)
, 5)
SAX.startElement(polyline, verts=' 146,355 151,352 155,348 157,343 160,349 151,356 147,357 146,355 146,355 146,355')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 99,26, 5)
, 5)
SAX.startElement(polyline, verts=' 99,266 100,281 94,305 86,322 78,332 72,346 73,331 91,291 99,266 99,266 99,266')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 20,34, 5)
, 5)
SAX.startElement(polyline, verts=' 20,347 32,342 45,340 54,345 45,350 42,353 38,350 31,353 29,356 23,350 19,353 15,349 20,347 20,347 20,347')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 78,34, 5)
, 5)
SAX.startElement(polyline, verts=' 78,344 86,344 92,349 88,358 84,352 78,344 78,344 78,344')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 93,34, 5)
, 5)
SAX.startElement(polyline, verts=' 93,347 104,344 117,345 124,354 121,357 116,351 112,351 108,355 102,351 93,347 93,347 93,347')
SAX.endElement(polyline)
SAX.characters(
</g>
<g style = "fill: #000, 2)
, 2)
SAX.endElement(g)
SAX.characters(
<g style = "fill: #000000" >, 2)
, 2)
SAX.startElement(g, style='fill: #000000')
SAX.characters(
<polyline verts = " 105,1, 5)
, 5)
SAX.startElement(polyline, verts=' 105,12 111,18 113,24 113,29 119,34 116,23 112,16 105,12 105,12 105,12')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 122,2, 5)
, 5)
SAX.startElement(polyline, verts=' 122,27 125,34 127,43 128,34 125,29 122,27 122,27 122,27')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 115,1, 5)
, 5)
SAX.startElement(polyline, verts=' 115,13 122,19 122,15 113,10 115,13 115,13 115,13')
SAX.endElement(polyline)
SAX.characters(
</g>
<g style = "fill: #ffe, 2)
, 2)
SAX.endElement(g)
SAX.characters(
<g style = "fill: #ffe5b2" >, 2)
, 2)
SAX.startElement(g, style='fill: #ffe5b2')
SAX.characters(
<polyline verts = " 116,1, 5)
, 5)
SAX.startElement(polyline, verts=' 116,172 107,182 98,193 98,183 90,199 89,189 84,207 88,206 87,215 95,206 93,219 91,230 98,216 97,226 104,214 112,209 104,208 113,202 126,200 139,207 132,198 142,203 134,192 142,195 134,187 140,185 130,181 136,177 126,177 125,171 116,180 116,172 116,172 116,172')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 74,22, 5)
, 5)
SAX.startElement(polyline, verts=' 74,220 67,230 67,221 59,235 63,233 60,248 70,232 65,249 71,243 67,256 73,250 69,262 73,259 71,267 76,262 72,271 78,270 76,275 82,274 78,290 86,279 86,289 92,274 88,275 87,264 82,270 82,258 77,257 78,247 73,246 77,233 72,236 74,220 74,220 74,220')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 133,2, 5)
, 5)
SAX.startElement(polyline, verts=' 133,230 147,242 148,250 145,254 138,247 129,246 142,245 138,241 128,237 137,238 133,230 133,230 133,230')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 133,2, 5)
, 5)
SAX.startElement(polyline, verts=' 133,261 125,261 116,263 111,267 125,265 133,261 133,261 133,261')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 121,2, 5)
, 5)
SAX.startElement(polyline, verts=' 121,271 109,273 103,279 99,305 92,316 85,327 83,335 89,340 97,341 94,336 101,336 96,331 103,330 97,327 108,325 99,322 109,321 100,318 110,317 105,314 110,312 107,310 113,308 105,306 114,303 105,301 115,298 107,295 115,294 108,293 117,291 109,289 117,286 109,286 118,283 112,281 118,279 114,278 119,276 115,274 121,271 121,271 121,271')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 79,36, 5)
, 5)
SAX.startElement(polyline, verts=' 79,364 74,359 74,353 76,347 80,351 83,356 82,360 79,364 79,364 79,364')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 91,36, 5)
, 5)
SAX.startElement(polyline, verts=' 91,363 93,356 97,353 103,355 105,360 103,366 99,371 94,368 91,363 91,363 91,363')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 110,3, 5)
, 5)
SAX.startElement(polyline, verts=' 110,355 114,353 118,357 117,363 113,369 111,362 110,355 110,355 110,355')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 126,3, 5)
, 5)
SAX.startElement(polyline, verts=' 126,354 123,358 124,367 126,369 129,361 129,357 126,354 126,354 126,354')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 30,15, 5)
, 5)
SAX.startElement(polyline, verts=' 30,154 24,166 20,182 23,194 29,208 37,218 41,210 41,223 46,214 46,227 52,216 52,227 61,216 59,225 68,213 73,219 70,207 77,212 69,200 77,202 70,194 78,197 68,187 76,182 64,182 58,175 58,185 53,177 50,186 46,171 44,182 39,167 36,172 36,162 30,166 30,154 30,154 30,154')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 44,13, 5)
, 5)
SAX.startElement(polyline, verts=' 44,130 41,137 45,136 43,150 48,142 48,157 53,150 52,164 60,156 61,169 64,165 66,175 70,167 74,176 77,168 80,183 85,172 90,182 93,174 98,181 99,173 104,175 105,169 114,168 102,163 95,157 94,166 90,154 87,162 82,149 75,159 72,148 68,155 67,143 62,148 62,138 58,145 56,133 52,142 52,128 49,134 47,125 44,130 44,130 44,130')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 13,21, 5)
, 5)
SAX.startElement(polyline, verts=' 13,216 19,219 36,231 22,223 16,222 22,227 12,224 13,220 16,220 13,216 13,216 13,216')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 10,23, 5)
, 5)
SAX.startElement(polyline, verts=' 10,231 14,236 25,239 27,237 19,234 10,231 10,231 10,231')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 9,245, 5)
, 5)
SAX.startElement(polyline, verts=' 9,245 14,242 25,245 13,245 9,245 9,245 9,245')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 33,25, 5)
, 5)
SAX.startElement(polyline, verts=' 33,255 26,253 18,254 25,256 18,258 27,260 18,263 27,265 19,267 29,270 21,272 29,276 21,278 30,281 22,283 31,287 24,288 32,292 23,293 34,298 26,299 37,303 32,305 39,309 33,309 39,314 34,314 40,318 34,317 40,321 34,321 41,326 33,326 40,330 33,332 39,333 33,337 42,337 54,341 49,337 52,335 47,330 50,330 45,325 49,325 45,321 48,321 45,316 46,306 45,286 43,274 36,261 33,255 33,255 33,255')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 7,358, 5)
, 5)
SAX.startElement(polyline, verts=' 7,358 9,351 14,351 17,359 11,364 7,358 7,358 7,358')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 44,35, 5)
, 5)
SAX.startElement(polyline, verts=' 44,354 49,351 52,355 49,361 44,354 44,354 44,354')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 32,35, 5)
, 5)
SAX.startElement(polyline, verts=' 32,357 37,353 40,358 36,361 32,357 32,357 32,357')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 139,3, 5)
, 5)
SAX.startElement(polyline, verts=' 139,334 145,330 154,330 158,334 154,341 152,348 145,350 149,340 147,336 141,339 139,345 136,342 136,339 139,334 139,334 139,334')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 208,2, 5)
, 5)
SAX.startElement(polyline, verts=' 208,259 215,259 212,255 220,259 224,263 225,274 224,283 220,292 208,300 206,308 203,304 199,315 197,309 195,318 193,313 190,322 190,316 185,325 182,318 180,325 172,321 178,320 176,313 186,312 180,307 188,307 184,303 191,302 186,299 195,294 187,290 197,288 192,286 201,283 194,280 203,277 198,275 207,271 200,269 209,265 204,265 212,262 208,259 208,259 208,259')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 106,1, 5)
, 5)
SAX.startElement(polyline, verts=' 106,126 106,131 109,132 111,134 115,132 115,135 119,133 118,137 123,137 128,137 133,134 136,130 136,127 132,124 118,128 112,128 106,126 106,126 106,126')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 107,1, 5)
, 5)
SAX.startElement(polyline, verts=' 107,114 101,110 98,102 105,97 111,98 119,102 121,108 118,112 113,115 107,114 107,114 107,114')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 148,1, 5)
, 5)
SAX.startElement(polyline, verts=' 148,106 145,110 146,116 150,118 152,111 151,107 148,106 148,106 148,106')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 80,55, 5)
, 5)
SAX.startElement(polyline, verts=' 80,55 70,52 75,58 63,57 72,61 57,61 67,66 57,67 62,69 54,71 61,73 54,77 63,78 53,85 60,84 56,90 69,84 63,82 75,76 70,75 77,72 72,71 78,69 72,66 81,67 78,64 82,63 80,60 86,62 80,55 80,55 80,55')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 87,56, 5)
, 5)
SAX.startElement(polyline, verts=' 87,56 91,52 96,50 102,56 98,56 92,60 87,56 87,56 87,56')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 85,68, 5)
, 5)
SAX.startElement(polyline, verts=' 85,68 89,73 98,76 106,74 96,73 91,70 85,68 85,68 85,68')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 115,5, 5)
, 5)
SAX.startElement(polyline, verts=' 115,57 114,64 111,64 115,75 122,81 122,74 126,79 126,74 131,78 130,72 133,77 131,68 126,61 119,57 115,57 115,57 115,57')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 145,4, 5)
, 5)
SAX.startElement(polyline, verts=' 145,48 143,53 147,59 151,59 150,55 145,48 145,48 145,48')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 26,22, 5)
, 5)
SAX.startElement(polyline, verts=' 26,22 34,15 43,10 52,10 59,16 47,15 32,22 26,22 26,22 26,22')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 160,1, 5)
, 5)
SAX.startElement(polyline, verts=' 160,19 152,26 149,34 154,33 152,30 157,30 155,26 158,27 157,23 161,23 160,19 160,19 160,19')
SAX.endElement(polyline)
SAX.characters(
</g>
<g style = "fill: #000, 2)
, 2)
SAX.endElement(g)
SAX.characters(
<g style = "fill: #000000" >, 2)
, 2)
SAX.startElement(g, style='fill: #000000')
SAX.characters(
<polyline verts = " 98,11, 5)
, 5)
SAX.startElement(polyline, verts=' 98,117 105,122 109,122 105,117 113,120 121,120 130,112 128,108 123,103 123,99 128,101 132,106 135,109 142,105 142,101 145,101 145,91 148,101 145,105 136,112 135,116 143,124 148,120 150,122 142,128 133,122 121,125 112,126 103,125 100,129 96,124 98,117 98,117 98,117')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 146,1, 5)
, 5)
SAX.startElement(polyline, verts=' 146,118 152,118 152,115 149,115 146,118 146,118 146,118')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 148,1, 5)
, 5)
SAX.startElement(polyline, verts=' 148,112 154,111 154,109 149,109 148,112 148,112 148,112')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 106,1, 5)
, 5)
SAX.startElement(polyline, verts=' 106,112 108,115 114,116 118,114 106,112 106,112 106,112')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 108,1, 5)
, 5)
SAX.startElement(polyline, verts=' 108,108 111,110 116,110 119,108 108,108 108,108 108,108')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 106,1, 5)
, 5)
SAX.startElement(polyline, verts=' 106,104 109,105 117,106 115,104 106,104 106,104 106,104')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 50,25, 5)
, 5)
SAX.startElement(polyline, verts=' 50,25 41,26 34,33 39,43 49,58 36,51 47,68 55,69 54,59 61,57 74,46 60,52 67,42 57,48 61,40 54,45 60,36 59,29 48,38 52,30 47,32 50,25 50,25 50,25')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 147,3, 5)
, 5)
SAX.startElement(polyline, verts=' 147,34 152,41 155,49 161,53 157,47 164,47 158,43 168,44 159,40 164,37 169,37 164,33 169,34 165,28 170,30 170,25 173,29 175,27 176,32 173,36 175,39 172,42 172,46 168,49 170,55 162,57 158,63 155,58 153,50 149,46 147,34 147,34 147,34')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 155,7, 5)
, 5)
SAX.startElement(polyline, verts=' 155,71 159,80 157,93 157,102 155,108 150,101 149,93 154,101 152,91 151,83 155,79 155,71 155,71 155,71')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 112,7, 5)
, 5)
SAX.startElement(polyline, verts=' 112,78 115,81 114,91 112,87 113,82 112,78 112,78 112,78')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 78,28, 5)
, 5)
SAX.startElement(polyline, verts=' 78,28 64,17 58,11 47,9 36,10 28,16 21,26 18,41 20,51 23,61 33,65 28,68 37,74 36,81 43,87 48,90 43,100 40,98 39,90 31,80 30,72 22,71 17,61 14,46 16,28 23,17 33,9 45,6 54,6 65,12 78,28 78,28 78,28')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 67,18, 5)
, 5)
SAX.startElement(polyline, verts=' 67,18 76,9 87,5 101,2 118,3 135,8 149,20 149,26 144,19 132,12 121,9 105,7 89,8 76,14 70,20 67,18 67,18 67,18')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 56,98, 5)
, 5)
SAX.startElement(polyline, verts=' 56,98 48,106 56,103 47,112 56,110 52,115 57,113 52,121 62,115 58,123 65,119 63,125 69,121 68,127 74,125 74,129 79,128 83,132 94,135 93,129 85,127 81,122 76,126 75,121 71,124 71,117 66,121 66,117 62,117 64,112 60,113 60,110 57,111 61,105 57,107 60,101 55,102 56,98 56,98 56,98')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 101,1, 5)
, 5)
SAX.startElement(polyline, verts=' 101,132 103,138 106,134 106,139 112,136 111,142 115,139 114,143 119,142 125,145 131,142 135,138 140,134 140,129 143,135 145,149 150,171 149,184 145,165 141,150 136,147 132,151 131,149 126,152 125,150 121,152 117,148 111,152 110,148 105,149 104,145 98,150 96,138 94,132 94,130 98,132 101,132 101,132 101,132')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 41,94, 5)
, 5)
SAX.startElement(polyline, verts=' 41,94 32,110 23,132 12,163 6,190 7,217 5,236 3,247 9,230 12,211 12,185 18,160 26,134 35,110 43,99 41,94 41,94 41,94')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 32,24, 5)
, 5)
SAX.startElement(polyline, verts=' 32,246 41,250 50,257 52,267 53,295 53,323 59,350 54,363 51,365 44,366 42,360 40,372 54,372 59,366 62,353 71,352 75,335 73,330 66,318 68,302 64,294 67,288 63,286 63,279 59,275 58,267 56,262 50,247 42,235 44,246 32,236 35,244 32,246 32,246 32,246')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 134,3, 5)
, 5)
SAX.startElement(polyline, verts=' 134,324 146,320 159,322 173,327 179,337 179,349 172,355 158,357 170,350 174,343 170,333 163,328 152,326 134,329 134,324 134,324 134,324')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 173,3, 5)
, 5)
SAX.startElement(polyline, verts=' 173,339 183,334 184,338 191,329 194,332 199,323 202,325 206,318 209,320 213,309 221,303 228,296 232,289 234,279 233,269 230,262 225,256 219,253 208,252 198,252 210,249 223,250 232,257 237,265 238,277 238,291 232,305 221,323 218,335 212,342 200,349 178,348 173,339 173,339 173,339')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 165,2, 5)
, 5)
SAX.startElement(polyline, verts=' 165,296 158,301 156,310 156,323 162,324 159,318 162,308 162,304 165,296 165,296 165,296')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 99,25, 5)
, 5)
SAX.startElement(polyline, verts=' 99,252 105,244 107,234 115,228 121,228 131,235 122,233 113,235 109,246 121,239 133,243 121,243 110,251 99,252 99,252 99,252')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 117,2, 5)
, 5)
SAX.startElement(polyline, verts=' 117,252 124,247 134,249 136,253 126,252 117,252 117,252 117,252')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 117,2, 5)
, 5)
SAX.startElement(polyline, verts=' 117,218 132,224 144,233 140,225 132,219 117,218 117,218 117,218')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 122,2, 5)
, 5)
SAX.startElement(polyline, verts=' 122,212 134,214 143,221 141,213 132,210 122,212 122,212 122,212')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 69,35, 5)
, 5)
SAX.startElement(polyline, verts=' 69,352 70,363 76,373 86,378 97,379 108,379 120,377 128,378 132,373 135,361 133,358 132,366 127,375 121,374 121,362 119,367 117,374 110,376 110,362 107,357 106,371 104,375 97,376 90,375 90,368 86,362 83,364 86,369 85,373 78,370 73,362 71,351 69,352 69,352 69,352')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 100,3, 5)
, 5)
SAX.startElement(polyline, verts=' 100,360 96,363 99,369 102,364 100,360 100,360 100,360')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 115,3, 5)
, 5)
SAX.startElement(polyline, verts=' 115,360 112,363 114,369 117,364 115,360 115,360 115,360')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 127,3, 5)
, 5)
SAX.startElement(polyline, verts=' 127,362 125,364 126,369 128,365 127,362 127,362 127,362')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 5,255, 5)
, 5)
SAX.startElement(polyline, verts=' 5,255 7,276 11,304 15,320 13,334 6,348 2,353 0,363 5,372 12,374 25,372 38,372 44,369 42,367 36,368 31,369 30,360 27,368 20,370 16,361 15,368 10,369 3,366 3,359 6,352 11,348 17,331 19,316 12,291 9,274 5,255 5,255 5,255')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 10,35, 5)
, 5)
SAX.startElement(polyline, verts=' 10,358 7,362 10,366 11,362 10,358 10,358 10,358')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 25,35, 5)
, 5)
SAX.startElement(polyline, verts=' 25,357 22,360 24,366 27,360 25,357 25,357 25,357')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 37,35, 5)
, 5)
SAX.startElement(polyline, verts=' 37,357 34,361 36,365 38,361 37,357 37,357 37,357')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 49,35, 5)
, 5)
SAX.startElement(polyline, verts=' 49,356 46,359 47,364 50,360 49,356 49,356 49,356')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 130,1, 5)
, 5)
SAX.startElement(polyline, verts=' 130,101 132,102 135,101 139,102 143,103 142,101 137,100 133,100 130,101 130,101 130,101')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 106,4, 5)
, 5)
SAX.startElement(polyline, verts=' 106,48 105,52 108,56 109,52 106,48 106,48 106,48')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 139,5, 5)
, 5)
SAX.startElement(polyline, verts=' 139,52 139,56 140,60 142,58 141,56 139,52 139,52 139,52')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 25,34, 5)
, 5)
SAX.startElement(polyline, verts=' 25,349 29,351 30,355 33,350 37,348 42,351 45,347 49,345 44,343 36,345 25,349 25,349 25,349')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 98,34, 5)
, 5)
SAX.startElement(polyline, verts=' 98,347 105,351 107,354 109,349 115,349 120,353 118,349 113,346 104,346 98,347 98,347 98,347')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 83,34, 5)
, 5)
SAX.startElement(polyline, verts=' 83,348 87,352 87,357 89,351 87,348 83,348 83,348 83,348')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 155,1, 5)
, 5)
SAX.startElement(polyline, verts=' 155,107 163,107 170,107 186,108 175,109 155,109 155,107 155,107 155,107')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 153,1, 5)
, 5)
SAX.startElement(polyline, verts=' 153,114 162,113 175,112 192,114 173,114 154,115 153,114 153,114 153,114')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 152,1, 5)
, 5)
SAX.startElement(polyline, verts=' 152,118 164,120 180,123 197,129 169,123 151,120 152,118 152,118 152,118')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 68,10, 5)
, 5)
SAX.startElement(polyline, verts=' 68,109 87,106 107,106 106,108 88,108 68,109 68,109 68,109')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 105,1, 5)
, 5)
SAX.startElement(polyline, verts=' 105,111 95,112 79,114 71,116 85,115 102,113 105,111 105,111 105,111')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 108,1, 5)
, 5)
SAX.startElement(polyline, verts=' 108,101 98,99 87,99 78,99 93,100 105,102 108,101 108,101 108,101')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 85,63, 5)
, 5)
SAX.startElement(polyline, verts=' 85,63 91,63 97,60 104,60 108,62 111,69 112,75 110,74 108,71 103,73 106,69 105,65 103,64 103,67 102,70 99,70 97,66 94,67 97,72 88,67 84,66 85,63 85,63 85,63')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 140,7, 5)
, 5)
SAX.startElement(polyline, verts=' 140,74 141,66 144,61 150,61 156,62 153,70 150,73 152,65 150,65 151,68 149,71 146,71 144,66 143,70 143,74 140,74 140,74 140,74')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 146,2, 5)
, 5)
SAX.startElement(polyline, verts=' 146,20 156,11 163,9 172,9 178,14 182,18 184,32 182,42 182,52 177,58 176,67 171,76 165,90 157,105 160,92 164,85 168,78 167,73 173,66 172,62 175,59 174,55 177,53 180,46 181,29 179,21 173,13 166,11 159,13 153,18 148,23 146,20 146,20 146,20')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 150,1, 5)
, 5)
SAX.startElement(polyline, verts=' 150,187 148,211 150,233 153,247 148,267 135,283 125,299 136,292 131,313 122,328 122,345 129,352 133,359 133,367 137,359 148,356 140,350 131,347 129,340 132,332 140,328 137,322 140,304 154,265 157,244 155,223 161,220 175,229 186,247 185,260 176,275 178,287 185,277 188,261 196,253 189,236 174,213 150,187 150,187 150,187')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 147,3, 5)
, 5)
SAX.startElement(polyline, verts=' 147,338 142,341 143,345 141,354 147,343 147,338 147,338 147,338')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 157,3, 5)
, 5)
SAX.startElement(polyline, verts=' 157,342 156,349 150,356 157,353 163,346 162,342 157,342 157,342 157,342')
SAX.endElement(polyline)
SAX.characters(
<polyline verts = " 99,26, 5)
, 5)
SAX.startElement(polyline, verts=' 99,265 96,284 92,299 73,339 73,333 87,300 99,265 99,265 99,265')
SAX.endElement(polyline)
SAX.characters(
</g></svg>
, 2)
SAX.endElement(g)
SAX.endElement(svg)

View File

@ -4,222 +4,185 @@ SAX.internalSubset(svg, -//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphi
SAX.resolveEntity(-//W3C//DTD SVG April 1999//EN, http://www.w3.org/Graphics/SVG/svg-19990412.dtd)
SAX.startElement(svg, width='268px', height='207px')
SAX.characters(
<g style = "stroke: #000000" , 1)
, 1)
SAX.startElement(g, style='stroke: #000000')
SAX.characters(
<path d = " M 29 28 "/> , 5)
, 5)
SAX.startElement(path, d=' M 29 28 ')
SAX.endElement(path)
SAX.characters(
<path d = " L 19 74 "/> , 5)
, 5)
SAX.startElement(path, d=' L 19 74 ')
SAX.endElement(path)
SAX.characters(
</g>
<g style = "stroke: #8, 2)
, 2)
SAX.endElement(g)
SAX.characters(
<g style = "stroke: #800040", 2)
, 2)
SAX.startElement(g, style='stroke: #800040')
SAX.characters(
<polyline verts = " 32,10, 5)
, 5)
SAX.startElement(polyline, verts=' 32,100 72,50 90,82 73,16 120,64 152,9 177,107')
SAX.endElement(polyline)
SAX.characters(
</g>
<g style = "stroke: #0, 2)
, 2)
SAX.endElement(g)
SAX.characters(
<g style = "stroke: #000000", 2)
, 2)
SAX.startElement(g, style='stroke: #000000')
SAX.characters(
</g>
<g style = "stroke: #0, 2)
, 2)
SAX.endElement(g)
SAX.characters(
<g style = "stroke: #0000ff", 2)
, 2)
SAX.startElement(g, style='stroke: #0000ff')
SAX.characters(
<rect x = "30" y = "101" , 5)
, 5)
SAX.startElement(rect, x='30', y='101', width='51', height='33')
SAX.endElement(rect)
SAX.characters(
</g>
<g style = "fill: #0000, 1)
, 1)
SAX.endElement(g)
SAX.characters(
<g style = "fill: #0000ff" >, 2)
, 2)
SAX.startElement(g, style='fill: #0000ff')
SAX.characters(
<ellipse cx = "182" cy = , 5)
, 5)
SAX.startElement(ellipse, cx='182', cy='127', major='37', minor='31', angle='90')
SAX.endElement(ellipse)
SAX.characters(
</g>
<g style = "fill: #ff00, 1)
, 1)
SAX.endElement(g)
SAX.characters(
<g style = "fill: #ff0000" >, 2)
, 2)
SAX.startElement(g, style='fill: #ff0000')
SAX.characters(
<polyline verts = " 78,18, 5)
, 5)
SAX.startElement(polyline, verts=' 78,180 76,151 131,149 136,182 135,182 134,183 127,185 117,186 109,192 104,194 98,199 96,200 95,201 94,202 92,202 85,202 70,200 54,199 47,198 46,197 45,197 37,195 26,193 17,187 9,181 8,181 7,176 6,175 6,173 6,172 6,170 8,164 8,163 8,162 9,162 10,162 11,162 13,162 20,162 26,162 27,162 28,162 30,162 30,163 31,163 32,164 34,166 35,166 36,167 36,168 37,169 38,169 39,169 41,170 43,170 45,170 47,170 49,170 50,168 50,161 50,160 50,159 47,162 78,180')
SAX.endElement(polyline)
SAX.characters(
<g>
<desc> Java Font, 5)
, 5)
SAX.startElement(g)
SAX.characters(
<desc> Java Font definit, 6)
, 6)
SAX.startElement(desc)
SAX.characters( Java Font definition:Dialog 0, 30)
SAX.endElement(desc)
SAX.characters(
</g>
<g>
<desc> J, 5)
, 5)
SAX.endElement(g)
SAX.characters(
<g>
<desc> Java Font , 4)
, 4)
SAX.startElement(g)
SAX.characters(
<desc> Java Font definit, 6)
, 6)
SAX.startElement(desc)
SAX.characters( Java Font definition:Helvetic, 33)
SAX.endElement(desc)
SAX.characters(
</g>
</g>
<g style = "st, 5)
, 5)
SAX.endElement(g)
SAX.characters(
</g>
<g style = "stroke: #00, 1)
, 1)
SAX.endElement(g)
SAX.characters(
<g style = "stroke: #000000", 2)
, 2)
SAX.startElement(g, style='stroke: #000000')
SAX.characters(
<text x = "188" y = "36" , 5)
, 5)
SAX.startElement(text, x='188', y='36')
SAX.characters(this is text</text>
</g>
<g s, 12)
SAX.characters(this is text, 12)
SAX.endElement(text)
SAX.characters(
</g>
<g style = "stroke: #00, 1)
, 1)
SAX.endElement(g)
SAX.characters(
<g style = "stroke: #000000", 2)
, 2)
SAX.startElement(g, style='stroke: #000000')
SAX.characters(
<g>
<desc> Java Font, 5)
, 5)
SAX.startElement(g)
SAX.characters(
<desc> Java Font definit, 6)
, 6)
SAX.startElement(desc)
SAX.characters( Java Font definition:Dialog 0, 30)
SAX.endElement(desc)
SAX.characters(
</g>
<g>
<desc> J, 5)
, 5)
SAX.endElement(g)
SAX.characters(
<g>
<desc> Java Font , 4)
, 4)
SAX.startElement(g)
SAX.characters(
<desc> Java Font definit, 6)
, 6)
SAX.startElement(desc)
SAX.characters( Java Font definition:Helvetic, 35)
SAX.endElement(desc)
SAX.characters(
</g>
</g>
<g style = "st, 5)
, 5)
SAX.endElement(g)
SAX.characters(
</g>
<g style = "stroke: #00, 1)
, 1)
SAX.endElement(g)
SAX.characters(
<g style = "stroke: #008080", 2)
, 2)
SAX.startElement(g, style='stroke: #008080')
SAX.characters(
<text x = "176" y = "85" , 5)
, 5)
SAX.startElement(text, x='176', y='85')
SAX.characters(sadfsadfsad</text>
</g>
<g st, 11)
SAX.characters(sadfsadfsad, 11)
SAX.endElement(text)
SAX.characters(
</g>
<g style = "stroke: #00, 1)
, 1)
SAX.endElement(g)
SAX.characters(
<g style = "stroke: #000000", 2)
, 2)
SAX.startElement(g, style='stroke: #000000')
SAX.characters(
</g>
<g style = "fill: #800, 2)
, 2)
SAX.endElement(g)
SAX.characters(
<g style = "fill: #800040" >, 2)
, 2)
SAX.startElement(g, style='fill: #800040')
SAX.characters(
<ellipse cx = "208" cy = , 5)
, 5)
SAX.startElement(ellipse, cx='208', cy='180', major='45', minor='31', angle='0')
SAX.endElement(ellipse)
SAX.characters(
</g>
<g style = "stroke: #00, 1)
, 1)
SAX.endElement(g)
SAX.characters(
<g style = "stroke: #000000", 2)
, 2)
SAX.startElement(g, style='stroke: #000000')
SAX.characters(
</g>
<g style = "fill: #fff, 2)
, 2)
SAX.endElement(g)
SAX.characters(
<g style = "fill: #ffffff" >, 2)
, 2)
SAX.startElement(g, style='fill: #ffffff')
SAX.characters(
<g>
<desc> Java Font, 5)
, 5)
SAX.startElement(g)
SAX.characters(
<desc> Java Font definit, 6)
, 6)
SAX.startElement(desc)
SAX.characters( Java Font definition:Dialog 7, 32)
SAX.endElement(desc)
SAX.characters(
</g>
<g>
<desc> J, 5)
, 5)
SAX.endElement(g)
SAX.characters(
<g>
<desc> Java Font , 4)
, 4)
SAX.startElement(g)
SAX.characters(
<desc> Java Font definit, 6)
, 6)
SAX.startElement(desc)
SAX.characters( Java Font definition:Dialog 7, 32)
SAX.endElement(desc)
SAX.characters(
</g>
</g></svg>
, 5)
, 5)
SAX.endElement(g)
SAX.characters(
</g></svg>
, 1)
SAX.endElement(g)
SAX.endElement(svg)

File diff suppressed because one or more lines are too long

View File

@ -9,13 +9,12 @@ SAX.getEntity(zz)
SAX.getEntity(xx)
SAX.warning: xmlParsePEReference: %xx; not found
SAX.startElement(test)
SAX.characters(This sample shows a &tricky; m, 20)
SAX.characters(This sample shows a , 20)
SAX.getEntity(tricky)
SAX.isStandalone()
SAX.hasInternalSubset()
SAX.hasExternalSubset()
SAX.error: Entity 'tricky' not defined
SAX.characters( method.</test>
, 8)
SAX.characters( method., 8)
SAX.endElement(test)
SAX.endDocument()

View File

@ -115,7 +115,7 @@ SIZE="3"
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN3575"
NAME="AEN3699"
></A
><H2
>Name</H2
@ -123,7 +123,7 @@ NAME="AEN3575"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN3578"
NAME="AEN3702"
></A
><H2
>Synopsis</H2
@ -330,7 +330,7 @@ HREF="gnome-xml-entities.html#XMLENTITIESTABLEPTR"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN3631"
NAME="AEN3755"
></A
><H2
>Description</H2
@ -340,14 +340,14 @@ NAME="AEN3631"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN3634"
NAME="AEN3758"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN3636"
NAME="AEN3760"
></A
><H3
><A
@ -363,7 +363,7 @@ CELLPADDING="6"
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_INTERNAL_GENERAL_ENTITY</PRE
>#define XML_INTERNAL_GENERAL_ENTITY 1</PRE
></TD
></TR
></TABLE
@ -373,7 +373,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3641"
NAME="AEN3765"
></A
><H3
><A
@ -389,7 +389,7 @@ CELLPADDING="6"
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_EXTERNAL_GENERAL_PARSED_ENTITY</PRE
>#define XML_EXTERNAL_GENERAL_PARSED_ENTITY 2</PRE
></TD
></TR
></TABLE
@ -399,7 +399,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3646"
NAME="AEN3770"
></A
><H3
><A
@ -415,7 +415,7 @@ CELLPADDING="6"
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_EXTERNAL_GENERAL_UNPARSED_ENTITY</PRE
>#define XML_EXTERNAL_GENERAL_UNPARSED_ENTITY 3</PRE
></TD
></TR
></TABLE
@ -425,7 +425,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3651"
NAME="AEN3775"
></A
><H3
><A
@ -441,7 +441,7 @@ CELLPADDING="6"
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_INTERNAL_PARAMETER_ENTITY</PRE
>#define XML_INTERNAL_PARAMETER_ENTITY 4</PRE
></TD
></TR
></TABLE
@ -451,7 +451,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3656"
NAME="AEN3780"
></A
><H3
><A
@ -467,7 +467,7 @@ CELLPADDING="6"
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_EXTERNAL_PARAMETER_ENTITY</PRE
>#define XML_EXTERNAL_PARAMETER_ENTITY 5</PRE
></TD
></TR
></TABLE
@ -477,7 +477,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3661"
NAME="AEN3785"
></A
><H3
><A
@ -493,7 +493,7 @@ CELLPADDING="6"
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_INTERNAL_PREDEFINED_ENTITY</PRE
>#define XML_INTERNAL_PREDEFINED_ENTITY 6</PRE
></TD
></TR
></TABLE
@ -503,20 +503,33 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3666"
NAME="AEN3790"
></A
><H3
><A
NAME="XMLENTITYPTR"
></A
>xmlEntityPtr</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlEntity *xmlEntityPtr;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3670"
NAME="AEN3795"
></A
><H3
><A
@ -532,7 +545,7 @@ CELLPADDING="6"
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_MIN_ENTITIES_TABLE</PRE
>#define XML_MIN_ENTITIES_TABLE 32</PRE
></TD
></TR
></TABLE
@ -542,20 +555,33 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3675"
NAME="AEN3800"
></A
><H3
><A
NAME="XMLENTITIESTABLEPTR"
></A
>xmlEntitiesTablePtr</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlEntitiesTable *xmlEntitiesTablePtr;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3679"
NAME="AEN3805"
></A
><H3
><A
@ -625,7 +651,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the document</TD
></TR
><TR
><TD
@ -642,7 +668,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the entity name</TD
></TR
><TR
><TD
@ -659,7 +685,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the entity type XML_xxx_yyy_ENTITY</TD
></TR
><TR
><TD
@ -676,7 +702,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the entity external ID if available</TD
></TR
><TR
><TD
@ -693,7 +719,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the entity system ID if available</TD
></TR
><TR
><TD
@ -710,7 +736,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the entity content</TD
></TR
></TABLE
><P
@ -720,7 +746,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3719"
NAME="AEN3845"
></A
><H3
><A
@ -790,7 +816,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the document</TD
></TR
><TR
><TD
@ -807,7 +833,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the entity name</TD
></TR
><TR
><TD
@ -824,7 +850,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the entity type XML_xxx_yyy_ENTITY</TD
></TR
><TR
><TD
@ -841,7 +867,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the entity external ID if available</TD
></TR
><TR
><TD
@ -858,7 +884,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the entity system ID if available</TD
></TR
><TR
><TD
@ -875,7 +901,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the entity content</TD
></TR
></TABLE
><P
@ -885,7 +911,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3759"
NAME="AEN3885"
></A
><H3
><A
@ -941,7 +967,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the entity name</TD
></TR
><TR
><TD
@ -956,7 +982,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>NULL if not, othervise the entity</TD
></TR
></TABLE
><P
@ -966,7 +992,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3780"
NAME="AEN3906"
></A
><H3
><A
@ -1028,7 +1054,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the document referencing the entity</TD
></TR
><TR
><TD
@ -1045,7 +1071,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the entity name</TD
></TR
><TR
><TD
@ -1060,7 +1086,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>A pointer to the entity structure or NULL if not found.</TD
></TR
></TABLE
><P
@ -1070,7 +1096,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3806"
NAME="AEN3932"
></A
><H3
><A
@ -1131,7 +1157,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the document referencing the entity</TD
></TR
><TR
><TD
@ -1148,7 +1174,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the entity name</TD
></TR
><TR
><TD
@ -1163,7 +1189,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>A pointer to the entity structure or NULL if not found.</TD
></TR
></TABLE
><P
@ -1173,7 +1199,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3832"
NAME="AEN3958"
></A
><H3
><A
@ -1242,7 +1268,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the document containing the string</TD
></TR
><TR
><TD
@ -1259,7 +1285,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> A string to convert to XML.</TD
></TR
><TR
><TD
@ -1274,7 +1300,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>A newly allocated string with the substitution done.</TD
></TR
></TABLE
><P
@ -1284,7 +1310,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3861"
NAME="AEN3987"
></A
><H3
><A
@ -1350,7 +1376,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the document containing the string</TD
></TR
><TR
><TD
@ -1367,7 +1393,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> A string to convert to XML.</TD
></TR
><TR
><TD
@ -1382,7 +1408,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>A newly allocated string with the substitution done.</TD
></TR
></TABLE
><P
@ -1392,7 +1418,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3888"
NAME="AEN4014"
></A
><H3
><A
@ -1443,7 +1469,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>the xmlEntitiesTablePtr just created or NULL in case of error.</TD
></TR
></TABLE
><P
@ -1453,7 +1479,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3904"
NAME="AEN4030"
></A
><H3
><A
@ -1509,7 +1535,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> An entity table</TD
></TR
><TR
><TD
@ -1524,7 +1550,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>the new xmlEntitiesTablePtr or NULL in case of error.</TD
></TR
></TABLE
><P
@ -1534,7 +1560,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3925"
NAME="AEN4051"
></A
><H3
><A
@ -1587,7 +1613,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> An entity table</TD
></TR
></TABLE
><P
@ -1597,7 +1623,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3941"
NAME="AEN4067"
></A
><H3
><A
@ -1654,7 +1680,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> An XML buffer.</TD
></TR
><TR
><TD
@ -1671,7 +1697,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> An entity table</TD
></TR
></TABLE
><P

View File

@ -115,7 +115,7 @@ SIZE="3"
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN6377"
NAME="AEN6506"
></A
><H2
>Name</H2
@ -123,7 +123,7 @@ NAME="AEN6377"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN6380"
NAME="AEN6509"
></A
><H2
>Synopsis</H2
@ -277,7 +277,7 @@ HREF="gnome-xml-htmlparser.html#HTMLPARSEFILE"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN6418"
NAME="AEN6547"
></A
><H2
>Description</H2
@ -287,131 +287,248 @@ NAME="AEN6418"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN6421"
NAME="AEN6550"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN6423"
NAME="AEN6552"
></A
><H3
><A
NAME="HTMLPARSERCTXT"
></A
>htmlParserCtxt</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlParserCtxt htmlParserCtxt;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6427"
NAME="AEN6557"
></A
><H3
><A
NAME="HTMLPARSERCTXTPTR"
></A
>htmlParserCtxtPtr</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlParserCtxtPtr htmlParserCtxtPtr;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6431"
NAME="AEN6562"
></A
><H3
><A
NAME="HTMLPARSERNODEINFO"
></A
>htmlParserNodeInfo</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlParserNodeInfo htmlParserNodeInfo;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6435"
NAME="AEN6567"
></A
><H3
><A
NAME="HTMLSAXHANDLER"
></A
>htmlSAXHandler</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlSAXHandler htmlSAXHandler;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6439"
NAME="AEN6572"
></A
><H3
><A
NAME="HTMLSAXHANDLERPTR"
></A
>htmlSAXHandlerPtr</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlSAXHandlerPtr htmlSAXHandlerPtr;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6443"
NAME="AEN6577"
></A
><H3
><A
NAME="HTMLPARSERINPUT"
></A
>htmlParserInput</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlParserInput htmlParserInput;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6447"
NAME="AEN6582"
></A
><H3
><A
NAME="HTMLPARSERINPUTPTR"
></A
>htmlParserInputPtr</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlParserInputPtr htmlParserInputPtr;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6451"
NAME="AEN6587"
></A
><H3
><A
NAME="HTMLDOCPTR"
></A
>htmlDocPtr</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlDocPtr htmlDocPtr;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6455"
NAME="AEN6592"
></A
><H3
><A
NAME="HTMLNODEPTR"
></A
>htmlNodePtr</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlNodePtr htmlNodePtr;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6459"
NAME="AEN6597"
></A
><H3
><A
@ -467,7 +584,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> The tag name</TD
></TR
><TR
><TD
@ -482,7 +599,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>the related htmlElemDescPtr or NULL if not found.</TD
></TR
></TABLE
><P
@ -492,7 +609,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6480"
NAME="AEN6618"
></A
><H3
><A
@ -550,7 +667,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the entity name</TD
></TR
><TR
><TD
@ -565,7 +682,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>the associated htmlEntityDescPtr if found, NULL otherwise.</TD
></TR
></TABLE
><P
@ -575,7 +692,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6502"
NAME="AEN6640"
></A
><H3
><A
@ -637,7 +754,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> an HTML parser context</TD
></TR
><TR
><TD
@ -654,7 +771,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> location to store the entity name</TD
></TR
><TR
><TD
@ -669,7 +786,8 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>the associated htmlEntityDescPtr if found, or NULL otherwise,
if non-NULL *str will have to be freed by the caller.</TD
></TR
></TABLE
><P
@ -679,7 +797,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6529"
NAME="AEN6667"
></A
><H3
><A
@ -738,7 +856,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> an HTML parser context</TD
></TR
><TR
><TD
@ -753,7 +871,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>the value parsed (as an int)</TD
></TR
></TABLE
><P
@ -763,7 +881,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6551"
NAME="AEN6689"
></A
><H3
><A
@ -820,7 +938,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> an HTML parser context</TD
></TR
></TABLE
><P
@ -830,7 +948,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6569"
NAME="AEN6707"
></A
><H3
><A
@ -894,7 +1012,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> a pointer to an array of CHAR</TD
></TR
><TR
><TD
@ -911,7 +1029,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> a free form C string describing the HTML document encoding, or NULL</TD
></TR
><TR
><TD
@ -928,7 +1046,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the SAX handler block</TD
></TR
><TR
><TD
@ -945,7 +1063,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> if using SAX, this pointer will be provided on callbacks. </TD
></TR
><TR
><TD
@ -960,7 +1078,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>the resulting document tree</TD
></TR
></TABLE
><P
@ -970,7 +1088,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6603"
NAME="AEN6741"
></A
><H3
><A
@ -1027,7 +1145,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> a pointer to an array of CHAR</TD
></TR
><TR
><TD
@ -1044,7 +1162,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> a free form C string describing the HTML document encoding, or NULL</TD
></TR
><TR
><TD
@ -1059,7 +1177,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>the resulting document tree</TD
></TR
></TABLE
><P
@ -1069,7 +1187,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6628"
NAME="AEN6766"
></A
><H3
><A
@ -1131,7 +1249,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the filename</TD
></TR
><TR
><TD
@ -1148,7 +1266,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> a free form C string describing the HTML document encoding, or NULL</TD
></TR
><TR
><TD
@ -1165,7 +1283,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the SAX handler block</TD
></TR
><TR
><TD
@ -1182,7 +1300,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> if using SAX, this pointer will be provided on callbacks. </TD
></TR
><TR
><TD
@ -1197,7 +1315,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>the resulting document tree</TD
></TR
></TABLE
><P
@ -1207,7 +1325,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6661"
NAME="AEN6799"
></A
><H3
><A
@ -1262,7 +1380,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the filename</TD
></TR
><TR
><TD
@ -1279,7 +1397,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> a free form C string describing the HTML document encoding, or NULL</TD
></TR
><TR
><TD
@ -1294,7 +1412,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>the resulting document tree</TD
></TR
></TABLE
><P

View File

@ -115,7 +115,7 @@ SIZE="3"
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN6690"
NAME="AEN6828"
></A
><H2
>Name</H2
@ -123,7 +123,7 @@ NAME="AEN6690"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN6693"
NAME="AEN6831"
></A
><H2
>Synopsis</H2
@ -188,7 +188,7 @@ HREF="gnome-xml-tree.html#XMLDOCPTR"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN6707"
NAME="AEN6845"
></A
><H2
>Description</H2
@ -198,14 +198,14 @@ NAME="AEN6707"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN6710"
NAME="AEN6848"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN6712"
NAME="AEN6850"
></A
><H3
><A
@ -231,7 +231,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6717"
NAME="AEN6855"
></A
><H3
><A
@ -257,7 +257,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6722"
NAME="AEN6860"
></A
><H3
><A
@ -283,7 +283,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6727"
NAME="AEN6865"
></A
><H3
><A
@ -386,7 +386,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6752"
NAME="AEN6890"
></A
><H3
><A
@ -470,7 +470,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6773"
NAME="AEN6911"
></A
><H3
><A

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -115,7 +115,7 @@ SIZE="3"
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN3967"
NAME="AEN4093"
></A
><H2
>Name</H2
@ -123,7 +123,7 @@ NAME="AEN3967"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN3970"
NAME="AEN4096"
></A
><H2
>Synopsis</H2
@ -377,7 +377,7 @@ HREF="gnome-xml-valid.html#XMLATTRIBUTETABLEPTR"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN4037"
NAME="AEN4163"
></A
><H2
>Description</H2
@ -387,14 +387,14 @@ NAME="AEN4037"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN4040"
NAME="AEN4166"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN4042"
NAME="AEN4168"
></A
><H3
><A
@ -410,7 +410,7 @@ CELLPADDING="6"
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_MIN_NOTATION_TABLE</PRE
>#define XML_MIN_NOTATION_TABLE 32</PRE
></TD
></TR
></TABLE
@ -420,20 +420,33 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4047"
NAME="AEN4173"
></A
><H3
><A
NAME="XMLNOTATIONTABLEPTR"
></A
>xmlNotationTablePtr</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlNotationTable *xmlNotationTablePtr;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4051"
NAME="AEN4178"
></A
><H3
><A
@ -449,7 +462,7 @@ CELLPADDING="6"
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_MIN_ELEMENT_TABLE</PRE
>#define XML_MIN_ELEMENT_TABLE 32</PRE
></TD
></TR
></TABLE
@ -459,20 +472,33 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4056"
NAME="AEN4183"
></A
><H3
><A
NAME="XMLELEMENTTABLEPTR"
></A
>xmlElementTablePtr</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlElementTable *xmlElementTablePtr;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4060"
NAME="AEN4188"
></A
><H3
><A
@ -488,7 +514,7 @@ CELLPADDING="6"
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_MIN_ATTRIBUTE_TABLE</PRE
>#define XML_MIN_ATTRIBUTE_TABLE 32</PRE
></TD
></TR
></TABLE
@ -498,20 +524,33 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4065"
NAME="AEN4193"
></A
><H3
><A
NAME="XMLATTRIBUTETABLEPTR"
></A
>xmlAttributeTablePtr</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlAttributeTable *xmlAttributeTablePtr;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4069"
NAME="AEN4198"
></A
><H3
><A
@ -579,7 +618,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> pointer to the DTD</TD
></TR
><TR
><TD
@ -596,7 +635,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the entity name</TD
></TR
><TR
><TD
@ -613,7 +652,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the public identifier or NULL</TD
></TR
><TR
><TD
@ -630,7 +669,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the system identifier or NULL</TD
></TR
><TR
><TD
@ -645,7 +684,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>NULL if not, othervise the entity</TD
></TR
></TABLE
><P
@ -655,7 +694,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4105"
NAME="AEN4234"
></A
><H3
><A
@ -711,7 +750,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> A notation table</TD
></TR
><TR
><TD
@ -726,7 +765,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>the new xmlNotationTablePtr or NULL in case of error.</TD
></TR
></TABLE
><P
@ -736,7 +775,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4126"
NAME="AEN4255"
></A
><H3
><A
@ -789,7 +828,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> An notation table</TD
></TR
></TABLE
><P
@ -799,7 +838,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4142"
NAME="AEN4271"
></A
><H3
><A
@ -856,7 +895,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the XML buffer output</TD
></TR
><TR
><TD
@ -873,7 +912,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> A notation table</TD
></TR
></TABLE
><P
@ -883,7 +922,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4163"
NAME="AEN4292"
></A
><H3
><A
@ -940,7 +979,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the subelement name or NULL</TD
></TR
><TR
><TD
@ -957,7 +996,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the type of element content decl</TD
></TR
><TR
><TD
@ -972,7 +1011,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>NULL if not, othervise the new element content structure</TD
></TR
></TABLE
><P
@ -982,7 +1021,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4188"
NAME="AEN4317"
></A
><H3
><A
@ -1038,7 +1077,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> An element content pointer.</TD
></TR
><TR
><TD
@ -1053,7 +1092,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>the new xmlElementContentPtr or NULL in case of error.</TD
></TR
></TABLE
><P
@ -1063,7 +1102,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4209"
NAME="AEN4338"
></A
><H3
><A
@ -1116,7 +1155,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the element content tree to free</TD
></TR
></TABLE
><P
@ -1126,7 +1165,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4225"
NAME="AEN4354"
></A
><H3
><A
@ -1191,7 +1230,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> pointer to the DTD</TD
></TR
><TR
><TD
@ -1208,7 +1247,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the entity name</TD
></TR
><TR
><TD
@ -1225,7 +1264,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the element type</TD
></TR
><TR
><TD
@ -1242,7 +1281,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the element content tree or NULL</TD
></TR
><TR
><TD
@ -1257,7 +1296,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>NULL if not, othervise the entity</TD
></TR
></TABLE
><P
@ -1267,7 +1306,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4260"
NAME="AEN4389"
></A
><H3
><A
@ -1323,7 +1362,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> An element table</TD
></TR
><TR
><TD
@ -1338,7 +1377,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>the new xmlElementTablePtr or NULL in case of error.</TD
></TR
></TABLE
><P
@ -1348,7 +1387,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4281"
NAME="AEN4410"
></A
><H3
><A
@ -1401,7 +1440,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> An element table</TD
></TR
></TABLE
><P
@ -1411,7 +1450,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4297"
NAME="AEN4426"
></A
><H3
><A
@ -1468,7 +1507,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the XML buffer output</TD
></TR
><TR
><TD
@ -1485,7 +1524,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> An element table</TD
></TR
></TABLE
><P
@ -1495,7 +1534,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4318"
NAME="AEN4447"
></A
><H3
><A
@ -1551,7 +1590,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the enumeration name or NULL</TD
></TR
><TR
><TD
@ -1566,7 +1605,8 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>the xmlEnumerationPtr just created or NULL in case
of error.</TD
></TR
></TABLE
><P
@ -1576,7 +1616,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4339"
NAME="AEN4468"
></A
><H3
><A
@ -1629,7 +1669,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the tree to free.</TD
></TR
></TABLE
><P
@ -1639,7 +1679,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4355"
NAME="AEN4484"
></A
><H3
><A
@ -1695,7 +1735,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the tree to copy.</TD
></TR
><TR
><TD
@ -1710,7 +1750,8 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>the xmlEnumerationPtr just created or NULL in case
of error.</TD
></TR
></TABLE
><P
@ -1720,7 +1761,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4376"
NAME="AEN4505"
></A
><H3
><A
@ -1794,7 +1835,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> pointer to the DTD</TD
></TR
><TR
><TD
@ -1811,7 +1852,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the element name</TD
></TR
><TR
><TD
@ -1828,7 +1869,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the attribute name</TD
></TR
><TR
><TD
@ -1845,7 +1886,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the attribute type</TD
></TR
><TR
><TD
@ -1862,7 +1903,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the attribute default type</TD
></TR
><TR
><TD
@ -1879,7 +1920,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the attribute default value</TD
></TR
><TR
><TD
@ -1896,7 +1937,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> if it's an enumeration, the associated list</TD
></TR
><TR
><TD
@ -1911,7 +1952,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>NULL if not, othervise the entity</TD
></TR
></TABLE
><P
@ -1921,7 +1962,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4425"
NAME="AEN4554"
></A
><H3
><A
@ -1977,7 +2018,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> An attribute table</TD
></TR
><TR
><TD
@ -1992,7 +2033,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>the new xmlAttributeTablePtr or NULL in case of error.</TD
></TR
></TABLE
><P
@ -2002,7 +2043,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4446"
NAME="AEN4575"
></A
><H3
><A
@ -2055,7 +2096,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> An attribute table</TD
></TR
></TABLE
><P
@ -2065,7 +2106,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4462"
NAME="AEN4591"
></A
><H3
><A
@ -2122,7 +2163,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the XML buffer output</TD
></TR
><TR
><TD
@ -2139,7 +2180,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> An attribute table</TD
></TR
></TABLE
><P

View File

@ -115,7 +115,7 @@ SIZE="3"
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN4488"
NAME="AEN4617"
></A
><H2
>Name</H2
@ -123,7 +123,7 @@ NAME="AEN4488"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN4491"
NAME="AEN4620"
></A
><H2
>Synopsis</H2
@ -157,7 +157,7 @@ HREF="gnome-xml-xml-error.html#XMLPARSERWARNING"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN4496"
NAME="AEN4625"
></A
><H2
>Description</H2
@ -167,14 +167,14 @@ NAME="AEN4496"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN4499"
NAME="AEN4628"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN4501"
NAME="AEN4630"
></A
><H3
><A
@ -227,7 +227,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> an XML parser context</TD
></TR
><TR
><TD
@ -244,7 +244,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the message to display/transmit</TD
></TR
><TR
><TD
@ -261,7 +261,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> extra parameters for the message display</TD
></TR
></TABLE
><P
@ -271,7 +271,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4524"
NAME="AEN4653"
></A
><H3
><A
@ -324,7 +324,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> an XML parser context</TD
></TR
><TR
><TD
@ -341,7 +341,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the message to display/transmit</TD
></TR
><TR
><TD
@ -358,7 +358,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> extra parameters for the message display</TD
></TR
></TABLE
><P

View File

@ -103,7 +103,7 @@ ALIGN="right"
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN6802"
NAME="AEN6940"
></A
><H2
>Name</H2
@ -111,7 +111,7 @@ NAME="AEN6802"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN6805"
NAME="AEN6943"
></A
><H2
>Synopsis</H2
@ -146,10 +146,6 @@ HREF="gnome-xml-xpath.html#XPATH-NUMBER"
HREF="gnome-xml-xpath.html#XPATH-STRING"
>XPATH_STRING</A
>
#define <A
HREF="gnome-xml-xpath.html#XPATH-MARKER"
>XPATH_MARKER</A
>
void (<A
HREF="gnome-xml-xpath.html#XMLXPATHFUNCTION"
>*xmlXPathFunction</A
@ -220,7 +216,7 @@ HREF="XMLXPATHCONTEXTPTR"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN6831"
NAME="AEN6968"
></A
><H2
>Description</H2
@ -230,14 +226,14 @@ NAME="AEN6831"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN6834"
NAME="AEN6971"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN6836"
NAME="AEN6973"
></A
><H3
><A
@ -253,7 +249,7 @@ CELLPADDING="6"
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XPATH_UNDEFINED</PRE
>#define XPATH_UNDEFINED 0</PRE
></TD
></TR
></TABLE
@ -263,7 +259,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6841"
NAME="AEN6978"
></A
><H3
><A
@ -279,7 +275,7 @@ CELLPADDING="6"
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XPATH_NODESET</PRE
>#define XPATH_NODESET 1</PRE
></TD
></TR
></TABLE
@ -289,7 +285,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6846"
NAME="AEN6983"
></A
><H3
><A
@ -305,7 +301,7 @@ CELLPADDING="6"
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XPATH_BOOLEAN</PRE
>#define XPATH_BOOLEAN 2</PRE
></TD
></TR
></TABLE
@ -315,7 +311,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6851"
NAME="AEN6988"
></A
><H3
><A
@ -331,7 +327,7 @@ CELLPADDING="6"
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XPATH_NUMBER</PRE
>#define XPATH_NUMBER 3</PRE
></TD
></TR
></TABLE
@ -341,7 +337,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6856"
NAME="AEN6993"
></A
><H3
><A
@ -357,7 +353,7 @@ CELLPADDING="6"
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XPATH_STRING</PRE
>#define XPATH_STRING 4</PRE
></TD
></TR
></TABLE
@ -367,33 +363,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6861"
></A
><H3
><A
NAME="XPATH-MARKER"
></A
>XPATH_MARKER</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XPATH_MARKER</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6866"
NAME="AEN6998"
></A
><H3
><A
@ -472,7 +442,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6885"
NAME="AEN7017"
></A
><H3
><A
@ -531,7 +501,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the XML document</TD
></TR
><TR
><TD
@ -548,7 +518,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the variable list</TD
></TR
><TR
><TD
@ -565,7 +535,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the function list</TD
></TR
><TR
><TD
@ -582,7 +552,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the namespace list</TD
></TR
><TR
><TD
@ -597,7 +567,7 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>the xmlXPathContext just allocated.</TD
></TR
></TABLE
><P
@ -607,7 +577,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6918"
NAME="AEN7050"
></A
><H3
><A
@ -660,7 +630,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the context to free</TD
></TR
></TABLE
><P
@ -670,7 +640,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6934"
NAME="AEN7066"
></A
><H3
><A
@ -730,7 +700,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the XPath expression</TD
></TR
><TR
><TD
@ -747,7 +717,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the XPath context</TD
></TR
><TR
><TD
@ -762,7 +732,8 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>the xmlXPathObjectPtr resulting from the eveluation or NULL.
the caller has to free the object.</TD
></TR
></TABLE
><P
@ -772,7 +743,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6960"
NAME="AEN7092"
></A
><H3
><A
@ -825,7 +796,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the object to free</TD
></TR
></TABLE
><P
@ -835,7 +806,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN6976"
NAME="AEN7108"
></A
><H3
><A
@ -895,7 +866,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the XPath expression</TD
></TR
><TR
><TD
@ -912,7 +883,7 @@ CLASS="PARAMETER"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
> the XPath context</TD
></TR
><TR
><TD
@ -927,7 +898,8 @@ CLASS="EMPHASIS"
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
>the xmlXPathObjectPtr resulting from the eveluation or NULL.
the caller has to free the object.</TD
></TR
></TABLE
><P

View File

@ -39,6 +39,8 @@
<ANCHOR id ="XMLDEFAULTSAXLOCATOR" href="gnome-xml/gnome-xml-parser.html#XMLDEFAULTSAXLOCATOR">
<ANCHOR id ="XMLDEFAULTSAXHANDLER" href="gnome-xml/gnome-xml-parser.html#XMLDEFAULTSAXHANDLER">
<ANCHOR id ="HTMLDEFAULTSAXHANDLER" href="gnome-xml/gnome-xml-parser.html#HTMLDEFAULTSAXHANDLER">
<ANCHOR id ="XMLPARSERINPUTREAD" href="gnome-xml/gnome-xml-parser.html#XMLPARSERINPUTREAD">
<ANCHOR id ="XMLPARSERINPUTGROW" href="gnome-xml/gnome-xml-parser.html#XMLPARSERINPUTGROW">
<ANCHOR id ="XMLSTRDUP" href="gnome-xml/gnome-xml-parser.html#XMLSTRDUP">
<ANCHOR id ="XMLSTRNDUP" href="gnome-xml/gnome-xml-parser.html#XMLSTRNDUP">
<ANCHOR id ="XMLSTRSUB" href="gnome-xml/gnome-xml-parser.html#XMLSTRSUB">
@ -104,6 +106,8 @@
<ANCHOR id ="XMLBUFFERADD" href="gnome-xml/gnome-xml-tree.html#XMLBUFFERADD">
<ANCHOR id ="XMLBUFFERCAT" href="gnome-xml/gnome-xml-tree.html#XMLBUFFERCAT">
<ANCHOR id ="XMLBUFFERCCAT" href="gnome-xml/gnome-xml-tree.html#XMLBUFFERCCAT">
<ANCHOR id ="XMLBUFFERSHRINK" href="gnome-xml/gnome-xml-tree.html#XMLBUFFERSHRINK">
<ANCHOR id ="XMLBUFFEREMPTY" href="gnome-xml/gnome-xml-tree.html#XMLBUFFEREMPTY">
<ANCHOR id ="XMLCREATEINTSUBSET" href="gnome-xml/gnome-xml-tree.html#XMLCREATEINTSUBSET">
<ANCHOR id ="XMLNEWDTD" href="gnome-xml/gnome-xml-tree.html#XMLNEWDTD">
<ANCHOR id ="XMLFREEDTD" href="gnome-xml/gnome-xml-tree.html#XMLFREEDTD">
@ -326,7 +330,6 @@
<ANCHOR id ="XPATH-BOOLEAN" href="gnome-xml/gnome-xml-xpath.html#XPATH-BOOLEAN">
<ANCHOR id ="XPATH-NUMBER" href="gnome-xml/gnome-xml-xpath.html#XPATH-NUMBER">
<ANCHOR id ="XPATH-STRING" href="gnome-xml/gnome-xml-xpath.html#XPATH-STRING">
<ANCHOR id ="XPATH-MARKER" href="gnome-xml/gnome-xml-xpath.html#XPATH-MARKER">
<ANCHOR id ="XMLXPATHFUNCTION" href="gnome-xml/gnome-xml-xpath.html#XMLXPATHFUNCTION">
<ANCHOR id ="XMLXPATHNEWCONTEXT" href="gnome-xml/gnome-xml-xpath.html#XMLXPATHNEWCONTEXT">
<ANCHOR id ="XMLXPATHFREECONTEXT" href="gnome-xml/gnome-xml-xpath.html#XMLXPATHFREECONTEXT">

View File

@ -445,6 +445,7 @@ xmlRegisterCharEncodingHandler(xmlCharEncodingHandlerPtr handler) {
xmlCharEncodingHandlerPtr
xmlGetCharEncodingHandler(xmlCharEncoding enc) {
if (handlers == NULL) xmlInitCharEncodingHandlers();
/* TODO !!!!!!! */
return(NULL);
}

View File

@ -31,6 +31,7 @@ typedef struct xmlParserInput {
const CHAR *cur; /* Current char being parsed */
int line; /* Current line */
int col; /* Current column */
int consumed; /* How many CHARs were already consumed */
xmlParserInputDeallocate free; /* function to deallocate the base */
} xmlParserInput;
typedef xmlParserInput *xmlParserInputPtr;
@ -185,6 +186,13 @@ extern xmlSAXHandler htmlDefaultSAXHandler;
#include "entities.h"
#include "xml-error.h"
/*
* Input functions
*/
int xmlParserInputRead(xmlParserInputPtr in, int len);
int xmlParserInputGrow(xmlParserInputPtr in, int len);
/*
* CHAR handling
*/

View File

@ -269,6 +269,8 @@ int xmlBufferDump(FILE *file, xmlBufferPtr buf);
void xmlBufferAdd(xmlBufferPtr buf, const CHAR *str, int len);
void xmlBufferCat(xmlBufferPtr buf, const CHAR *str);
void xmlBufferCCat(xmlBufferPtr buf, const char *str);
int xmlBufferShrink(xmlBufferPtr buf, int len);
void xmlBufferEmpty(xmlBufferPtr buf);
/*
* Creating/freeing new structures

View File

@ -11,6 +11,7 @@
#include <stdio.h>
#include "tree.h"
#include "encoding.h"
#ifdef __cplusplus
extern "C" {
@ -19,13 +20,10 @@ extern "C" {
typedef struct xmlParserInputBuffer {
/* Inputs */
FILE *file; /* Input on file handler */
void* gzfile; /* Input on a compressed stream */
int fd; /* Input on a file descriptor */
/**********
#ifdef HAVE_ZLIB_H
gzFile gzfile; Input on a compressed stream
#endif
*/
xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
xmlBufferPtr buffer; /* Local buffer encoded in UTF-8 */
@ -33,6 +31,21 @@ typedef struct xmlParserInputBuffer {
typedef xmlParserInputBuffer *xmlParserInputBufferPtr;
/*
* Interfaces
*/
xmlParserInputBufferPtr xmlParserInputBufferCreateFilename(const char *filename,
xmlCharEncoding enc);
xmlParserInputBufferPtr xmlParserInputBufferCreateFile(FILE *file,
xmlCharEncoding enc);
xmlParserInputBufferPtr xmlParserInputBufferCreateFd(int fd, xmlCharEncoding enc);
int xmlParserInputBufferRead(xmlParserInputBufferPtr in, int len);
int xmlParserInputBufferGrow(xmlParserInputBufferPtr in, int len);
void xmlFreeParserInputBuffer(xmlParserInputBufferPtr in);
#ifdef __cplusplus
}
#endif

View File

@ -37,13 +37,12 @@ typedef struct xmlNodeSet {
#define XPATH_BOOLEAN 2
#define XPATH_NUMBER 3
#define XPATH_STRING 4
#define XPATH_MARKER 5 /* used for func call checks */
typedef struct xmlXPathObject {
int type;
xmlNodeSetPtr nodesetval;
int boolval;
float floatval;
double floatval;
CHAR *stringval;
} xmlXPathObject, *xmlXPathObjectPtr;

655
parser.c

File diff suppressed because it is too large Load Diff

View File

@ -31,6 +31,7 @@ typedef struct xmlParserInput {
const CHAR *cur; /* Current char being parsed */
int line; /* Current line */
int col; /* Current column */
int consumed; /* How many CHARs were already consumed */
xmlParserInputDeallocate free; /* function to deallocate the base */
} xmlParserInput;
typedef xmlParserInput *xmlParserInputPtr;
@ -185,6 +186,13 @@ extern xmlSAXHandler htmlDefaultSAXHandler;
#include "entities.h"
#include "xml-error.h"
/*
* Input functions
*/
int xmlParserInputRead(xmlParserInputPtr in, int len);
int xmlParserInputGrow(xmlParserInputPtr in, int len);
/*
* CHAR handling
*/

View File

@ -22,4 +22,6 @@ Set contains 1 nodes:
1 TEXT
content=bla bla bla ...
Object is a Node Set :
Set contains 0 nodes:
Set contains 1 nodes:
1 TEXT
content=...

View File

@ -388,7 +388,12 @@ endElementDebug(xmlParserCtxtPtr ctxt, const CHAR *name)
void
charactersDebug(xmlParserCtxtPtr ctxt, const CHAR *ch, int len)
{
fprintf(stdout, "SAX.characters(%.30s, %d)\n", (char *) ch, len);
int i;
fprintf(stdout, "SAX.characters(");
for (i = 0;(i < len) && (i < 30);i++)
fprintf(stdout, "%c", ch[i]);
fprintf(stdout, ", %d)\n", len);
}
/**

View File

@ -125,6 +125,7 @@ void testXPath(const char *str) {
res = xmlXPathEval(str, ctxt);
xmlXPAthDebugDumpObject(stdout, res);
xmlXPathFreeObject(res);
xmlXPathFreeContext(ctxt);
}
void testXPathFile(const char *filename) {

View File

@ -34,6 +34,7 @@ static int debug = 0;
static int copy = 0;
static int recovery = 0;
static int noent = 0;
static int noout = 0;
/*
* Note: there is a couple of errors introduced on purpose.
@ -96,7 +97,8 @@ int treeTest(void) {
/*
* print it.
*/
xmlDocDump(stdout, doc);
if (noout == 0)
xmlDocDump(stdout, doc);
/*
* free it.
@ -128,10 +130,12 @@ void parseAndPrintFile(char *filename) {
/*
* print it.
*/
if (!debug)
xmlDocDump(stdout, doc);
else
xmlDebugDumpDocument(stdout, doc);
if (noout == 0) {
if (!debug)
xmlDocDump(stdout, doc);
else
xmlDebugDumpDocument(stdout, doc);
}
/*
* free it.
@ -188,6 +192,9 @@ int main(int argc, char **argv) {
else if ((!strcmp(argv[i], "-noent")) ||
(!strcmp(argv[i], "--noent")))
noent++;
else if ((!strcmp(argv[i], "-noout")) ||
(!strcmp(argv[i], "--noout")))
noout++;
}
if (noent != 0) xmlSubstituteEntitiesDefault(1);
for (i = 1; i < argc ; i++) {
@ -197,13 +204,14 @@ int main(int argc, char **argv) {
}
}
if (files == 0) {
printf("Usage : %s [--debug] [--copy] [--recover] [--noent] XMLfiles ...\n",
printf("Usage : %s [--debug] [--copy] [--recover] [--noent] [--noout] XMLfiles ...\n",
argv[0]);
printf("\tParse the XML files and output the result of the parsing\n");
printf("\t--debug : dump a debug tree of the in-memory document\n");
printf("\t--copy : used to test the internal copy implementation\n");
printf("\t--recover : output what is parsable on broken XmL documents\n");
printf("\t--noent : substitute entity references by their value\n");
printf("\t--noout : don't output the result\n");
}
return(0);

65
tree.c
View File

@ -417,7 +417,7 @@ xmlFreeDoc(xmlDocPtr cur) {
#endif
return;
}
free((char *) cur->version);
if (cur->version != NULL) free((char *) cur->version);
if (cur->name != NULL) free((char *) cur->name);
if (cur->encoding != NULL) free((char *) cur->encoding);
if (cur->root != NULL) xmlFreeNode(cur->root);
@ -2165,6 +2165,39 @@ xmlBufferFree(xmlBufferPtr buf) {
free(buf);
}
/**
* xmlBufferEmpty:
* @buf: the buffer
*
* empty a buffer.
*/
void
xmlBufferEmpty(xmlBufferPtr buf) {
buf->use = 0;
memset(buf->content, -1, buf->size);/* just for debug */
}
/**
* xmlBufferShrink:
* @buf: the buffer to dump
* @len: the number of CHAR to remove
*
* Remove the beginning of an XML buffer.
*
* Returns the number of CHAR removed, or -1 in case of failure.
*/
int
xmlBufferShrink(xmlBufferPtr buf, int len) {
if (len == 0) return(0);
if (len > buf->use) return(-1);
buf->use -= len;
memmove(buf->content, &buf->content[len], buf->use * sizeof(CHAR));
buf->content[buf->use] = 0;
return(len);
}
/**
* xmlBufferDump:
* @file: the file output
@ -2200,26 +2233,32 @@ xmlBufferDump(FILE *file, xmlBufferPtr buf) {
*/
void
xmlBufferAdd(xmlBufferPtr buf, const CHAR *str, int len) {
const CHAR *cur;
int l;
if (str == NULL) {
fprintf(stderr, "xmlBufferAdd: str == NULL\n");
return;
}
for (cur = str;(len > 0) && (*cur != 0);cur++, len--) {
if (buf->use + 10 >= buf->size) {
CHAR *rebuf;
l = xmlStrlen(str);
if (l < len) len = l;
if (len <= 0) return;
buf->size *= 2;
rebuf = (CHAR *) realloc(buf->content, buf->size * sizeof(CHAR));
if (rebuf == NULL) {
fprintf(stderr, "xmlBufferAdd : out of memory!\n");
return;
}
buf->content = rebuf;
if (buf->use + len + 10 >= buf->size) {
CHAR *rebuf;
buf->size *= 2;
if (buf->use + len + 10 > buf->size)
buf->size = buf->use + len + 10;
rebuf = (CHAR *) realloc(buf->content, buf->size * sizeof(CHAR));
if (rebuf == NULL) {
fprintf(stderr, "xmlBufferAdd : out of memory!\n");
return;
}
buf->content[buf->use++] = *cur;
buf->content = rebuf;
}
memmove(&buf->content[buf->use], str, len);
buf->use += len;
buf->content[buf->use] = 0;
}
/**

2
tree.h
View File

@ -269,6 +269,8 @@ int xmlBufferDump(FILE *file, xmlBufferPtr buf);
void xmlBufferAdd(xmlBufferPtr buf, const CHAR *str, int len);
void xmlBufferCat(xmlBufferPtr buf, const CHAR *str);
void xmlBufferCCat(xmlBufferPtr buf, const char *str);
int xmlBufferShrink(xmlBufferPtr buf, int len);
void xmlBufferEmpty(xmlBufferPtr buf);
/*
* Creating/freeing new structures

321
xmlIO.c Normal file
View File

@ -0,0 +1,321 @@
/*
* xmlIO.c : implementation of the I/O interfaces used by the parser
*
* See Copyright for the status of this software.
*
* Daniel.Veillard@w3.org
*/
#include "config.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <malloc.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_ZLIB_H
#include <zlib.h>
#endif
#include "xmlIO.h"
/* #define DEBUG_INPUT */
/* #define VERBOSE_FAILURE */
#ifdef DEBUG_INPUT
#define MINLEN 40
#else
#define MINLEN 4000
#endif
/**
* xmlAllocParserInputBuffer:
* @enc: the charset encoding if known
*
* Create a buffered parser input for progressive parsing
*
* Returns the new parser input or NULL
*/
xmlParserInputBufferPtr
xmlAllocParserInputBuffer(xmlCharEncoding enc) {
xmlParserInputBufferPtr ret;
ret = (xmlParserInputBufferPtr) malloc(sizeof(xmlParserInputBuffer));
if (ret == NULL) {
fprintf(stderr, "xmlAllocParserInputBuffer : out of memory!\n");
return(NULL);
}
memset(ret, 0, (size_t) sizeof(xmlParserInputBuffer));
ret->buffer = xmlBufferCreate();
ret->encoder = xmlGetCharEncodingHandler(enc);
ret->fd = -1;
return(ret);
}
/**
* xmlFreeParserInputBuffer:
* @in: a buffered parser input
*
* Free up the memory used by a buffered parser input
*/
void
xmlFreeParserInputBuffer(xmlParserInputBufferPtr in) {
if (in->buffer != NULL) {
xmlBufferFree(in->buffer);
in->buffer = NULL;
}
#ifdef HAVE_ZLIB_H
if (in->gzfile != NULL)
gzclose(in->gzfile);
#endif
if (in->fd >= 0)
close(in->fd);
memset(in, 0xbe, (size_t) sizeof(xmlParserInputBuffer));
free(in);
}
/**
* xmlParserInputBufferCreateFilename:
* @filename: a C string containing the filename
* @enc: the charset encoding if known
*
* Create a buffered parser input for the progressive parsing of a file
* If filename is "-' then we use stdin as the input.
* Automatic support for ZLIB/Compress compressed document is provided
* by default if found at compile-time.
*
* Returns the new parser input or NULL
*/
xmlParserInputBufferPtr
xmlParserInputBufferCreateFilename(const char *filename, xmlCharEncoding enc) {
xmlParserInputBufferPtr ret;
#ifdef HAVE_ZLIB_H
gzFile input;
#else
int input = -1;
#endif
if (filename == NULL) return(NULL);
if (!strcmp(filename, "-")) {
#ifdef HAVE_ZLIB_H
input = gzdopen (fileno(stdin), "r");
if (input == NULL) {
#ifdef VERBOSE_FAILURE
fprintf (stderr, "Cannot read from stdin\n");
perror ("gzdopen failed");
#endif
return(NULL);
}
#else
#ifdef WIN32
input = -1;
#else
input = fileno(stdin);
#endif
if (input < 0) {
#ifdef VERBOSE_FAILURE
fprintf (stderr, "Cannot read from stdin\n");
perror ("open failed");
#endif
return(NULL);
}
#endif
} else {
#ifdef HAVE_ZLIB_H
input = gzopen (filename, "r");
if (input == NULL) {
#ifdef VERBOSE_FAILURE
fprintf (stderr, "Cannot read file %s :\n", filename);
perror ("gzopen failed");
#endif
return(NULL);
}
#else
#ifdef WIN32
input = _open (filename, O_RDONLY | _O_BINARY);
#else
input = open (filename, O_RDONLY);
#endif
if (input < 0) {
#ifdef VERBOSE_FAILURE
fprintf (stderr, "Cannot read file %s :\n", filename);
perror ("open failed");
#endif
return(NULL);
}
#endif
}
/*
* TODO : get the 4 first bytes and
* if enc == XML_CHAR_ENCODING_NONE
* plug some encoding conversion routines here. !!!
* enc = xmlDetectCharEncoding(buffer);
*/
ret = xmlAllocParserInputBuffer(enc);
if (ret != NULL) {
#ifdef HAVE_ZLIB_H
ret->gzfile = input;
#else
ret->fd = input;
#endif
}
xmlParserInputBufferRead(ret, 4);
return(ret);
}
/**
* xmlParserInputBufferCreateFile:
* @file: a FILE*
* @enc: the charset encoding if known
*
* Create a buffered parser input for the progressive parsing of a FILE *
* buffered C I/O
*
* Returns the new parser input or NULL
*/
xmlParserInputBufferPtr
xmlParserInputBufferCreateFile(FILE *file, xmlCharEncoding enc) {
xmlParserInputBufferPtr ret;
if (file == NULL) return(NULL);
ret = xmlAllocParserInputBuffer(enc);
if (ret != NULL)
ret->file = file;
return(ret);
}
/**
* xmlParserInputBufferCreateFd:
* @fd: a file descriptor number
* @enc: the charset encoding if known
*
* Create a buffered parser input for the progressive parsing for the input
* from a file descriptor
*
* Returns the new parser input or NULL
*/
xmlParserInputBufferPtr
xmlParserInputBufferCreateFd(int fd, xmlCharEncoding enc) {
xmlParserInputBufferPtr ret;
if (fd < 0) return(NULL);
ret = xmlAllocParserInputBuffer(enc);
if (ret != NULL)
ret->fd = fd;
return(ret);
}
/**
* xmlParserInputBufferGrow:
* @in: a buffered parser input
* @len: indicative value of the amount of chars to read
*
* Grow up the content of the input buffer, the old data are preserved
* This routine handle the I18N transcoding to internal UTF-8
* TODO: one should be able to remove one copy
*
* Returns the number of chars read and stored in the buffer, or -1
* in case of error.
*/
int
xmlParserInputBufferGrow(xmlParserInputBufferPtr in, int len) {
char *buffer = NULL;
#ifdef HAVE_ZLIB_H
gzFile input = (gzFile) in->gzfile;
#endif
int res = 0;
int nbchars = 0;
int buffree;
if ((len <= MINLEN) && (len != 4))
len = MINLEN;
buffree = in->buffer->size - in->buffer->use;
if (buffree <= 0) {
fprintf(stderr, "xmlParserInputBufferGrow : buffer full !\n");
return(0);
}
if (len > buffree)
len = buffree;
buffer = malloc((len + 1) * sizeof(char));
if (buffer == NULL) {
fprintf(stderr, "xmlParserInputBufferGrow : out of memory !\n");
return(-1);
}
if (in->file != NULL) {
res = fread(&buffer[0], 1, len, in->file);
#ifdef HAVE_ZLIB_H
} else if (in->gzfile != NULL) {
res = gzread(input, &buffer[0], len);
#endif
} else if (in->fd >= 0) {
res = read(in->fd, &buffer[0], len);
} else {
fprintf(stderr, "xmlParserInputBufferGrow : no input !\n");
free(buffer);
return(-1);
}
if (res == 0) {
free(buffer);
return(0);
}
if (res < 0) {
perror ("read error");
free(buffer);
return(-1);
}
if (in->encoder != NULL) {
CHAR *buf;
buf = (CHAR *) malloc((res + 1) * 2 * sizeof(CHAR));
if (buf == NULL) {
fprintf(stderr, "xmlParserInputBufferGrow : out of memory !\n");
free(buffer);
return(-1);
}
nbchars = in->encoder->input(buf, (res + 1) * 2 * sizeof(CHAR),
buffer, res);
buf[nbchars] = 0;
xmlBufferAdd(in->buffer, (CHAR *) buf, nbchars);
free(buf);
} else {
nbchars = res;
buffer[nbchars] = 0;
xmlBufferAdd(in->buffer, (CHAR *) buffer, nbchars);
}
#ifdef DEBUG_INPUT
fprintf(stderr, "I/O: read %d chars, buffer %d/%d\n",
nbchars, in->buffer->use, in->buffer->size);
#endif
free(buffer);
return(nbchars);
}
/**
* xmlParserInputBufferRead:
* @in: a buffered parser input
* @len: indicative value of the amount of chars to read
*
* Refresh the content of the input buffer, the old data are considered
* consumed
* This routine handle the I18N transcoding to internal UTF-8
*
* Returns the number of chars read and stored in the buffer, or -1
* in case of error.
*/
int
xmlParserInputBufferRead(xmlParserInputBufferPtr in, int len) {
/* xmlBufferEmpty(in->buffer); */
return(xmlParserInputBufferGrow(in, len));
}

23
xmlIO.h
View File

@ -11,6 +11,7 @@
#include <stdio.h>
#include "tree.h"
#include "encoding.h"
#ifdef __cplusplus
extern "C" {
@ -19,13 +20,10 @@ extern "C" {
typedef struct xmlParserInputBuffer {
/* Inputs */
FILE *file; /* Input on file handler */
void* gzfile; /* Input on a compressed stream */
int fd; /* Input on a file descriptor */
/**********
#ifdef HAVE_ZLIB_H
gzFile gzfile; Input on a compressed stream
#endif
*/
xmlCharEncodingHandlerPtr encoder; /* I18N conversions to UTF-8 */
xmlBufferPtr buffer; /* Local buffer encoded in UTF-8 */
@ -33,6 +31,21 @@ typedef struct xmlParserInputBuffer {
typedef xmlParserInputBuffer *xmlParserInputBufferPtr;
/*
* Interfaces
*/
xmlParserInputBufferPtr xmlParserInputBufferCreateFilename(const char *filename,
xmlCharEncoding enc);
xmlParserInputBufferPtr xmlParserInputBufferCreateFile(FILE *file,
xmlCharEncoding enc);
xmlParserInputBufferPtr xmlParserInputBufferCreateFd(int fd, xmlCharEncoding enc);
int xmlParserInputBufferRead(xmlParserInputBufferPtr in, int len);
int xmlParserInputBufferGrow(xmlParserInputBufferPtr in, int len);
void xmlFreeParserInputBuffer(xmlParserInputBufferPtr in);
#ifdef __cplusplus
}
#endif

196
xpath.c
View File

@ -25,11 +25,34 @@
* actual root.
*/
/*
* That sucks but I couldn't find NAN on a PeeCee Linux Glibc 2.1
* Setup stuff for floating point
*/
#ifndef NAN
#define NAN 12345679
#endif
double xmlXPathNAN = 0;
double xmlXPathPINF = 1;
double xmlXPathMINF = -1;
/**
* xmlXPathInit:
*
* Initialize the XPath environment
*/
void
xmlXPathInit(void) {
static int initialized = 0;
if (initialized) return;
xmlXPathNAN = 0;
xmlXPathNAN /= 0;
xmlXPathPINF = 1;
xmlXPathPINF /= 0;
xmlXPathMINF = -1;
xmlXPathMINF /= 0;
initialized = 1;
}
/* #define DEBUG */
/* #define DEBUG_STEP */
@ -45,7 +68,7 @@ FILE *xmlXPathDebug = NULL;
fprintf(xmlXPathDebug, "Internal error at %s:%d\n", \
__FILE__, __LINE__);
float xmlXPathStringEvalNumber(const CHAR *str);
double xmlXPathStringEvalNumber(const CHAR *str);
/************************************************************************
* *
@ -167,7 +190,7 @@ const char *xmlXPathErrorMessages[] = {
* @line: the line number
* @no: the error number
*
* Create a new xmlNodeSetPtr of type float and of value @val
* Create a new xmlNodeSetPtr of type double and of value @val
*
* Returns the newly created object.
*/
@ -231,7 +254,7 @@ xmlXPatherror(xmlXPathParserContextPtr ctxt, const char *file,
* xmlXPathNodeSetCreate:
* @val: an initial xmlNodePtr, or NULL
*
* Create a new xmlNodeSetPtr of type float and of value @val
* Create a new xmlNodeSetPtr of type double and of value @val
*
* Returns the newly created object.
*/
@ -244,7 +267,7 @@ xmlXPathNodeSetCreate(xmlNodePtr val) {
fprintf(xmlXPathDebug, "xmlXPathNewNodeSet: out of memory\n");
return(NULL);
}
memset(ret, 0 , sizeof(xmlNodeSet));
memset(ret, 0 , (size_t) sizeof(xmlNodeSet));
if (val != NULL) {
ret->nodeTab = (xmlNodePtr *) malloc(XML_NODESET_DEFAULT *
sizeof(xmlNodePtr));
@ -253,7 +276,7 @@ xmlXPathNodeSetCreate(xmlNodePtr val) {
return(NULL);
}
memset(ret->nodeTab, 0 ,
XML_NODESET_DEFAULT * sizeof(xmlNodePtr));
XML_NODESET_DEFAULT * (size_t) sizeof(xmlNodePtr));
ret->nodeMax = XML_NODESET_DEFAULT;
ret->nodeTab[ret->nodeNr++] = val;
}
@ -290,7 +313,7 @@ xmlXPathNodeSetAdd(xmlNodeSetPtr cur, xmlNodePtr val) {
return;
}
memset(cur->nodeTab, 0 ,
XML_NODESET_DEFAULT * sizeof(xmlNodePtr));
XML_NODESET_DEFAULT * (size_t) sizeof(xmlNodePtr));
cur->nodeMax = XML_NODESET_DEFAULT;
} else if (cur->nodeNr == cur->nodeMax) {
xmlNodePtr *temp;
@ -395,12 +418,12 @@ xmlXPathFreeNodeSet(xmlNodeSetPtr obj) {
if (obj == NULL) return;
if (obj->nodeTab != NULL) {
#ifdef DEBUG
memset(obj->nodeTab, 0xB , sizeof(xmlNodePtr) * obj->nodeMax);
memset(obj->nodeTab, 0xB , (size_t) sizeof(xmlNodePtr) * obj->nodeMax);
#endif
free(obj->nodeTab);
}
#ifdef DEBUG
memset(obj, 0xB , sizeof(xmlNodeSet));
memset(obj, 0xB , (size_t) sizeof(xmlNodeSet));
#endif
free(obj);
}
@ -480,14 +503,14 @@ xmlXPathVariablelookup(xmlXPathParserContextPtr ctxt,
/**
* xmlXPathNewFloat:
* @val: the float value
* @val: the double value
*
* Create a new xmlXPathObjectPtr of type float and of value @val
* Create a new xmlXPathObjectPtr of type double and of value @val
*
* Returns the newly created object.
*/
xmlXPathObjectPtr
xmlXPathNewFloat(float val) {
xmlXPathNewFloat(double val) {
xmlXPathObjectPtr ret;
ret = (xmlXPathObjectPtr) malloc(sizeof(xmlXPathObject));
@ -495,7 +518,7 @@ xmlXPathNewFloat(float val) {
fprintf(xmlXPathDebug, "xmlXPathNewFloat: out of memory\n");
return(NULL);
}
memset(ret, 0 , sizeof(xmlXPathObject));
memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
ret->type = XPATH_NUMBER;
ret->floatval = val;
return(ret);
@ -518,33 +541,12 @@ xmlXPathNewBoolean(int val) {
fprintf(xmlXPathDebug, "xmlXPathNewFloat: out of memory\n");
return(NULL);
}
memset(ret, 0 , sizeof(xmlXPathObject));
memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
ret->type = XPATH_BOOLEAN;
ret->boolval = (val != 0);
return(ret);
}
/**
* xmlXPathNewMarker:
*
* Create a new xmlXPathObjectPtr of a special marker type for functions
*
* Returns the newly created object.
*/
xmlXPathObjectPtr
xmlXPathNewMarker(void) {
xmlXPathObjectPtr ret;
ret = (xmlXPathObjectPtr) malloc(sizeof(xmlXPathObject));
if (ret == NULL) {
fprintf(xmlXPathDebug, "xmlXPathNewFloat: out of memory\n");
return(NULL);
}
memset(ret, 0 , sizeof(xmlXPathObject));
ret->type = XPATH_MARKER;
return(ret);
}
/**
* xmlXPathNewBoolean:
* @val: the CHAR * value
@ -562,7 +564,7 @@ xmlXPathNewString(const CHAR *val) {
fprintf(xmlXPathDebug, "xmlXPathNewFloat: out of memory\n");
return(NULL);
}
memset(ret, 0 , sizeof(xmlXPathObject));
memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
ret->type = XPATH_STRING;
ret->stringval = xmlStrdup(val);
return(ret);
@ -586,7 +588,7 @@ xmlXPathNewNodeSet(xmlNodePtr val) {
fprintf(xmlXPathDebug, "xmlXPathNewFloat: out of memory\n");
return(NULL);
}
memset(ret, 0 , sizeof(xmlXPathObject));
memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
ret->type = XPATH_NODESET;
ret->nodesetval = xmlXPathNodeSetCreate(val);
return(ret);
@ -610,7 +612,7 @@ xmlXPathNewNodeSetList(xmlNodeSetPtr val) {
fprintf(xmlXPathDebug, "xmlXPathNewFloat: out of memory\n");
return(NULL);
}
memset(ret, 0 , sizeof(xmlXPathObject));
memset(ret, 0 , (size_t) sizeof(xmlXPathObject));
ret->type = XPATH_NODESET;
ret->nodesetval = val;
return(ret);
@ -630,7 +632,7 @@ xmlXPathFreeObject(xmlXPathObjectPtr obj) {
if (obj->stringval != NULL)
free(obj->stringval);
#ifdef DEBUG
memset(obj, 0xB , sizeof(xmlXPathObject));
memset(obj, 0xB , (size_t) sizeof(xmlXPathObject));
#endif
free(obj);
}
@ -662,7 +664,7 @@ xmlXPathNewContext(xmlDocPtr doc, void *variables, void *functions,
fprintf(xmlXPathDebug, "xmlXPathNewContext: out of memory\n");
return(NULL);
}
memset(ret, 0 , sizeof(xmlXPathContext));
memset(ret, 0 , (size_t) sizeof(xmlXPathContext));
ret->doc = doc;
ret->variables = variables;
ret->functions = functions;
@ -679,7 +681,7 @@ xmlXPathNewContext(xmlDocPtr doc, void *variables, void *functions,
void
xmlXPathFreeContext(xmlXPathContextPtr ctxt) {
#ifdef DEBUG
memset(ctxt, 0xB , sizeof(xmlXPathContext));
memset(ctxt, 0xB , (size_t) sizeof(xmlXPathContext));
#endif
free(ctxt);
}
@ -731,7 +733,7 @@ xmlXPathNewParserContext(const CHAR *str, xmlXPathContextPtr ctxt) {
fprintf(xmlXPathDebug, "xmlXPathNewParserContext: out of memory\n");
return(NULL);
}
memset(ret, 0 , sizeof(xmlXPathParserContext));
memset(ret, 0 , (size_t) sizeof(xmlXPathParserContext));
ret->cur = ret->base = str;
ret->context = ctxt;
@ -754,12 +756,12 @@ void
xmlXPathFreeParserContext(xmlXPathParserContextPtr ctxt) {
if (ctxt->valueTab != NULL) {
#ifdef DEBUG
memset(ctxt->valueTab, 0xB , 10 * sizeof(xmlXPathObjectPtr));
memset(ctxt->valueTab, 0xB , 10 * (size_t) sizeof(xmlXPathObjectPtr));
#endif
free(ctxt->valueTab);
}
#ifdef DEBUG
memset(ctxt, 0xB , sizeof(xmlXPathParserContext));
memset(ctxt, 0xB , (size_t) sizeof(xmlXPathParserContext));
#endif
free(ctxt);
}
@ -794,7 +796,7 @@ void xmlXPathNumberFunction(xmlXPathParserContextPtr ctxt, int nargs);
} \
if (arg->type != XPATH_NUMBER) { \
valuePush(ctxt, arg); \
xmlXPathNumberFunction(ctxt, 1); \
xmlXPathNumberFunction(ctxt, 1); \
arg = valuePop(ctxt); \
}
@ -903,14 +905,14 @@ xmlXPathValueFlipSign(xmlXPathParserContextPtr ctxt) {
* xmlXPathAddValues:
* @ctxt: the XPath Parser context
*
* Implement the add operation on XPath objects: @arg1 + @arg2
* Implement the add operation on XPath objects:
* The numeric operators convert their operands to numbers as if
* by calling the number function.
*/
void
xmlXPathAddValues(xmlXPathParserContextPtr ctxt) {
xmlXPathObjectPtr arg;
float val;
double val;
POP_FLOAT
val = arg->floatval;
@ -925,14 +927,14 @@ xmlXPathAddValues(xmlXPathParserContextPtr ctxt) {
* xmlXPathSubValues:
* @ctxt: the XPath Parser context
*
* Implement the substraction operation on XPath objects: @arg1 - @arg2
* Implement the substraction operation on XPath objects:
* The numeric operators convert their operands to numbers as if
* by calling the number function.
*/
void
xmlXPathSubValues(xmlXPathParserContextPtr ctxt) {
xmlXPathObjectPtr arg;
float val;
double val;
POP_FLOAT
val = arg->floatval;
@ -947,14 +949,14 @@ xmlXPathSubValues(xmlXPathParserContextPtr ctxt) {
* xmlXPathMultValues:
* @ctxt: the XPath Parser context
*
* Implement the multiply operation on XPath objects: @arg1 * @arg2
* Implement the multiply operation on XPath objects:
* The numeric operators convert their operands to numbers as if
* by calling the number function.
*/
void
xmlXPathMultValues(xmlXPathParserContextPtr ctxt) {
xmlXPathObjectPtr arg;
float val;
double val;
POP_FLOAT
val = arg->floatval;
@ -969,14 +971,14 @@ xmlXPathMultValues(xmlXPathParserContextPtr ctxt) {
* xmlXPathDivValues:
* @ctxt: the XPath Parser context
*
* Implement the div operation on XPath objects: @arg1 / @arg2
* Implement the div operation on XPath objects:
* The numeric operators convert their operands to numbers as if
* by calling the number function.
*/
void
xmlXPathDivValues(xmlXPathParserContextPtr ctxt) {
xmlXPathObjectPtr arg;
float val;
double val;
POP_FLOAT
val = arg->floatval;
@ -998,7 +1000,7 @@ xmlXPathDivValues(xmlXPathParserContextPtr ctxt) {
void
xmlXPathModValues(xmlXPathParserContextPtr ctxt) {
xmlXPathObjectPtr arg;
float val;
double val;
POP_FLOAT
val = arg->floatval;
@ -1590,10 +1592,10 @@ xmlXPathLastFunction(xmlXPathParserContextPtr ctxt, int nargs) {
if ((ctxt->context->nodelist == NULL) ||
(ctxt->context->node == NULL) ||
(ctxt->context->nodelist->nodeNr == 0)) {
valuePush(ctxt, xmlXPathNewFloat((float) 0));
valuePush(ctxt, xmlXPathNewFloat((double) 0));
} else {
valuePush(ctxt,
xmlXPathNewFloat((float) ctxt->context->nodelist->nodeNr));
xmlXPathNewFloat((double) ctxt->context->nodelist->nodeNr));
}
}
@ -1614,15 +1616,15 @@ xmlXPathPositionFunction(xmlXPathParserContextPtr ctxt, int nargs) {
if ((ctxt->context->nodelist == NULL) ||
(ctxt->context->node == NULL) ||
(ctxt->context->nodelist->nodeNr == 0)) {
valuePush(ctxt, xmlXPathNewFloat((float) 0));
valuePush(ctxt, xmlXPathNewFloat((double) 0));
}
for (i = 0; i < ctxt->context->nodelist->nodeNr;i++) {
if (ctxt->context->node == ctxt->context->nodelist->nodeTab[i]) {
valuePush(ctxt, xmlXPathNewFloat((float) i + 1));
valuePush(ctxt, xmlXPathNewFloat((double) i + 1));
return;
}
}
valuePush(ctxt, xmlXPathNewFloat((float) 0));
valuePush(ctxt, xmlXPathNewFloat((double) 0));
}
/**
@ -1639,7 +1641,7 @@ xmlXPathCountFunction(xmlXPathParserContextPtr ctxt, int nargs) {
CHECK_TYPE(XPATH_NODESET);
cur = valuePop(ctxt);
valuePush(ctxt, xmlXPathNewFloat((float) cur->nodesetval->nodeNr));
valuePush(ctxt, xmlXPathNewFloat((double) cur->nodesetval->nodeNr));
xmlXPathFreeObject(cur);
}
@ -1835,9 +1837,16 @@ xmlXPathStringFunction(xmlXPathParserContextPtr ctxt, int nargs) {
case XPATH_NUMBER: {
CHAR buf[100];
/* NAN, infinity, etc .... !!!!!! */
sprintf(buf, "%0g", cur->floatval);
if (isnan(cur->floatval))
sprintf(buf, "NaN");
else if (isinf(cur->floatval) > 0)
sprintf(buf, "+Infinity");
else if (isinf(cur->floatval) < 0)
sprintf(buf, "-Infinity");
else
sprintf(buf, "%0g", cur->floatval);
valuePush(ctxt, xmlXPathNewString(buf));
xmlXPathFreeObject(cur);
return;
}
}
@ -2006,7 +2015,7 @@ xmlXPathStartsWithFunction(xmlXPathParserContextPtr ctxt, int nargs) {
void
xmlXPathSubstringFunction(xmlXPathParserContextPtr ctxt, int nargs) {
xmlXPathObjectPtr str, start, len;
float le, in;
double le, in;
int i, l;
CHAR *ret;
@ -2037,11 +2046,11 @@ xmlXPathSubstringFunction(xmlXPathParserContextPtr ctxt, int nargs) {
/* integer index of the first char */
i = in;
if (((float)i) != in) i++;
if (((double)i) != in) i++;
/* integer index of the last char */
l = le;
if (((float)l) != le) l++;
if (((double)l) != le) l++;
/* back to a zero based len */
i--;
@ -2061,8 +2070,10 @@ xmlXPathSubstringFunction(xmlXPathParserContextPtr ctxt, int nargs) {
ret = xmlStrsub(str->stringval, i, l);
if (ret == NULL)
valuePush(ctxt, xmlXPathNewString(""));
else
else {
valuePush(ctxt, xmlXPathNewString(ret));
free(ret);
}
xmlXPathFreeObject(str);
}
@ -2262,7 +2273,7 @@ xmlXPathLangFunction(xmlXPathParserContextPtr ctxt, int nargs) {
void
xmlXPathNumberFunction(xmlXPathParserContextPtr ctxt, int nargs) {
xmlXPathObjectPtr cur;
float res;
double res;
CHECK_ARITY(1);
cur = valuePop(ctxt);
@ -2315,7 +2326,7 @@ xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt, int nargs) {
CHECK_ARITY(1);
CHECK_TYPE(XPATH_NUMBER);
/* floor(0.999999999999) => 1.0 !!!!!!!!!!! */
ctxt->value->floatval = (float)((int) ctxt->value->floatval);
ctxt->value->floatval = (double)((int) ctxt->value->floatval);
}
/**
@ -2328,11 +2339,11 @@ xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt, int nargs) {
*/
void
xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt, int nargs) {
float f;
double f;
CHECK_ARITY(1);
CHECK_TYPE(XPATH_NUMBER);
f = (float)((int) ctxt->value->floatval);
f = (double)((int) ctxt->value->floatval);
if (f != ctxt->value->floatval)
ctxt->value->floatval = f + 1;
}
@ -2348,12 +2359,12 @@ xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt, int nargs) {
*/
void
xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt, int nargs) {
float f;
double f;
CHECK_ARITY(1);
CHECK_TYPE(XPATH_NUMBER);
/* round(0.50000001) => 0 !!!!! */
f = (float)((int) ctxt->value->floatval);
f = (double)((int) ctxt->value->floatval);
if (ctxt->value->floatval < f + 0.5)
ctxt->value->floatval = f;
else if (ctxt->value->floatval == f + 0.5)
@ -2455,18 +2466,18 @@ xmlXPathParseQName(xmlXPathParserContextPtr ctxt, CHAR **prefix) {
* BUG: "1.' is not valid ... James promised correction
* as Digits ('.' Digits?)?
*
* Returns the float value.
* Returns the double value.
*/
float
double
xmlXPathStringEvalNumber(const CHAR *str) {
const CHAR *cur = str;
float ret = 0.0;
float mult = 1;
double ret = 0.0;
double mult = 1;
int ok = 0;
while (*cur == ' ') cur++;
if ((*cur != '.') && ((*cur < '0') || (*cur > '9'))) {
return(NAN);
return(xmlXPathNAN);
}
while ((*cur >= '0') && (*cur <= '9')) {
ret = ret * 10 + (*cur - '0');
@ -2476,7 +2487,7 @@ xmlXPathStringEvalNumber(const CHAR *str) {
if (*cur == '.') {
cur++;
if (((*cur < '0') || (*cur > '9')) && (!ok)) {
return(NAN);
return(xmlXPathNAN);
}
while ((*cur >= '0') && (*cur <= '9')) {
mult /= 10;
@ -2485,7 +2496,7 @@ xmlXPathStringEvalNumber(const CHAR *str) {
}
}
while (*cur == ' ') cur++;
if (*cur != 0) return(NAN);
if (*cur != 0) return(xmlXPathNAN);
return(ret);
}
@ -2504,8 +2515,8 @@ xmlXPathStringEvalNumber(const CHAR *str) {
*/
void
xmlXPathEvalNumber(xmlXPathParserContextPtr ctxt) {
float ret = 0.0;
float mult = 1;
double ret = 0.0;
double mult = 1;
int ok = 0;
CHECK_ERROR;
@ -2801,6 +2812,7 @@ xmlXPathEvalFunctionCall(xmlXPathParserContextPtr ctxt) {
}
func = xmlXPathIsFunction(ctxt, name);
if (func == NULL) {
free(name);
ERROR(XPATH_UNKNOWN_FUNC_ERROR);
}
#ifdef DEBUG_EXPR
@ -2808,21 +2820,23 @@ xmlXPathEvalFunctionCall(xmlXPathParserContextPtr ctxt) {
#endif
if (CUR != '(') {
free(name);
ERROR(XPATH_EXPR_ERROR);
}
NEXT;
valuePush(ctxt, xmlXPathNewMarker());
while (CUR != ')') {
xmlXPathEvalExpr(ctxt);
nbargs++;
if (CUR == ')') break;
if (CUR != ',') {
free(name);
ERROR(XPATH_EXPR_ERROR);
}
NEXT;
}
NEXT;
free(name);
func(ctxt, nbargs);
}
@ -3443,6 +3457,8 @@ xmlXPathEvalBasis(xmlXPathParserContextPtr ctxt) {
NEXT;
nodetest = NODE_TEST_ALL;
} else {
if (name != NULL)
free(name);
name = xmlXPathParseQName(ctxt, &prefix);
nodetest = NODE_TEST_NAME;
}
@ -3473,6 +3489,8 @@ search_nodes:
fprintf(xmlXPathDebug, "Basis : ");
xmlXPathDebugNodeSet(stdout, ctxt->context->nodelist);
#endif
if (name != NULL) free(name);
if (prefix != NULL) free(prefix);
}
/**
@ -3647,6 +3665,8 @@ xmlXPathEval(const CHAR *str, xmlXPathContextPtr ctxt) {
xmlXPathParserContextPtr pctxt;
xmlXPathObjectPtr res;
xmlXPathInit();
CHECK_CONTEXT
if (xmlXPathDebug == NULL)
@ -3679,6 +3699,8 @@ xmlXPathEvalExpression(const CHAR *str, xmlXPathContextPtr ctxt) {
xmlXPathParserContextPtr pctxt;
xmlXPathObjectPtr res, tmp;
xmlXPathInit();
CHECK_CONTEXT
if (xmlXPathDebug == NULL)
@ -3689,8 +3711,8 @@ xmlXPathEvalExpression(const CHAR *str, xmlXPathContextPtr ctxt) {
res = valuePop(pctxt);
do {
tmp = valuePop(pctxt);
#ifdef DEBUG
#endif
if (tmp != NULL);
xmlXPathFreeObject(tmp);
} while (tmp != NULL);
xmlXPathFreeParserContext(pctxt);
return(res);

View File

@ -37,13 +37,12 @@ typedef struct xmlNodeSet {
#define XPATH_BOOLEAN 2
#define XPATH_NUMBER 3
#define XPATH_STRING 4
#define XPATH_MARKER 5 /* used for func call checks */
typedef struct xmlXPathObject {
int type;
xmlNodeSetPtr nodesetval;
int boolval;
float floatval;
double floatval;
CHAR *stringval;
} xmlXPathObject, *xmlXPathObjectPtr;