ncdc 1.18.1 + yxml manual + dcstats + minor restyle
...I need to commit more often.
This commit is contained in:
parent
610b0fb31c
commit
57e7bb546e
20 changed files with 339 additions and 56 deletions
35
dat/yxml
35
dat/yxml
|
|
@ -11,14 +11,15 @@ The code can be obtained from the L<git repo|http://g.blicky.net/yxml.git> and
|
|||
is available under a permissive MIT license. The only two files you need are
|
||||
L<yxml.c|http://g.blicky.net/yxml.git/plain/yxml.c> and
|
||||
L<yxml.h|http://g.blicky.net/yxml.git/plain/yxml.h>, which can easily be
|
||||
included and compiled as part of your project. Minimal documentation is
|
||||
included in yxml.h, more complete documentation is pending.
|
||||
included and compiled as part of your project. Complete API documentation is
|
||||
available in L<the manual|http://dev.yorhel.nl/yxml/man>.
|
||||
|
||||
The API follows a simple, mostly buffer-less design and only consists of two
|
||||
functions:
|
||||
The API follows a simple and mostly buffer-less design, and only consists of
|
||||
three functions:
|
||||
|
||||
void yxml_init(yxml_t *x, char *stack, size_t stacksize);
|
||||
void yxml_init(yxml_t *x, void *buf, size_t bufsize);
|
||||
yxml_ret_t yxml_parse(yxml_t *x, int ch);
|
||||
yxml_ret_t yxml_eof(yxml_t *x);
|
||||
|
||||
Be aware that I<simple> is not necessarily I<easy> or I<convenient>. The API is
|
||||
relatively low-level and designed to integrate into pretty much any application
|
||||
|
|
@ -28,11 +29,9 @@ devices. It is possible to implement a more convenient and high-level API on
|
|||
top of yxml, but I'm not very fond of libraries that do more than what I
|
||||
strictly need.
|
||||
|
||||
Yxml is still in a beta stage and hasn't been very thoroughly tested yet. There
|
||||
are no tarball releases available at the moment. The API and ABI may still
|
||||
change a bit, so I strongly advise against dynamic linking (I'm not sure if
|
||||
I'll ever promise a stable ABI, but the API should certainly get stabilized at
|
||||
some point).
|
||||
There are no tarball releases available at the moment. The API is relatively
|
||||
stable, but I won't currently promise any ABI stability. Dynamic linking
|
||||
against yxml is therefore not a very good idea.
|
||||
|
||||
=head3 Features
|
||||
|
||||
|
|
@ -95,11 +94,11 @@ using C<< <!ENTITY> >>.
|
|||
=back
|
||||
|
||||
These conformance issues are the result of the byte-oriented and minimal design
|
||||
of yxml, and I do not intent to fix these directly within the library. All of
|
||||
the above mentioned issues can be fixed on top of yxml (by the application, or
|
||||
by a wrapper) if strict conformance is required. With the exception of custom
|
||||
entity references, but I have a simple idea on how to support that in the
|
||||
future, too.
|
||||
of yxml, and I do not intent to fix these directly within the library. The
|
||||
intention is to make sure that all of the above mentioned issues can be fixed
|
||||
on top of yxml (by the application, or by a wrapper) if strict conformance is
|
||||
required, but the required functionality to support custom entity references
|
||||
and DTD handling has not been implemented yet.
|
||||
|
||||
=head3 Non-features
|
||||
|
||||
|
|
@ -136,7 +135,7 @@ implementation is also included as an indication of the "theoretical" minimum.
|
|||
expat 2.1.0 MIT 162 139 194 432 1.47 1.09
|
||||
libxml2 2.9.1 MIT 464 328 518 816 2.53 1.75
|
||||
mxml 2.7 LGPL2+static 32 733 75 832 12.38 7.80
|
||||
yxml git MIT 5 935 31 384 1.14 0.74
|
||||
yxml git MIT 5 971 31 416 1.15 0.74
|
||||
|
||||
The code for these benchmarks is available in the
|
||||
L<bench/|http://g.blicky.net/yxml.git/tree/bench> directory on git. Some
|
||||
|
|
@ -177,7 +176,7 @@ with C<-Os> than with C<-O2>.
|
|||
expat 2.1.0 MIT 113 314 145 632 1.58 1.20
|
||||
libxml2 2.9.1 MIT 356 948 412 256 3.01 2.08
|
||||
mxml 2.7 LGPL2+static 27 725 71 704 11.70 7.44
|
||||
yxml git MIT 4 835 30 264 1.72 1.05
|
||||
yxml git MIT 4 955 30 392 1.67 1.02
|
||||
|
||||
|
||||
=head2 Validating vs. non-validating
|
||||
|
|
@ -204,6 +203,6 @@ It should be noted that a lot of XML documents found in the wild are not
|
|||
described with a DTD, but instead use an alternative technology such as XML
|
||||
schema. Wikipedia L<has more
|
||||
information|https://en.wikipedia.org/wiki/XML#Schemas_and_validation> on this.
|
||||
Using a validating parser for such documents would only introduce bloat and may
|
||||
Using a validating parser for such documents would only add bloat and may
|
||||
introduce L<potential security
|
||||
vulnerabilities|https://en.wikipedia.org/wiki/Billion_laughs>.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue