This directory contains a primitive validating xml parser
module for Python. The parser makes use of Richard Tobin's
excellent RXP parser the source of which is in rxp!

To build the module you need a version of Distutils.
Try typing python setup.py build_ext -b .. to get the .pyd
installed for your Python.

This is pyRXP a python wrapper for RXP, a validating namespace-aware
XML parser in C.

RXP was written by Richard Tobin at the Language Technology Group,
Human Communication Research Centre, University of Edinburgh.

RXP is distributed under the GNU Public Licence, which is in the file
COPYING.  RXP may be made available under other licensing terms;
contact M.Moens@ed.ac.uk for details.

RXP is based on the W3C XML 1.0 recommendation of 10th February 1998
and the Namespaces recommendation of 14th January 1999.  Deviations
from these recommendations should probably be considered as bugs.

Interface summary:

The python module exports the following
	error			a python exception
	version			the string version of the module
	RXPVersion		the version string of the rxp library
					embedded in the module
	parser_flags	a dictionary of parser flags
					the values are the defaults for parsers


	Parser(*kw)		Create a parser


	Parser() Attributes and Methods
		parse(src)
				The main interface to the parser. It returns Aaron Watter's
				radxml encoding of the xml src.
				The string src contains the xml.

		srcName '<unknown>', name used to refer to the parser src
				in error and warning messages.

		warnCB	0, should either be None, 0, or a
				callable method with a single argument which will
				receive warning messages. If None is used then warnings
				are thrown away. If the default 0 value is used then
				warnings are written to the internal error message buffer
				and will only be seen if an error occurs.

		eoCB	argument should be None or a callable method with
				a single argument. This method will be called when external
				entities are opened. The method should return a possibly
				modified URI.

		Flag attributes corresponding to the rxp flags;
			the values are the module standard defaults.
		ExpandCharacterEntities = 1
		ExpandGeneralEntities = 1
			If these are set, entity references are expanded.  If not, the
			references are treated as text, in which case any text returned that
			starts with an ampersand must be an entity reference (and provided
			MergePCData is off, all entity references will be returned as separate
			pieces).
		XMLSyntax = 1
		XMLPredefinedEntities = 1
		ErrorOnUnquotedAttributeValues = 1
		NormaliseAttributeValues = 1
			If this is set, attributes are normalised according to the standard.
			You might want to not normalise if you are writing something like an
			editor.
		ErrorOnBadCharacterEntities = 1
			If this is set, character entities which expand to illegal values are
			an error, otherwise they are ignored with a warning.
		ErrorOnUndefinedEntities = 1
			If this is set, undefined general entity references are an error,
			otherwise a warning is given and a fake entity constructed whose value
			looks the same as the entity reference.
		ReturnComments = 0
			If this is set, comments are returned, otherwise they are ignored.
		CaseInsensitive = 0
		ErrorOnUndefinedElements = 0
		ErrorOnUndefinedAttributes = 0
			If these are set and there is a DTD, references to undeclared elements
			and attributes are an error.
		WarnOnRedefinitions = 0
			If this is on, a warning is given for redeclared elements, attributes,
			entities and notations.
		TrustSDD = 1
		ProcessDTD = 0
			If TrustSDD is set and a DOCTYPE declaration is present, the internal
			part is processed and if the document was not declared standalone or
			if Validate is set the external part is processed.  Otherwise, whether
			the DOCTYPE is automatically processed depends on ProcessDTD; if
			ProcessDTD is not set the user must call ParseDtd() if desired.
		XMLExternalIDs = 1
		ReturnDefaultedAttributes = 1
			If this is set, the returned attributes will include ones defaulted as
			a result of ATTLIST declarations, otherwise missing attributes will not
			be returned.
		MergePCData = 1
			If this is set, text data will be merged across comments and entity
			references.
		XMLMiscWFErrors = 1
		XMLStrictWFErrors = 1
			If this is set, various well-formedness errors will be reported as errors
			rather than warnings.
		AllowMultipleElements = 0
		MaintainElementStack = 1
		IgnoreEntities = 0
		XMLLessThan = 0
		IgnorePlacementErrors = 0
		Validate = 1
			If this is on, the parser will validate the document.
		ErrorOnValidityErrors = 1
			If this is on, validity errors will be reported as errors rather than
			warnings.  This is useful if your program wants to rely on the
			validity of its input.
		XMLSpace = 0
			If this is on, the parser will keep track of xml:space attributes
		XMLNamespaces = 0
			If this is on, the parser processes namespace declarations (see
			below).  Namespace declarations are *not* returned as part of the list
			of attributes on an element.
		NoNoDTDWarning = 1
			Usually, if Validate is set, the parser will produce a warning if the
			document has no DTD.  This flag suppresses the warning (useful if you
			want to validate if possible, but not complain if not).
		SimpleErrorFormat = 0
		AllowUndeclaredNSAttributes = 0
		RelaxedAny = 0
		ReturnNamespaceAttributes = 0
