Its safe to say that any IT professional writing any kind of code has had (or will eventually have) the need to effectively edit and work with XML documents at some level. Clearly the ability to develop using XML is a critical skill in todays job market! The Software Development Lifecycle Model This section compares the classic software development process and the XML soft- ware development process to explore the overall effect of the introduction of XML technologies on the software development process. Classic software development (before XML) Classic software development refers to the process of developing applications using procedural programming languages such as C/C++, Java, C#, COBOL, and Perl. The classic software development process typically begins with a high-level architect- ing process that includes modeling the software objects and their interactions. Next, an editor is used to write the source code according to the proper syntax, and the compiler is invoked to translate and link the software to an executable binary format. Finally, a debugger is used to catch any errors, thereby ensuring correct program behavior. Classic IDEs, such as Microsofts Visual Studio or Borlands JBuilder, have revo- lutionized the software development process by providing enhanced tool support for editing source code, as well as modeling and debugging tools that have enabled developers to produce higher quality software while simultaneously reducing the required effort. Modern XML software development XML technologies differ significantly from classic procedural programming lan- guages in structure, syntax, and nature. Therefore, its reasonable to expect that XML application development is also different from classic software development. You begin XML application development by developing the XML Schema, which defines a family of XML documents to be used in the application. Next, you edit and validate XML documents according to the XML Schema. Finally, a language binding must be programmed to enable the XML document to be consumed or processed by some XML-enabled framework. As previously discussed, XML document operations typically include transforming the XML document to another format, saving the XML document to a database, or transmitting the XML docu- ment to a remote process. The XML software development process is illustrated in Figure 1-3. 8 XMLSPY Handbook