1 / 52

XML & Web Services

XML & Web Services. Structuring Web Documents: Cascading Style Sheets & XML. Structured Formatting Introduction to CCS Structured Web Document Introduction to XML. XML. XML DTD CSS XSL. XML What is it?. e X cellent M arketing L ingo e X citing M odern L anguage

yoko
Download Presentation

XML & Web Services

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. XML & Web Services

  2. Structuring Web Documents:Cascading Style Sheets & XML Structured Formatting Introduction to CCS Structured Web Document Introduction to XML

  3. XML • XML • DTD • CSS • XSL

  4. XML What is it? • eXcellent Marketing Lingo • eXciting Modern Language • eXcessive aMount of pubLicity

  5. Data stream in a typical interface… “ABC47-Z”, “100”, “STL”, “C”, “3”, “28” Same data stream in XML… <INVENTORY> <PART_NUM>ABC47-Z</PART_NUM> <QUANTITY>100</QUANTITY> <WAREHOUSE>STL</WAREHOUSE> <ZONE>C</ZONE> <AISLE>3</AISLE> <BIN>28</BIN> </INVENTORY> Example: Self-describing data

  6. What’s so great about XML? • The data is self-describing • The meaning of the data is included: identifiers surround every bit of data, indicating what it means • Far more flexible method of representing transmitted information • Batched orders sent together can have different fields and format without breaking apps on each end • Open, standard technologies for moving, processing and validating the data • The XML parser built into IE5 can automatically parse, validate, and feed the information to an application, instead of every application having to include this functionality

  7. What does XML look like? <?xml version=“1.0”?>(prolog) <Book>(root element) <Author>Vetter, R.</Author> <Author>Ward, D.</Author> <Author>Lugo, G.</Author> <Title>H/PCs : Ignore the Hype</Title> <Publisher>RDG Publishing Inc.</Publisher> <Year>2003</Year> </Book> Case Sensitive! <book> vs. <Book> vs. <BOOK> = 3 different tags!!!!

  8. XML • eXtensible Markup Language • Defines data • Improved “CSV” format • Recordset (Rows & Columns) • Data can be hierarchical • Each file can contain multiple record sets • See customer.xml

  9. Valid • Valid documents are well-formed documents that conform to a DTD. • When the document is parsed by an application, it can be checked for the presence of required portions. • There are many programs, known as parsers, available for XML. Some of these parsers are able to validate a XML document against a DTD (validating parsers such as IE 5).

  10. Explanation - XML Document • A XML document contains two parts • Document type definition (DTD) - specify the document structure, entities, and type • Markup file - the application of the type to actual data (text) DTD Markup file

  11. Explanation - DTD • This example defines the following document tree structure: COURSELIST STUDENT FIRSTNAME LASTNAME CLASSNAME

  12. A XML Document Example <?xml Version=“1.0” Encoding=“UTF-8”?> <!DOCTYPE simple [ <!ELEMENT COURSELIST(STUDENT,CLASSNAME+)> <!ELEMENT STUDENT (FIRSTNAME,LASTNAME)> <!ELEMENT FIRSTNAME (#PCDATA)> <!ELEMENT LASTNAME (#PCDATA)> <!ELEMENT CLASSNAME (#PCDATA)> <!ELEMENT description “This is a very simple example”> ]> <COURSELIST> <STUDENT> <FIRSTNAME> Susan </ FIRSTNAME > <LASTNAME> Glass </ LASTNAME > </STUDENT > <CLASSNAME> CIS 8110 Intro. To IS </CLASSNAME> </ COURSELIST>

  13. A XML Document Example <COURSELIST> <STUDENT> <FIRSTNAME> Jeo </ FIRSTNAME > <LASTNAME> Suess </ LASTNAME > </STUDENT > <CLASSNAME> CIS 8110 Intro. To IS </CLASSNAME> <CLASSNAME> CIS 8120 OO Prototyping </CLASSNAME> <CLASSNAME> CIS 8140 Intro. To DBMS </CLASSNAME> </ COURSELIST> < COURSELIST> <STUDENT> <FIRSTNAME> John </ FIRSTNAME > <LASTNAME> Smith </ LASTNAME > </STUDENT > <CLASSNAME> CIS 8110 Intro. To IS </CLASSNAME> <CLASSNAME> CIS 8140 Intro. To DBMS </CLASSNAME> </ COURSELIST>

  14. DTD • Document Type Definition • Defines structure of an XML document • Can be defined within XML or linked in • <!DOCTYPE books SYSTEM “books.dtd”> • <!DOCTYPE books SYSTEM http://wareham.eci.gsu/xmlcases/books.dtd”> • DTDs still difficult to read and program XML schemas on the way from http://www.w3.org/tr/ • XML schemas USE XML syntax, not EBNF

  15. Using DTD and XML Documents DTD <!DOCTYPE books [ <!ELEMENT books (book)*> DTD <!DOCTYPE books [ <!ELEMENT books (book)*> XML XML

  16. Explanation - Data View • The data in the document may come from a database: FIRSTNAME LASTNAME CLASSNAME Suzan Glass CIS 8110 Intro. To IS Joe Suess CIS 8110 Intro. To IS Joe Suess CIS 8120 OO Prototyping Joe Suess CIS 8140 Intro. To DBMS John Smith CIS 8110 Intro. To IS John Smith CIS 8140 Intro. To DBMS

  17. What’s Missing in DTDs? • Cannot manipulate ‘DTD’s like XML documents • Syntax different from XML documents • Lack of data typing • XSL: Schemas • Data Typing • Open/Closed Models • Can use XML tools with XML schemas

  18. An Example Schema <?xml version = "1.0"?> <!-- Microsoft XML Schema showing the ElementType --> <Schema xmlns = "urn:schemas-microsoft-com:xml-data"> <ElementType name = "message" content = "textOnly" model = "closed"> <description>Text messages</description> </ElementType> <ElementType name = "greeting" model = "closed“ content = "mixed" order = "many"> <element type = "message"/> </ElementType> <ElementType name = "myMessage" model = "closed“ content = "eltOnly" order = "seq"> <element type = "greeting" minOccurs = "0“ maxOccurs = "1"/> <element type = "message" minOccurs = "1" maxOccurs = "*"/> </ElementType> </Schema>

  19. A Corresponding Instance <?xml version = "1.0"?> <!-- Introduction to Microsoft XML Schema --> <myMessage xmlns = "x-schema:intro-schema.xml"> <greeting>Welcome to XML Schema! <message>This is the first message.</message> </greeting> <message>This is the second message.</message> </myMessage>

  20. Data Types in Schemas <?xml version = "1.0"?> <Schema xmlns = "urn:schemas-microsoft-com:xml-data" xmlns:dt = "urn:schemas-microsoft-com:datatypes"> <ElementType name = "bookstore" content = "eltOnly“ order = "many" model = "closed"> <element type = "shipping"/> <element type = "book"/> </ElementType> <ElementType name = "shipping" content = "eltOnly" order = "seq" model = "closed"> <AttributeType name = "shipID" dt:type = "id" required = "yes"/> <attribute type = "shipID"/> <element type = "duration"/> </ElementType> <ElementType name = "duration" content = "textOnly" model = "closed" dt:type = "date"/> <ElementType name = "book" content = "textOnly" model = "closed“dt:type = "string"> <AttributeType name = "shippedBy" dt:type = "idref"/> <attribute type = "shippedBy"/> </ElementType> </Schema>

  21. Data Types in Schemas 2 <?xml version = "1.0"?> <Schema xmlns = "urn:schemas-microsoft-com:xml-data" xmlns:dt = "urn:schemas-microsoft-com:datatypes"> <ElementType name = "inventory" content = "eltOnly" model = "closed"> <element type = "book" minOccurs = "0" maxOccurs = "*"/> </ElementType> <ElementType name = "book" content = "eltOnly" order = "seq" model = "closed"> <AttributeType name = "isbn" dt:type = "string" required = "yes"/> <attribute type = "isbn"/> <AttributeType name = "inStock" dt:type = "enumeration" dt:values = "yes no" default = "no"/> <attribute type = "inStock"/> <element type = "name"/> <element type = "price"/> <group order = "one"> <element type = "quantity"/> <element type = "available"/> </group> </ElementType> <ElementType name = "name" content = "textOnly" model = "closed" dt:type = "string"/> <ElementType name = "price" content = "textOnly" model = "closed" dt:type = "float"/> <ElementType name = "quantity" content = "textOnly" dt:type = "int" model = "closed"/> <ElementType name = "available" content = "textOnly" dt:type = "date" model = "closed"/> </Schema>

  22. A Corresponding Instance <?xml version = "1.0"?> <!-- Data type example --> <inventory xmlns = "x-schema:inventory-schema.xml"> <book isbn = "0-13-012507-5" inStock = "yes"> <name>Java How to Program 3/e</name> <price>68.00</price> <quantity>200</quantity> </book> <book isbn = "0-13-028418-1" inStock = "no"> <name>Perl How to Program</name> <price>68.00</price> <available>2000-12-15</available> </book> </inventory>

  23. Microsoft XML Parser (MSXML)Provides core XML services • DOM parser that takes a text stream and turns it into a XML tree structure • Validating parser for DTD’s and XML Schemas • XSLT processor that applies XSLT rules to XML to product output • SAX (Simple API for XML) parser optimized for handling large documents and high-throughput scenarios

  24. XSL • eXtensible Stylesheet Language • Template for displaying XML data • Client-side (browser dependent) • Server-side (browser independent) • See customer.xsl, customer_xsl.xml, customer_transform.xml

  25. XML Auction Demo

  26. XML and HL7 • Health Level 7 – Application level protocol for communicating medical data • Clinical data • ADT (admission/discharge/transfers) • ORDERS • REPORTS • Administrative data • Billing • Insurance

  27. An HL7 message MSH|^~\&| LABGL1|| DMCRES|| 199812300100|| ORU^ R01| LABGL1199510221838581| P| 2.3 ||| NE| NE PID||| 6910828^ Y^ C8|| Newman^ Alfred^ E|| 19720812| M|| W| 25 Centscheap Ave^^ Whatmeworry^ UT^ 85201^^ P||( 555) 777- 6666|( 444) 677- 7777|| M|| 773789090 OBR|| 110801^ LABGL| 387209373^ DMCRES| 18768- 2^ CELL COUNTS+ DIFFERENTIAL TESTS (COMPOSITE)^ LN||| 199812292128|| 35^ ML||||||| IN2973^ Schadow^ Gunther^^^^ M D^ UPIN ||||||||||^ Once|||||| CA20837^ Spinosa^ John^^^^ MD^ UPIN OBX|| NM| 4544- 3^ HEMATOCRIT (AUTOMATED)^ LN|| 45|| 39- 49 |||| F||| 199812292128|| CA20837 OBX|| NM| 789- 8^ ERYTHROCYTES COUNT (AUTOMATED)^ LN|| 4. 94| 10* 12/ mm3 |4.30- 5.90|||| F||| 199812292128|| CA20837 110801^ LABGL| 387209373^ DMCRES| 18768- 2^ CELL COUNTS+ DIFFERENTIAL TESTS (COMPOSITE)^ LN||| 199812292128|| 35^ ML||||||| IN2973^ Schadow^ Gunther^^^^ M D^ UPIN ||||||||||^ Once|||||| CA20837^ Spinosa^ John^^^^ MD^ UPIN NM| 4544- 3^ HEMATOCRIT (AUTOMATED)^ LN|| 45|| 39- 49 |||| F||| 199812292128|| CA20837 NM| 789- 8^ ERYTHROCYTES COUNT (AUTOMATED)^ LN|| 4. 94| 10* 12/ mm3 |4.30- 5.90|||| F||| 199812292128|| CA20837

  28. The XML <Labrs3P00 T=" Labrs3P00"> <Labrs3P00. PTP T=" PTP"> <PTP. primrPrsnm T=" PN"> <fmn T=" ST"> Sample</ fmn> <gvn T=" ST"> George</ gvn> <mdn T=" ST"> H</ mdn> </ PTP. primrPrsnm> </ Labrs3P00. PTP> <Labrs3P00. SIOO_ L T=" SIOO_ L"> <SIOO_ L. item T=" SIOO"> <SIOO. filrOrdId T=" IID"> LABGL110801</ SIOO. filrOrdId> <SIOO. placrOrdId T=" IID"> DMCRES387209373</ SIOO. placrOrdId> <SIOO. InsncOf T=" MSRV"> <MSRV. unvSvcId T=" CE"> 18768- 2</ MSRV. unvSvcId> <MSRV. svcDesc T=" TX"> CELL COUNTS+ DIFFERENTIAL TESTS (COMPOSITE)</ MSRV. svcDesc> </ SIOO. InsncOf> <SIOO. SRVE_ L T=" SRVE_ L"> <SRVE_ L. item T=" SRVE"> <SRVE. name T=" CE"> 4544- 3</ SRVE. name> <SRVE. svcEvntDesc T=" ST"> HEMATOCRIT (AUTOMATED)</ SRVE. svcEvntDesc> <SRVE. CLOB T=" CLOB"> <CLOB. obsvnValu T=" NM"> 45</ CLOB. obsvnValu> <CLOB. refsRng T=" ST"> 39- 49</ CLOB. refsRng> <CLOB. clnRlvnBgnDtm T=" DTM"> 199812292128</ CLOB. clnRlvnBgnDtm> </ SRVE. CLOB> <SRVE. spcmRcvdDtm T=" DTM"> 199812292315</ SRVE. spcmRcvdDtm> </ SRVE_ L. item> </ SIOO_ L. item> </ Labrs3P00. SIOO_ L> </ Labrs3P00>

  29. Technology Alphabet SoupHTML, DHTML, CSS, XML, XSL, DOM

  30. Summary • CSS allows structuring formatting of HTML document • Easy to maintain formatting information • XML moves web documents into new level • Impose object structure into web documents • Separate presentation from data • Can support multiple presentations for a same set of data • Document object model (DOM) defines programming interface for both HTML & XML

  31. HTML, XML HTML, XML HTML HTML Generation 1Static HTML Generation 2Web Applications Generation 3Web Services Web Services OverviewEvolution of the Web

  32. Web Services OverviewApplication Model Partner Web Service Other Web Services Partner Web Service Internet + XML End Users YourCompany.com Application Business Logic Tier Data Access and Storage Tier Other Applications

  33. Web Services Overview Portals Ads Mail Other Svcs Calendar Weather Finance News

  34. Web Services OverviewSample Web Services • E-commerce: order books, office supplies, other products • Track packages: UPS, FedEx • Weather • Maps • Telephone redirection, customizable rules and messages

  35. CreditResponse InventoryResponse CreditCheck Purchase Order ReserveInventory Invoice Example Problem Space Credit Service Consolidate Results PO Service Client Inventory Service

  36. Web Service Demos • WebMethods.net • http://www.webservicelist.com/ • http://www.xmlwebservices.cc/index_Samples.htm#Top • http://www.asitis.co.uk/web-services/

  37. Underlying TechnologiesWeb Services Stack Directory: Publish & Find Services: UDDI Inspection: Find Services on server: DISCO Description: Formal Service Descriptions: WSDL Wire Format: Service Interactions: SOAP Universal Data Format: XML Ubiquitous Communications: Internet Simple, Open, Broad Industry Support

  38. Underlying TechnologiesWeb Services Stack UDDI Directory http://www.uddi.org UDDI or other directory service Locate a Service Link to Discovery Document (XML) Inspection http://www.ibuyspy.com/ibuyspy.disco DISCO Request Discovery Document Return Discovery Document (XML) Web Service Client WSDL Description http://www.ibuyspy.com/ibuyspycs/InstantOrder.asmx?wsdl Request Service Description Web Service Return Service Description (XML) SOAP Wire Format Request Service Return Service Response (XML)

  39. SOAP Overview • A lightweight protocol for exchanging information in a distributed, heterogeneous environment • It enables cross-platform interoperability • Interoperable • OS, object model, programming language neutral • Hardware independent • Protocol independent • Works over existing Internet infrastructure

  40. SOAPMessage Structure The complete SOAP message SOAP Message Protocol binding headers Headers <Envelope> encloses payload SOAP Envelope <Header> encloses headers SOAP Header Individual headers Headers <Body> contains SOAP message name SOAP Body Message Name & Data XML-encoded SOAP message name & data

  41. UDDIThe Vision Advanced Discovery via Portals and Marketplaces Marketplace UDDI Registries and Protocol Marketplace Marketplace Search Portal Search Portal Business Users Technical Users

  42. UDDIUDDI Information Model Provider: Information about the entity who offers a service tModel: Descriptions of specifications for services. 1…n Service: Descriptive information about a particular family of technical offerings 0…n Bindings contain references to tModels. These references designate the interface specifications for a service. Binding: Technical information about a service entry point and construction specs 0…n

  43. Web Services Overview Technology Fabric Must Span Companies Too

  44. Underlying TechnologiesXML Is the Glue XML HTML TCP/IP Technology Connecting Applications Connectivity Presentation FTP, E-mail, Gopher Innovation Web Pages Connect the Web Web Services Browse the Web Program the Web

More Related