File: README

package info (click to toggle)
libooc-xml 3.0-3
  • links: PTS
  • area: main
  • in suites: woody
  • size: 10,880 kB
  • ctags: 360
  • sloc: xml: 10,312; ansic: 1,681; sh: 798; makefile: 301; perl: 17
file content (95 lines) | stat: -rw-r--r-- 3,802 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
The libxml sources include the XML parser itself, encoder and decoder
for the most prominent Unicode encodings, an URI library, some
auxiliary OS level functions, and low-level support modules for socket
access.  Both sources and test cases are included in the libxml
tarball.

To install the files into the compiler's installation directory, do

  ./configure
  make install

The socket modules are known to work under Linux, Solaris 2.6, and
CygWin.  I would like to get some feedback for other platforms.

IMPORTANT: You'll need oo2c-1.5.4 or later to compile the sources.

--------

At the moment, the XML parser succeeds for all well-formedness and
validation tests I can lay may hands on (which are approx. 2600
different test cases).  With regard to the XML Information Set, the
parser passes all core information items and almost all periphereal
items to the application.  Support for XML Namespaces is implemented
as a specialized builder module that is inserted between the "real"
builder and the parser.  See module XML:Builder:Namespaces for
details.

Similar to namespace support, validation is implemented as a separate
builder module XML:Builder:Validation, with only a few low-level
scanner and parser related checks in XML:Parser.

Compared to the old XML parser, this implementation's design is
simpler and the new parser is much faster (2-4 times faster, depending
on the type of input).  Besides the speed improvement, it is much more
widely tested and should be compliant to the XML 1.0 spec (Second
Edition).  Another point some people will like: the sources are
published under the LGPL, _not_ GPL.


To get at the latest and greatest sources, use the CVS repository at
SourceForge.  To get the goodies, check the instructions at

  https://sourceforge.net/cvs/?group_id=3539

under "Anonymous CVS Access".  The module name is "libxml".  If you
only want to browse the source code, 

  http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/libxml/?cvsroot=ooc

is probably the interface of your choice.

As a starting point, you might look at the program src/TestParser.Mod.
It is a simple command line tool acting as a wrapper around the parser
modules.


Due to changes in the installation process, "make test" will currently
only work _after_ "make install" has been done once.  Otherwise,
compilation will complain about undefined pragma variables.  Anyway,
to run the tests set the environment variable OOC to point to your
oo2c compiler.  For bash, this is done with something along the lines of 

  export OOC=/usr/local/bin/oo2c

Then, do "make test" in the root directory.  (I'm not sure what
happens if your make is not of the GNU persuasion.  I've tried this
setup under both Linux and SunOS 5.6.  Under CygWin, there seems to be
a problem with patching the Sun tests.  Ignore it.)

"make test" requires GNU patch to modify some of the test files.

The C compiler emits some warnings about missing type casts for
`XML_Parser.c'.  They can be safely ignored.



Socket Access and HTTP GET
==========================

Since v2.3, this library includes support for Unix sockets.  There are
no automated tests for these modules, but the distribution includes
two example programs that are build as part of "make test".

MODULE TestGet:
This program takes a single argument, an "http" URI.  It tries to retrieve
the URI using a "GET" request.  On success, the retrieved entity's content
is written to stdout.  Otherwise, an error message is written to stderr.

MODULE TestServer:
This program implements a simple server in the Internet namespace.  It
listens on port 5555 of the local host for incoming connections.  You
can use "telnet localhost 5555" to connect to the server process.  Any
data received on connections is written to stdout.  Debugging output
is send to stderr.