What Are the Next Steps?

Before you can really dive into XML you need to understand XML-based languages and know what software to use and where to get help. If you have previous experience with deploying XML solutions, the following parts will be a refresher. If you have experience with XML but have not developed any large-scale applications and systems using it, the items in this section should help you on your way. You will be reminded of important exposure you should have and about the kinds of applications you should consider using. Additionally, we have included places where you can get help if you need it.

Necessary Knowledge

Few people learn XML as their first markup-based language; most have had previous experience with SGML or HTML/XHTML. Even if you have no prior experience, XML is an easy language to learn conceptually. It is simply metadata used to describe a markup language. But conceptual understanding is not the biggest problem in knowing and using XML.

XML 1.0 is a means used to create the markup language. Saying that you know XML states that you can understand the constructs of a given XML-based language, but does not necessarily mean that you understand the purpose and usage of that language. While learning XML you should take the time to learn XML-based languages created with it. For instance, you should explore other standards such as Namespaces in XML, XPath, or SOAP. Your usage of XML will surely go beyond just the details of the language itself and will involve many of the other XML-based implementations.

Because understanding some of the more important XML-based languages is so important, we cover several in Appendix A. As you create your solution you will come across an instance where you will say, "Gee, I really need X," where X is a type of functionality not inherent in XML or your deployment environment. With research and exposure to other standards, you are sure to find something that performs at least 85 percent of what you are looking for, if not more.

The Universal Description, Discovery, and Integration (UDDI) was recently launched to host Yellow Pages-like entries for Web Services that are available via their defined protocol. For instance, if you want to find a company that could perform credit card validation by passing them an XML document, you should first check to see who is currently offering this type of service.

XML Software

Using XML for personal or professional uses requires software. How much software you require is completely dependent on what you, from knowledge and programming standpoints, are comfortable with providing. You may opt to use a text editor, like Notepad, in writing your schemas and instance documents instead of performing these tasks in some kind of Integrated Development Environment (IDE).

You may also, in accordance with the published standards, opt to write your own parser for validating instance documents. Although this is unlikely, the application you build will be larger if a prebuilt parser is included. This could be anything from a type of user agent to a server that processes XML documents for insertion into a database.

We cover parsers in detail in Chapter 3 and touch on several popular XML software offerings in Appendix B. To give you a leg up until then, we listed several tools you might want to consider in Table 1-1.

Table 1-1 Tools of the XML Trade
Tool Function Description

Schema and DTD

Tools used to create XML DTDs and schemas to describe data models. These tools usually follow the XML 1.0 or XML Schema Recommendations from the W3C (), or some other standard based on these.

Document instance

Tools that will create an XML document. These documents might only be well-formed, or they might also be validated against a DTD or schema.

Parsers

Applications responsible for parsing an instance document, potentially validating it against a DTD or schema, and then exposing the various aspects of the data in a programmatic view (that is, as an object or some other API). It will also check to make sure that the document conforms to the XML standard.

Application

Application that takes the document after parsing and performs a given task with the data. For instance, this could be a database that inserts the data in the instance document into the appropriate tables.

After you finish Chapters 2 and 3 and glance at Appendix B, you will not only be ready to move into the real meat of the book where you will build applications using XML, but you will also have a good idea as to what, if any, extra software you might want to use in your projects.

Where to Get Help

Obtaining help is one of the most overlooked and untapped benefits of today's computer world. Not only have complex applications provided detailed help files that are searchable like a mini-database (using the Help system in Windows is one great example), but the ability to use the Internet to search for similar or related problems makes it easy to find a solution. The combination of these resources alone gives developers a leg up on difficulties they might come across.

Several places on the Web offer you help, and several methods can help you get it. In Table 1-2, for instance, we included the URLs to the standards bodies that you should come to know and understand. While everyone is free to monitor and participate, they all provide a large number of resources, standards, and other information that you will find useful.

Table 1-2 Standards-Based Sites
URL Description

The World Wide Web Consortium is where many of the XML standards are housed, including the XML 1.0 Recommendation and the newly adopted XML Schema Recommendation.

The Organization for the Advancement of Structured Information Standards (OASIS) is like the W3C in many ways. It hosts standards and provides the framework to propose and produce a standard for paying members.

The Internet Engineering Task Force (IETF) is by no means focused on XML, but they do work that uses XML heavily. One particular item is their WWW Distributed Authoring and Versioning (WebDAV) group. Microsoft included support for WebDAV in applications such as BizTalk Server, so we recommend you stay alert on the IETF efforts.

If you are serious about following up on XML after reading this book, we suggest you try the sites listed in Table 1-3. You will probably find what you're looking for, or at least a pointer to it. For those of you using Microsoft servers and products for your implementation, the Microsoft Developer Network Online link (MSDN Online) should be of special interest because many questions can be answered there.

Table 1-3 Useful XML Sites
URL Description

A nicely done and thorough section of the MSDN Online site. It contains generic information on XML and related standards and specific information on XML support within their applications.

XML.com, which is an O'Reilly supported site, offers free content in the form of articles, examples, and other resources for the new and seasoned XML programmer.

The developerWorks site provides tools, code, and examples on many open standards, one of which is XML. It provides basic self-help information and descriptions of tools and other helpful items available to those implementing XML.

The XML.org site, which is hosted by OASIS, is an open forum for the discussion and exchange of information on XML. Its purpose is to distribute information they have assembled and collected about XML, tools, and communities that use it.

Finding help is not always easy, so if all else fails you can fall back on your favorite search engine and a few keywords to see if any additional sites cove your topic of interest. If you do take this approach, remember that you should use specific keywords to narrow your search to items that are likely to represent what you are actually seeking.