18.2 Concepts and Observations
The content of this chapter is slanted heavily toward the interests of application developers. Although most of the content of this book is applicable to any work involving XML schemas, either design or application, this chapter is most useful for software developers who need programmatic access to XML schemas. For those developers, it helps to remember that...
18.2.1 ...MS Stands for Microsoft
This chapter is, of course, vendor specific, which differs greatly from the majority of the content of this book. Because the focus is on application development using MSXML and the Schema Object Model, this assumes that the reader is developing for Windows platforms. To work with the Microsoft XML Parser and other tools included in MSXML, you need access to a development tool that can consume a COM-based API such as MSXML. Most development environments for Windows platforms support such an API. The examples provided in this chapter were written in Visual Basic 6.0, but because of the nature of COM and MSXML, the examples should translate easily to other languages that support the tools.
18.2.2 Proprietary versus Standard
MSXML support for XML schemas is a new feature, in large part because the specification has been a work in progress. While the specification was still evolving, Microsoft created its own language, called XML Data Reduced (XDR). Version 4.0 of MSXML supports both XDR and XML schemas. It appears that Microsoft will favor XML Schema over its own language in the future.
It should be noted, however, that the Schema Object Model (SOM) introduced in version 4.0 is a proprietary API for working with XML schemas. It is modeled directly after the XML Schema structure, so the learning curve for those familiar with XML schemas is gentle. Aside from the general XML APIs such as DOM and SAX, there is no standard API for accessing XML schemas, and they provide no access to the schema components themselves. The SOM is just Microsoft's way of simplifying access to XML schemas. Code written against this model will currently have no counterpart on other platforms.