380 likes | 1.01k Views
Lee H. Burstein, President 2525 Justin Lane Wilmington, DE 19810-2223 302-477-0180. Introduction to XML for SOA. Topics. Introduction Where used Structure What is neeeded Short comings How can we use it. Introduction. Introduction. It’s really e X tensible M arkup L anguage
E N D
Lee H. Burstein, President 2525 Justin Lane Wilmington, DE 19810-2223 302-477-0180 Introduction to XML for SOA Lburst@dynamicsys.com http://www.dynamicsys.com
Topics • Introduction • Where used • Structure • What is neeeded • Short comings • How can we use it Lburst@dynamicsys.com http://www.dynamicsys.com
Introduction Lburst@dynamicsys.com http://www.dynamicsys.com
Introduction • It’s really eXtensible Markup Language • A set of standards defining a toolkit for describing data • HTML describes how information is displayed • Both use tags • XML tags tend to be user defined, must be balanced and is highly structured • Need a Schema or DTD Lburst@dynamicsys.com http://www.dynamicsys.com
Where Used Lburst@dynamicsys.com http://www.dynamicsys.com
Where Used? • US Government • IRS • DOD • SEC • Compliment/replacement for EDI • Healthcare, banks, retail, wholesale • RPC • SOAP • Web services • SOA • Represent multivalue data in a relational database Lburst@dynamicsys.com http://www.dynamicsys.com
For Example • XBRL • eXtensible Business Reporting Language • Standard tags for financial reporting • Period, Current Assets, Balance Sheet, etc. • www.serence.com, download Klipfolio • Uses XML to define properties • FusionWare XML Server • Uses XML to combine data from dissimilar data sources into one web presentation • Oracle, DB2, SQL Server have XML data types Lburst@dynamicsys.com http://www.dynamicsys.com
Structure Lburst@dynamicsys.com http://www.dynamicsys.com
Structure • Text document containing balanced, nested tags starting with an XML declaration • Tags denote fields and are self describing • Tags can have attributes Lburst@dynamicsys.com http://www.dynamicsys.com
Special tag containing Processing instructions. Begins with <? Ends with ?> Processing Tag Structure • <? processing instructions ?> Lburst@dynamicsys.com http://www.dynamicsys.com
Opening tag Element Closing tag Data Tag Structure • <TagName>data</TagName> Lburst@dynamicsys.com http://www.dynamicsys.com
Attribute Data Tag Structure • <TagName RecKey=12345> • <Attr1>data1</Attr1> • <Attr2>data2</Attr2> • </TagName> Lburst@dynamicsys.com http://www.dynamicsys.com
XML Declaration Tag • <?xml version="1.0" encoding="ISO-8859-1"?> • This identifies the document as XML conforming to version 1.0 specification • Using character encoding for Latin-1 Lburst@dynamicsys.com http://www.dynamicsys.com
Multivalue Data Comment XML Data <?xml version=“1.0” encoding=“ISO-8859-1”?> <Record ID=123> <FirstName>Lee</FirstName> <LastName>Burstein</LastName> <!--Here comes multivalue data --> <Phones> <Phone>3024770180</Phone> <Phone>3025551212</Phone> <Phones> </Record> Lburst@dynamicsys.com http://www.dynamicsys.com
Namespaces • Namespaces can be defined to prevent tag naming conflicts • A tag associated with a namespace helps guarantee its uniqueness Lburst@dynamicsys.com http://www.dynamicsys.com
Namespaces <dsi:Customer xmlns:dsi=“http://www.dynamicsys.com/Cust”> <dsi:Record ID=1234> <dsi:FirstName>Lee</dsi:FirstName> </dsi:Record> </dsi:Customer> <f:Customer xmlns:f=“http://www.somewhere.com/stuff”> <f:Record ID=1234> <f:FirstName>Sam</f:FirstName> <f:Record> </f:Customer> Lburst@dynamicsys.com http://www.dynamicsys.com
What Is Needed Lburst@dynamicsys.com http://www.dynamicsys.com
What is needed? • XML describes data only • No display information • What is displayed • How is it displayed • No validation Lburst@dynamicsys.com http://www.dynamicsys.com
DTD • Document Type Definition • This is the old way of describing and validating XML • Cannot support data types or complex relationships • The DTD is referenced in the XML document • <!DOCTYPE Customer SYSTEM “Cust.dtd”> • An error is generated if your XML does not conform to your DTD Lburst@dynamicsys.com http://www.dynamicsys.com
XML Schema • W3C recommendation • DTD alternative written in XML • Validates XML • Supports data types • Can define data patterns, ranges, defaults • More powerful, understandable and flexible that DTDs • Stored in an XSD file Lburst@dynamicsys.com http://www.dynamicsys.com
XSD Schema <schema> <element name=“Name” type=“string” id=“Name”/> <element name=“HireDate” type=“date” id=“HireDate”/> </schema> Lburst@dynamicsys.com http://www.dynamicsys.com
XSL • eXtensible Stylesheet Language • Stylesheet language (like CSS) for XML • You will use a combination of Xpath, XSLT and XSL-FO to • Select the part of the XML document to display • Transform it • Format it Lburst@dynamicsys.com http://www.dynamicsys.com
Xpath • Query language for extracting elements from an XML document • Result is dependant upon where you are in the XML document • The same syntax could return different results Lburst@dynamicsys.com http://www.dynamicsys.com
XSLT • eXtensible Stylesheet Language for Transformation • Select the value of one node • Select the values of all nodes of the same name • Conditionally select value • Sort results Lburst@dynamicsys.com http://www.dynamicsys.com
XSL-FO • XSLFormatting Objects • Defines page layout, regions of a page • Output can be a variety of formats • PDF • RTF • TXT • PostScript Lburst@dynamicsys.com http://www.dynamicsys.com
Short Comings Lburst@dynamicsys.com http://www.dynamicsys.com
Short comings • Remember, this is a standard that continues to evolve • Requires bandwidth • Heavyweight protocol • There is a lot to put together Lburst@dynamicsys.com http://www.dynamicsys.com
How Can We Use It Lburst@dynamicsys.com http://www.dynamicsys.com
How can we use it? • Quite easy to write a program to export data in a proper XML structure • Most, if not all, databases have tools to read and write XML data using a XSL or DTD • Relational data bases now have XML data type • SOAP • Web Services • SOA Lburst@dynamicsys.com http://www.dynamicsys.com
SOAP • Simple Object Access Protocol • XML based • Can be used for • Messaging systems • RPC • Distributed processing • Structure is quite specific • Cannot use DTD’s Lburst@dynamicsys.com http://www.dynamicsys.com
Web Services • Uses SOAP, XML (Web Service Description Language), HTTP • An object’s methods are publicly exposed • You can use them in your applications • You can expose portions of you application to the world Lburst@dynamicsys.com http://www.dynamicsys.com
SOA • Service Oriented Architecture • Collection of services that communicate with each other • Services are loosely coupled • From different applications • On different servers • Using different databases • Using XML and Web Services to communicate Lburst@dynamicsys.com http://www.dynamicsys.com
Can I Do This? • Sure! • All multivalue applications can be accessed via .net • All multivalue applications can be accessed via java • All multivalue applications can be accessed via XML • You may need to separate screen I/O from business logic Lburst@dynamicsys.com http://www.dynamicsys.com
Why Would I Want To? • You control what discrete portions of your application are available via SOA • Improve customer and vendor communication and access to information • Horizontal parts of your application can be generally available increasing your exposure • Provide On-Demand access to your application Lburst@dynamicsys.com http://www.dynamicsys.com
Resources • www.w3schools.com • msdn.microsoft.com/xml • www.xml.com • www.xmethods.net • www.w3.org • www.develop.com/xml • www.xbrl.org • http://webservices.xml.com/pub/a/ws/2003/09/30/soa.html • http://www.service-architecture.com/ Lburst@dynamicsys.com http://www.dynamicsys.com
Lburst@dynamicsys.com http://www.dynamicsys.com