Eliminate short URL, unneeded with single distribution file
trac/82: restore binding style support

Won't fix.

Too much existing code would become unusable if elements and attributes were
manipulated through accessors instead of properties.  This would create a
fundamental portability issue between PyXB modules.  Should an alternative
interface be desired, it should be done by providing a new generator in a
system that is called "MetaPyXB" or something like that.
Update output to reflect XML encoding
Reproducer submitted in ticket 155
trac/155: Namespace name assignment fails on xs:any type

Namespace mappings should be preserved when a DOM object is being
deep-cloned to convert it from one implementation to another.  This patch
also permits re-declaration of a namespace with the same prefix.
Automatically download the Unicode database files if not present.

This simplifies running this script for the first time.
Fix to allow the Unicode 2.0 data files to be parsed.

The only way I could regenerate the committed unicode_data.py from
03d8c8a5366c18998dc84b4eeeea000ce747d092 was to make this change and
then use the Unicode 2.0 data files.
Regenerate Unicode data against Unicode 3.1.

Required for compliance with the spec.

For the \i, \I, \c and \C groups, the XML Schema spec reqires us
to use the Unicode 2.0 definitions.  But for all other Unicode
groups, the XML Schema spec reqires to use Unicode 3.1 or later.

\i, \I, \c and \C are defined in terms of the XML 1.0 (Second Edition)
standards, which includes a list of code points copied from the
Unicode 2.0 spec.

But When talking about the Unicode blocks, the XML Schema spec says:

> [Unicode Database] is subject to future revision. For example,
> the grouping of code points into blocks might be updated. All
> minimally conforming processors must support the blocks defined
> in the version of [Unicode Database] that is current at the time
> this specification became a W3C Recommendation. However,
> implementors are encouraged to support the blocks defined in any
> future version of the Unicode Standard.
Simplify comments in unicode_data.py

Change the comments to count codepoint groups & characters,
rather than markers.  This is simpler and more useful.
Optimize ranges in unicode_data.py

Ensure all adjacent Unicode ranges are merged together to make a
larger range.  This is simpler, smaller, and faster (though the
difference is probably too small to measure).
Add support for the "Cn" Unicode category

The "Cn" Unicode category is used for code points that aren't
listed in the database.  It wasn't being created.
This commit also fixes the "C" category to include "Cn".
Includes a unit test for this.
Fix backslashes and carets in regular expressions.

Fix bugs where backslashes and carets were not being escaped when
converting a regular expression into Python syntax.  This meant that
some XML schemas with <pattern> elements were not handled correctly.
Includes unit tests for the two problem cases, and a bonus unit test
(which already passed) for dashes in regular expressions.
Add tests for all the MultiCharEsc regex classes.
Rewrite character class parsing code.

The spec says that a dash at the beginning or end of a character group
means a literal dash, it should not be a parse error.
Also fixes at least one case where the "-[" set subraction syntax was
not parsed, causing a syntax error ("[a^-[a]]")

Simplify parsing of backslash-escaped characters by having a single
dictionary keyed by every possible one.
Add more tests for regexp code.

(These tests pass already).
Fix handling of caret and dollar in regexps.

They are normal characters in XSD REs but control characters
in Python REs, so we have to escape them.
Change print statements to logging.

Generally, libraries shouldn't use "print".  If the library is used
by a web service or a GUI application, messages printed using "print"
will be lost.  If run as a CGI script or a console application,
messages printed with "print" will mess up the application's output.

Change to use Python's standard "logging" module instead.  This allows
the application author to decide what to do with the messages.  If
the application is already using the "logging" module, the messages
will end up in the log file automatically.
Trivial Windows compatibility fixes for tests

On Windows, disable a test for GetMatchingFiles() behaviour with symlinks,
since Windows doesn't have symlinks.

Remove a unnecesary sanity check that fails on Windows.
Disable a Linux-specific test on Windows.
This test uses Linux-specific tricks to look for memory leaks.
Fix test failure if libxml2 not installed