What do Biztalk want to acheive?
Hi, No its not a flame against Microsoft :-) Its a reflection on what a biztalk message is trying to achieve and what is missing in the actual XML world to have what biztalk is trying to achieve. Funny note: Mark, you know what, my Outlook spell checker wants also to replace the biztalk word with bestial :-))) every time I see that, I laugh. Microsoft embedded some humor in its outlook spell checker :-))) 1. Background: -------------- Documents transferred from one place to an other can contains several elements not part of the information model this document serialize (if the document is a data model serialization as found in e-commerce applications). a) the first meta information is the <?xml?> processing instruction providing meta information about the document format and parsing instructions. This element is an answer to the questions: "How can I parse this document?", "How is this document encoded", etc... So, the element contains info about the encoding, the version and so on and so forth. b) the document type or DTD information. This element points or include the meta information about the document structure. This is an answer to the question: "What is the document's structure?". For more precision on the structure and the data content type, a schema can be used instead. c) the third element not part of the information model is the <?xml-stylesheet?> element. This element is an answer to the question: "How do I render this document?". it provides sufficient information to render the document. the style sheet could be externally linked or embedded in the document. What is interesting thought is to examine the document when the style sheet is embedded. The example below shows a style sheet embedded in an XML document. <?xml version="1.0"?> <?xml-stylesheet href="#style" type="text/xsl" media="screen"?> <!DOCTYPE MyInvoice .... the doc type content here but the document type do not include any references to the xsl name space, only defines the MyInvoice document type ... > <MyInvoice> <xsl:stylesheet id="style" version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> ....the style sheet content here... </xsl:stylesheet> .... the document content here..... </MyInvoice> 2. interesting facts to note about the previous example: ------------------------------------------------------- a) The document type do not mention anything about the style sheet. Therefore the style sheet can be included in a document even if this document type has no mention of the <xsl:stylesheet> element. According to the XSLT recommendation, the above document is valid. Then, a validating parser should only consider elements not part of the "xsl" namespace in its validation process. <Question to the group> Is this the same for any other elements part of a foreign namespace? <explanations> if we include elements part of a different name space (i.e. a different name space than the defined document type in the !doctype section). Then the validating parser should not include these foreign name space elements in its validation process. b) So, a validating parser can check for the document consistency even if foreign name space elements are included in the document. For the moment, without making a generalization on this, let's just consider that the "xsl" name space can freely be included in the document without affecting its consistency. Thus, we are able to include foreign "xsl" name space elements in the "MyInvoice" document without affecting its consistency. We still deal with the "MyInvoice" document type and therefore with the "MyInvoice" document. 3. What biztalk is trying to achieve? -------------------------------------- Biztalk is trying to provide an answer to the following questions: a) from whom (or what) is this document coming from? b) to whom (or what) is this document going to? c) In which process is this document involved? d) What is the transport used to move this document to its destination ? etc... we can say that all these information are meta information about the document or the data model. It is about the data model it is not the data model. Thus, biztalk is trying to provide meta information about the document. It does so, by creating a new document type and by including your document as a fragment into the document type. Is this the best solution? I do not know. Is there any alternative ways to do it? Yes you bet. 4. Suggestion: -------------- As we did for style sheets, why not do the same thing for meta information. To recap: the original data model document is augmented or includes the following elements, which are, from the data model point of view external and are either meta information or processing information. a) link to or includes the document type meta information b) link to or includes the rendition processing information c) inclusion of the document format meta information Thus, why not add other meta information link or inclusion. For instance, to link or include RDF statements about the document. This way we can achieve what Biztalk is trying to achieve but in a more standard way. This could be done with: a) a processing instruction as for style sheets(ex: if linked <?xml-meta href="mymeta.rdf" ?> or if included <?xml-meta href="#rdf"?> ) b) as a specialized element (ex: <rdf:RDF>) Note about (b). If it is true that validation do not involve foreign name spaces like it is the case for the "xsl" name space, then we can already include in a document a <rdf:RDF> section without affecting its structure and therefore without affecting its validation with a DTD or schema. Therefore, if we can include a <rdf:RDF> element, then we can answer to the questions biztalk is trying to answer. Example: <?xml version="1.0"?> <?xml-stylesheet href="#style" type="text/xsl" media="screen"?> <!DOCTYPE MyInvoice .... the doc type content here > <MyInvoice> <xsl:stylesheet id="style" version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> ....the style sheet content here... </xsl:stylesheet> <rdf:RDF> <biztalk:from>your humble servant</biztalk:from> <------ from whom (or what) is this document coming from? <biztalk:to>a potential buyer</biztalk:to> <------------ to whom (or what) is this document going to? <biztalk:procurement>billing</biztalk:procurement> <---- In which process is this document involved? .....more meta info about the document here .... </rdf:RDF> .... the document content here..... </MyInvoice> Or if the industry would agree on a common messaging system. We could then propose a set of properties like the librarian people did with the Dublin core. Interesting things to note about the suggestion: ------------------------------------------------ a) the document is not transformed into a fragment and included in an other document. we instead included meta information about the document. The document kept its integrity. b) A common task group could define a set of properties for documents used for messaging. c) we leverage the standards, we are not creating new ones or letting a manufacturer set the rules. Note to Tim [Berners-Lee] ------------------------ To create the semantic network, we need to be able to associate (or include) meta information to the documents. On the web, document are transferred from a server to a client with rendition instructions. Why not then also include Meta information about this document so that the client gets the context for this document, or meta information about this document. The key word here is "context". In witch context this document is living in. Can we add some meaning to this document existence? But Tim, if I where rich enough I would be member of W3C and would propose what I just mentioned in this document. But the only thing I can do is sing "if I where a rich man...". I can be part of a IETF group because I can afford it (its free) or be part of ISO (its also free) but not part of W3C (its not free). But what is important though, is not my W3C membership or my membership to a golf club :-) It is that we start to discuss about the inclusion of meta information in documents (as links or included). Make it clear that the validation process for parsers do not concern foreign name space or standard name spaces like "xsl" or "rdf" (the XSL name space is a good start to illustrate this fact). Make it clear that something like biztalk is trying to achieve is possible with the existing standards without affecting the document integrity or structure. I do not say here to show that Microsoft is wrong. I say here to show how something like biztalk is trying to acheive is already part of the XML standards. Cheers Didier PH Martin mailto:martind@n... http://www.netfolder.com xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i... Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1 To unsubscribe, mailto:majordomo@i... the following message; unsubscribe xml-dev To subscribe to the digests, mailto:majordomo@i... the following message; subscribe xml-dev-digest List coordinator, Henry Rzepa (mailto:rzepa@i...)
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format