Ok, so the 1.1.0 code has gone golden and I've checked in the code I've
been working on locally for a few weeks. These changes are pretty
extensive, and I definitely have broken the non-Win32 builds because I've
added files and renamed files. We'll straighten these out as soon as we
can.

I didn't list the changes in the log comment because it would have been
quite large. Here are the changes I made:

   The NodeType of the ContentSpecNode class should have a defined
   'Unknown' type instead of faking in a -1 value.

   Add a cleanup method to XMLPlatformUtils, for those folks who want to be
   responsible for calling it. Provide a mechanism where higher level code
   can register lazily evaluated data for cleanup during this termination
   call (Note that this registration mechanism has not been made full use
   of in all of the code yet.)

   Implement the Locator scheme for SAX. Have ReaderMgr implement the
   Locator interface, and have the SAXParser pass it out through the SAX
   setDocumentLocator() method duirng the startDocument() internal event.

   Optimize the XMLAttr class by keeping up with the current string member
   sizes and just reusing them if they are long enough for the new values.

   Add a -n option to most of the samples, to enable namespaces. Don't
   bother on some of the more trivial ones.

   Fix an error where XMLScanner::parseNext() was falling through on an
   exception instead of return a failure.

   Get rid of all uses of the term "XML4C" from the source code. Update all
   of the files to use either just plain "XML" or "Xerces" as appropriate.

   Inline a few of the XMLString statics that are very highly travelled,
   and optimize them heavily, to improve performance.

   The calls that are checking how deep the reader stack is should be
   changed to use a new getReaderDepth() method instead of the old
   getCurrentReaderNum() because the reader number is now a unique
   sequentially assigned id, not the depth of the stack!

   Swat out the /** bits from all of the log header comments and change
   them to just /* so that the Doc++ thingie won't see them as
   documentation.

   Do a general swat of the samples and make them more stylistically
   consistent again, since they tend to drift over time.

   Create an XMLString::moveChars() method and start using that in places
   where we know the target buffer is big enough to hold the source text,
   instead of doing a string copy operation. This should improve
   performance. (There are probably still some more places to use it, but
   its done and in use in some key places now)

   Implement the specialized string loading for Win98, since LoadStringW()
   doesn't work on 98 and makes the loaded error text from the Win32
   message loader come out junk. Since this same code will work on NT as
   well, use it as the sole mechanism.

   There is a reported error with the SVG DTD. SVG is a W3C spec and its
   DTD won't parse. Its due to two trailing entity references in a content
   model, like so: <!ELEMENT foo (a|b|c|d|e %one;%two;)*>  This construct
   allows per-use specialization of the content model, and the default
   definitions of one and two are empty strings. This gives an "Expected
   ',' or '|' characters or close parent in content model" type of error.
   Its having multiple contiguous and empty PE refs that causes the
   problem, so change the code to deal with this.

   Significantly improve the Doc++ docs in the platform utilities class.



So that's it. Too bad some of this stuff couldn't make it into the 3.1.0
release, but hey we wanted to get it out with our lifetimes.


----------------------------------------
Dean Roddey
Software Weenie
IBM Center for Java Technology - Silicon Valley
[EMAIL PROTECTED]


Reply via email to