The eXtensible Markup Language--A C++ Developer's Primer

By: Kenn Scribner for Visual C++ Developer

Background: I started looking into XML and XSL in 1998 when the initial betas of IE 5 were coming out (in fact, Microsoft released to us a beta of MSXML even before our IE 5 beta). We were developing a client-server application with a thick client that would send processed data to the server for analysis. (In fact, it was our own version of SOAP, though we didn't call it that at the time.) When Kate (Kate Gregory, the editor of VCD) contacted me and asked for an article on XML, I invited myself in for a series of 4! At that time I was completing the SOAP book and wanted to lead the VCD readers through an introduction to XML right to SOAP and Biztalk. That was the goal, anyway...give these articles a read and see if I hit the mark.

The eXtensible Markup Language--A C++ Developer's Primer

Part I, XML: A C++ Developer's Primer
(Part II, The DOM and XSL)
Part IV, Biztalk

If you think back to the first article, you may remember I mentioned we use language to communicate, and when we communicate we need to use a common vocabulary. Why? Well, the obvious answer is we wouldn’t understand each other even if we did speak the same language. If I don’t understand the terms and phrases you’re using, I can’t make use of the information you are trying to convey.

But let’s turn that around a bit and think of a vocabulary as a subset of the language, and those who use the same information by definition know and use the associated vocabulary. Photographers talk about fstops and field of view, and all professional photographers use these terms and phrases when they talk about their work. (Granted a rookie photographer like me doesn’t need to know this vocabulary to take photographs, but then, that’s probably why my photographs usually look rather sophomoric.)

Now relate this to the business world. Businesses all have their specific vocabularies. Lawyers understand briefs and citations. Car dealers understand hold-backs and MSRP. If two lawyers or car dealers talk, they probably use these terms, at least from time to time.

However, if they transfer information electronically, that’s a different story, and that’s where BizTalk steps in. BizTalk’s goal is to provide a mechanism for like-minded businesses to post XML DTDs and schemas to a common access location so that the XML a given business might use to transfer information to another participant in the same business is both the same for each and understood by both parties. That way, one law office doesn’t create its own DTD while another creates its own schema, both of which create XML documents that are incompatible with the other.

BizTalk as a technology is actually composed of several pieces:

The BizTalk Web Repository is the central clearinghouse for XML DTDs and schemas that facilitate business to business communication. You can access the Repository at any time by surfing to …feel free to hit the site and look around. But to use the site as a member, you’ll need to sign up (at no charge). However, there is a lot of other (useful) information available at the site just for the taking. For example, here is the (abbreviated) philosophy behind BizTalk (

BizTalk also identifies a protocol you can use to transfer information, and this protocol is known as the BizTalk Framework. The BizTalk Framework details the look and feel of the XML as well as specifies how the XML should be laid out in an XML document. While it doesn’t actually tell you what tags to use, it does provide a lot of guidance regarding how the tags should look and the prescribes the general flow of the XML document.

The current Framework is broken into two parts: the XML design guide and the BizTalk tagging scheme. While I could go into some detail regarding the Framework, I’m going to forgo the current Framework’s architecture in lieu of SOAP (rumor has it BizTalk and SOAP will combine, or to be more precise, BizTalk will overlay SOAP and use SOAP as its XML wire protocol). The salient point here is BizTalk will provide you guidelines you must follow when streaming your XML information and how that information is transported from here to there. It’s also worth mentioning the current BizTalk Framework is message-based…I’ll revisit that thought when I address the current SOAP specification later in the article.

The final piece of the BizTalk puzzle is the BizTalk 2000 Server. This is a Microsoft BackOffice product designed to take advantage of BizTalk schemas (in the Repository) to allow you to transmit data seamlessly between yourself and other business concerns. Ultimately, the goal is seamless document transfer and application integration—done over the Internet! You essentially hand BizTalk 2000 Server some information and a recipient and the server takes care of the details for you.

I’m sure you can now see why I claim BizTalk isn’t a C++ technology. It is a technology people interested in XML should have at least a passing acquaintance with, though, because you’ll probably hear more about it in the months and years to come. At least you’ll have a (very) high-level understanding of the technology. I believe SOAP is going to be of more interest to most developers. Look back to Part III see what SOAP is all about.

Comments? Questions? Find a bug? Please send me a note!

[Back] [Left Arrow] [Right Arrow][Home]