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