Introduction XML, Soap and biztalk

clappingknaveSoftware and s/w Development

Dec 14, 2013 (3 years and 7 months ago)

106 views

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


Understanding XML terminology and
acronyms


Examples of XML applications

XML Use Cases


Application integration


Generic format for data transfer for

E
-
commerce and other web applications


Storing and accessing structured data

Application Integration


High costs and effort because application
data is


Proprietary


Incompatible


Undocumented legacy data


Different data formats

Same data, different format

fifteen

XV

“15”

1111

15.00





0x0F

0001 0101

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




XML design goals


Flexible, extensible and support for wide
variety of applications


Must be simple and light weight


Straightforwardly usable over the internet

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

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+)

XML vs. HTML

XML


Subset of SGML


Extensible


Focus on data

HTML


SGML application


Fixed


Focus on presentation

XML Document Structure

<?xml version=“1.0” ?>

<doc_root_element>


<data_element>





</data_element>

</doc_root_element>

<!DOCTYPE name [




]>

Document data

Document definition

(optional)

XML declaration

(processing instructions)

Basic XML syntax


Human “readable” text


Support for Unicode character set


Syntax is stricter than for example HTML

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

End
-
tag

Data

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

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>

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 ?

Comments


Syntax for comments is:


<!
--

This is a comment
--
>



Comments be placed everywhere in the
document except inside element tags


<tag <!
--

comment
--
> >


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


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 >

Root

Book element

Currency attribute for
price element

Processing instruction

Child elements
of Book

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


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

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 >

DTD Issues


Good DTD’s are difficult to write (
E
xtended
B
ackus
N
aur
F
orm notation)


DTD’s are not extensible and many
limitations


Most important limitation is lack of data
types

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

<Schema >


<ElementType name=“title" content="textOnly“>


<ElementType name=“isbn" content="textOnly”/>



<ElementType name=“book" content="eltOnly">



<element type=“title"/>


<element type=“isbn"/>

</ElementType>


</Schema>

XML
-
Data Schemas simple example

XML Parsers


Parse XML document


Validate XML syntax (always)


Validate content (optional)


Access data


Update data


Translate data (XSL)

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

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

Document Object Model

document

root node

node

node

node

node

node

node

node

Node

lists

A node can contain child nodes or text

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

XPath examples


All books in the current context

book (equal to ./book)


All books anywhere in the document

//book


All books with specified element value

book[title=“Essential XML”]


or a specified attribute value

book[@type=“paperback”]


or just having the attribute

book[@type]


The first 3 books

book[index()<4]

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)

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

XSL stylesheet example

<xsl:stylesheet….>




<xsl
-
template match=“
title
”>


<tr><td><b>
<xsl
-
value
-
of select=“text()”/>
</td></tr>



</xsl:stylesheet>

<?xml
-
stylesheet type="text/xsl“ href=“books.xsl"?>


<books>


<book>
<title>
Essential XML
</title>
</book>


<book>
<title>
XML in action
</title>
</book>

</books>

<tr><td><b>
Essential XML
</td></tr>

<tr><td><b>
XML in action
</td
></tr>

XML Data

XSL

style sheet

(partial)

HTML

output

+

=

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.

XML Applications


XML in real applications


S
imple
O
bject
A
ccess
P
rotocol


Microsoft Biztalk 2000


Note this is not a training on SOAP and Biztalk

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


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


SOAP

Vendor A

Vendor B

This whole process is transparent for client and component

Client

application

Component

XML/HTTP

2

2.

Soap proxy intercepts call and constructs and transmits XML request message

Soap

listener

3

3.

Soap listener receives, parses and validates request

4

4.

Listener calls component message

5

6

5.

Listener takes result of call and constructs and transmits XML response

6.

Proxy receives and parses response and returns result to client

Soap

proxy

1

1.

Client application makes call

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>

GetLastTradePrice(“MSFT”)

Envelope

Body

HTTP headers

Simple SOAP Response

HTTP/1.1 200 OK

Content
-
Type: text/xml; charset="utf
-
8“

Content
-
Length: nnnn

<SP:Envelope

xmlns: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>

Result

HTTP headers

Envelope

Body

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

B2B challenges

My company

Suppliers

Customers

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


Design time tools


Schema, transformation definition


Document processing server


Messaging


Communication


Transformation


Routing


Encryption


Workflow


Orchestration


Biztalk Server

Biztalk Server

XSL Engine

XSL

map

XSL

Map

Biztalk

Mapper

Parser

Internal

XML

doc

Serialize
r

Internal

XML

doc

EDI

doc

CSV

file

XML

doc

Inbound

document

EDI

doc

CSV

file

XML

doc

Outbound

document

Doc

spec

Doc

spec

Biztalk

editor

XML in Biztalk

XML in Biztalk

Visio

Diagram

Scheduler

XLANG

Runtime

XLANG

schedule

Applications

Biztalk

Messaging

Compile

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

Biztalk demos


Biztalk Editor


Biztalk Mapper


Biztalk Orchestration

Things to read…

XML in Action

MS
-
Press

ISBN 0735605629

Professional XML

WROX

ISBN 1861003110

Understanding SOAP

SAMS

ISBN 0672319225

Essential XML

Addison Wesley

ISBN 0201709147

Places to go…


http://www.w3c.org


(all mentioned standards)


http://msdn.microsoft.com/xml


(tutorials and reference on xml)


http://msdn.microsoft.com/soap

(tutorials and reference on xml)


http://www.biztalk.org


(Biztalk organization)


<QUESTIONS/>

Biztalk Orchestration

Biztalk Editor

Biztalk Mapper