1 / 56

Introduction to XML, SOAP and Biztalk

Introduction to XML, SOAP and Biztalk. M. Arie Leeuwesteijn ariele@microsoft.com. Content. XML use cases What is XML ? XML syntax Document definitions and validation XML parsers XSL translations SOAP, a.k.a. Web Services Biztalk overview. Objectives. Reading XML documents

ernst
Télécharger la présentation

Introduction to XML, SOAP and Biztalk

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to XML, SOAP and Biztalk M Arie Leeuwesteijn ariele@microsoft.com

  2. Content • XML use cases • What is XML ? • XML syntax • Document definitions and validation • XML parsers • XSL translations • SOAP, a.k.a. Web Services • Biztalk overview

  3. Objectives • Reading XML documents • Understanding XML terminology and acronyms • Examples of XML applications

  4. XML Use Cases • Application integration • Generic format for data transfer for E-commerce and other web applications • Storing and accessing structured data

  5. Application Integration • High costs and effort because application data is • Proprietary • Incompatible • Undocumented legacy data • Different data formats

  6. Same data, different format “15”   0x0F fifteen 15.00 XV 1111 0001 0101

  7. The Internet • The ultimate integration environment • Many different systems and platforms • Time to market measured in internet time • Today XML is already integrated in • Operating systems • Applications • Databases • Development tools • Browsers • …

  8. XML design goals • Flexible, extensible and support for wide variety of applications • Must be simple and light weight • Straightforwardly usable over the internet

  9. What is XML? • Meta language for self describing structured data • Consists of data and tags • Extensible language, users can define their own specific tags • Version 1.0 specification approved by W3C as recommendation

  10. XML History • Subset of Standard Generalized Markup Language (SGML) • Far less complex • 20% of SGML features • 80% of SGML functionality • (XML spec is 26 pages, SGML 500+)

  11. XML Subset of SGML Extensible Focus on data HTML SGML application Fixed Focus on presentation XML vs. HTML

  12. XML Document Structure XML declaration (processing instructions) <?xml version=“1.0” ?> <!DOCTYPE name [ … ]> Document definition (optional) <doc_root_element> <data_element> … </data_element> </doc_root_element> Document data

  13. Basic XML syntax • Human “readable” text • Support for Unicode character set • Syntax is stricter than for example HTML

  14. Tags And Data • Document consists of data marked up by tags • Tags describe meaning and structure of data • An element is a group of start-tag/end-tag with the data in between <Book>Essential XML</Book> Start-tag Data End-tag

  15. Start- and End-Tags • Element must have a matching start- and end-tag<one>hello</one><two>world</two> <one>hello <two>world</two>  • Empty elements can be written as <tag></tag>  <tag/>  • Tags are case sensitive

  16. XML Basic Syntax • XML elements can have nested child elements to structure to structure document in levels • <outer>  <inner>text</inner></outer><outer>  <inner></outer></inner>

  17. Root element • A XML document must have one root element: <library>  <book>XML in action</book> <book>Essential XML</book></ library > < book > XML in action </ book > < book > Essential XML </ book > • What is the document root ?

  18. Comments • Syntax for comments is:<! -- This is a comment --> • Comments be placed everywhere in the document except inside element tags<tag <!-- comment --> > 

  19. Attributes • Attributes associate named values to an element • Attributes are part of the start-tag <publication type=“book”> <title>XML in action</title> <price currency=“USD”>49.99</price> </ publication > • Values must be double or single quoted

  20. Processing instruction Book element Root Child elements of Book Currency attribute for price element XML Example <?xml version=“1.0” encoding=”UTF-8” ?> <library> <book> <title>XML in action</title> <price currency=“USD”>49.99</price> <isbn>0-7356-0562-9</isbn> <rating scale=“5”>3</rating> </book> <book> <title>Essentail XML</title> <price currency=“USD”>34.95</price> <isbn>0-201-70914-7</isbn> <rating scale=“5”>4</rating> </book> </ library >

  21. Valid vs. Well Formed XML • Well formed:Valid XML syntax • Valid document:Content of document valid conform specification of document • A valid document is automatically a well formed document • A well formed document is not always a valid document

  22. Document specifications • Describes structure and contents of XML document • Parsers can use schema’s to validate a document • Validation is optional • Think if/where validation should take place • Document Type Definitions (DTD), part of XML 1.0 standard

  23. DTD example <?xml version=“1.0”?> <!DOCTYPE CATALOG [ <!ELEMENT BOOK (TITLE, PRICE)> <!ELEMENT TITLE(#PCDATA)> <!ELEMENT PRICE(#PCDATA) ]> < CATALOG > <BOOK> <TITLE>XML in action</TITLE> <PRICE>49.95</PRICE> </BOOK> </ CATALOG >

  24. DTD Issues • Good DTD’s are difficult to write (Extended Backus Naur Form notation) • DTD’s are not extensible and many limitations • Most important limitation is lack of data types

  25. XML Schemas • Alternative for DTD’s • XML is used to describe the structure of the document, no need to learn new language or use other tools • Lifts most limitations of DTD’s (data types ) • XSD, • XML schema specification • W3C recommendation • XDR • Early MS version of XSD

  26. XML-Data Schemas simple example <Schema ><ElementType name=“title" content="textOnly“> <ElementType name=“isbn" content="textOnly”/> <ElementType name=“book" content="eltOnly"> <element type=“title"/> <element type=“isbn"/> </ElementType> </Schema>

  27. XML Parsers • Parse XML document • Validate XML syntax (always) • Validate content (optional) • Access data • Update data • Translate data (XSL)

  28. XML Parser types Two different parser models • Document Object Model (DOM) • Complete document in memory • Easy access for applications • Queries on data • Translations • Simple API for XML (SAX) • Generates event per parsed element • Large documents • Batch processing • More difficult to use than DOM

  29. Document Object Model • DOM defines logical structure of a parsed XML document • DOM defines how data can be accessed and manipulated • Provides standardized API (level 1, 2 and 3) • DOM can also be used to create or modify XML documents

  30. Document Object Model document A node can contain child nodes or text root node Nodelists node node node node node node node

  31. Querying the DOM through XPath • XPath declarative language for locating nodes and fragments in XML trees • Allow you to locate nodes by: • Absolute or relative position • Element or attribute types • Element or attribute values • Combinations using boolean operators • Also used in XSL, XPointer and XLink specifications

  32. XPath examples • All books in the current contextbook (equal to ./book) • All books anywhere in the document//book • All books with specified element valuebook[title=“Essential XML”] • or a specified attribute valuebook[@type=“paperback”] • or just having the attributebook[@type] • The first 3 booksbook[index()<4]

  33. Extended Stylesheet Language XSL • Similarities with CSS, but more powerful • Applies translations to data that matches a pattern • Close to becoming a standard (draft status W3C)

  34. XSL translations • XSLT is based on pattern matching and templates • A template rule consist of a pattern and a template • Processor finds best matching pattern and applies related template for translation

  35. XSL stylesheet example <?xml-stylesheet type="text/xsl“ href=“books.xsl"?> <books> <book><title>Essential XML</title></book> <book><title>XML in action</title></book></books> XML Data + <xsl:stylesheet….>… <xsl-template match=“title”> <tr><td><b><xsl-value-of select=“text()”/></td></tr>…</xsl:stylesheet> XSLstyle sheet (partial) = HTML output <tr><td><b>Essential XML</td></tr><tr><td><b>XML in action</td></tr>

  36. XSL usage • Formatting and displaying XML data as HTML, PDF, etc. • Converting XML document: • Other XML document structures (XML->XML) • Other data formats (CSV, Edifact) • MS Biztalk mapping editor generate XLS to convert XML, Flat file and Edifact documents to XML and back.

  37. XML Applications • XML in real applications • Simple Object Access Protocol • Microsoft Biztalk 2000 Note this is not a training on SOAP and Biztalk

  38. Software integration • Today’s middleware • Vendor and language depended • COM+ v.s. EJB • Interoperability problems • Was not designed to use over the internet • Reliable communications • Firewalls • Complex

  39. SOAP • Simple Object Access Protocol • Invoking object methods using XML and HTTP • Specification written by Microsoft, IBM, Software and Developmentor • Vendor and middleware independency (the end of middleware battles ?) • Supported and available today from most major vendors (MS,IBM,IONA etc.) • Core technology in Microsoft .NET web services

  40. 2 3 Soap proxy Soap listener 4 1 XML/HTTP 6 5 Client application Component Vendor A Vendor B 1. Client application makes call 2. Soap proxy intercepts call and constructs and transmits XML request message 3. Soap listener receives, parses and validates request 4. Listener calls component message 5. Listener takes result of call and constructs and transmits XML response 6. Proxy receives and parses response and returns result to client SOAP This whole process is transparent for client and component

  41. Simple SOAP Request POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8“ Content-Length: 323 SOAPAction: Some-Namespace-URI#GetLastTradePrice <SQ:Envelope xmlns: SOAP ="http://schemas.xmlsoap.org/soap/envelope/" SQ :encodingStyle="http://schemas.xmlsoap.org/soap/encoding/“> < SQ :Body> <m:GetLastTradePrice xmlns:m="Some-Namespace-URI"> <symbol>MSFT</symbol> </m:GetLastTradePrice> </ SQ :Body> </ SQ :Envelope> HTTP headers Body GetLastTradePrice(“MSFT”) Envelope

  42. Simple SOAP Response HTTP headers HTTP/1.1 200 OKContent-Type: text/xml; charset="utf-8“Content-Length: nnnn <SP:Envelopexmlns:SP="http://schemas.xmlsoap.org/soap/envelope/"SP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SP:Body> <m:GetLastTradePriceResponse xmlns:m="Some-Namespace-URI"> <Price>160.95</Price> </m:GetLastTradePriceResponse> </SP:Body> </SP:Envelope> Body Result Envelope

  43. What Is Biztalk ? • Biztalk Community (Biztalk.org) • Library for business document specification • Stimulate reuse • Submit and retrieve document specifications • 400+ third-party XML business documents • 150+ registered organizations • Biztalk Framework • XML Specification for document routing and exchange (SOAP 1.1 compliant) • Biztalk Server • Microsoft server product for processing, transforming, signing, routing of documents

  44. B2B challenges Customers Suppliers My company

  45. Business to Business • Different data format (EDI, CSV, XML…) • Different document structures • Different protocols • Different encryption technologies • Different operating systems • Legacy ERP and other back office systems

  46. Biztalk Server • Design time tools • Schema, transformation definition • Document processing server • Messaging • Communication • Transformation • Routing • Encryption • Workflow • Orchestration

  47. Biztalk Mapper XSL map XSL Map Biztalk Server Internal XML doc InternalXML doc XSL Engine Docspec Parser Serializer Docspec XML doc EDI doc CSV file XML doc EDI doc CSV file Biztalkeditor Inbounddocument Outbounddocument XML in Biztalk

  48. XML in Biztalk Visio Diagram Compile XLANG schedule Scheduler Applications XLANG Runtime Biztalk Messaging

  49. XML in Biztalk Server • XML for describing all in- and outbound business documents as an extended Data-Schema • XSL for document translations • XML as internal format for all processed documents • XLANG workflow schedules

  50. Biztalk demos • Biztalk Editor • Biztalk Mapper • Biztalk Orchestration

More Related