There has been a lot of discussion (on various mailing lists) about the benefits of a standard API which would allow software that creates, examines or modify XML Schemas, written in Java, to do so in a way that represents the semantic XML schema components described in the W3C XML Schema specifications. I am happy to see indications that the next version of Xerces-J plans to have a "DOM-like" API addressing part of these requirements -- including the ability to examine XML schemas. Because my own work involves writing fairly complex schema processing software, I have a need for even richer access to the details of schemas, and for ways to dynamically modify those schema components.
In February, we shared with the W3C Schema and DOM working groups some thoughts about what such a "rich components API" should try to do. You can see those 'requirements' described here: http://www.research.ibm.com/XML/schema/WD-XML-Schema-Infoset-API-Req.htm .
I have been lucky to work with Ed Merks, part of the IBM Websphere Studio Application Developer (WSAD) development group, to define such an API and to produce a reference implementation. Although we have not yet completed every last function we have in mind to implement, nor have we done any performance tuning, this API has been used successfully in building several real XML and Web Services tools. We have tried to make a reasonable and straightforward Javadoc, and have been grateful to have Shane Curcuru, who has worked on the Apache Xalan team, give us some guidance on how to do this. We are aiming for an API which is very complete: not simply read-only, and able to handle any XML Schema, no matter how complex. We tried to use the terminology from the W3C's XML Schema specifications in naming our classes/interfaces, methods, and constants.
We have now made this work, including source code, UML, example usage code and documentation, available publically for the wider community to examine and use. Donating a future version of this to some open source effort is possible, although I can't make a commitment on behalf of IBM at this time.
If you also produce software that creates or modifies complex schemas, then I encourage you to download our work. You can do so through IBM's Partnerworld for Developers web pages.
https://www.developer.ibm.com/member/register/how2join.html - shows how you can get yourself an ID and password if you've never
joined Partnerworld for Developers
https://www.developer.ibm.com/websphere/member/workbench_beta_download.html - where you can find the XSD Feature, the name for the Schema Infoset Model (aka com.ibm.etools.xsd)
Although I am posting this notice here, I recommend that all discussion about this, at least until the end of June, take place in a single venue. I recommend that questions and comments be posted to [EMAIL PROTECTED] . (The archive is: http://lists.w3.org/Archives/Public/xmlschema-dev/ . Instructions are here: http://www.w3.org/Mail/Request and here: http://www.w3.org/Mail/Lists.html ).
Bob Schloss
XML/XSL Transformational Technologies
IBM T.J. Watson Research Center
