xCBL 3.5 Document Definitions (XSDL Version)
Due to the size and complexity of the XSDL specification, there are still some issues with full support of the specification amongst certain tools. Unfortunately, in the case of a document library as extensive as xCBL, these issues can cause problems. One of these relates to the way in which the schemas are structured (more info). Therefore, we are providing the XSDL version in two forms:
[NOTE] Namespace Change:
As of the latest update to these schemas, September 2002, the namespace of the XSDL Schema versions has changed. This was done due to the fact that the informal uri scheme that we were using ("publicid") came into naming conflict with a formal urn nid scheme. Although technically not an issue (as one is a urn and one a uri), we are planning to go through the process of formally submitting the uri scheme and thought that it was too confusing, so we have renamed our scheme to "RRN" (Resolvable Resource Name) and are planning to submit this to the relevant bodies. The structure of the schemas has not changed in any way. If you have any questions on this please send them to the mailing list which the xCBL team monitor and we will try and address them.
The following xCBL 3.5 XSDL components are available for downloading free of charge.
[^] xCBL XSDL Schema Structure
The XSDL version of xCBL 3.5 is produced from the SOX version, which is the original form. Our intention was to have only one XSDL version, which would look very much like the SOX version. With a modular structure and a top level file which includes all of the modules and so describes the entire library in one schema. But due to the fact that XSDL is slightly more verbose than SOX, together with XSDL support amongst available tools still being slightly patchy, this did not always work. The most common problems were related to the size of the library as a whole and to resolving all of the "include" statements required to bring all of the modules together (see xerces). The best way to solve these problems is to have a schema for each xCBL document in which all necessary defnitions are in one file. This lessens the size problem, (although the overall footprint of the library increases, only one schema need be loaded at a time, not the whole library) and also the "include" issue, as they are no longer required.
Xerces-J, from the Apache foundation, is a widely used and popular open-source XML parser, and was one of the first to provide full XSDL support. For this reason we wanted to ensure that xCBL could be used with Xerces-J. Unfortunately the 1.x version (latest 1.4.4) of the parser does not fully support the use of "include" statements, such as are featured heavily in xCBL. It is our understanding that this problem will not be officially addressed in the 1.x version of the parser as this is being replaced with the 2.x version and so further development has been halted. The Xerces2 Java parser was recently released as a stable production version and has full support for "include" statements. So be aware that if you wish to use Xerces-J, either use the single root schemas with Xerces-J 1.4.x (note the namespace issue discussed above), or use the Xerces-J 2.x.