aalborg university – department of production xml extensible markup language kaj a. jørgensen...

30
Aalborg University – Department of Production XML Extensible Markup Language Kaj A. Jørgensen Aalborg University, Department of Production XML – Extensible Markup Language

Upload: poppy-francis

Post on 24-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Aalborg University – Department of Production

XMLExtensible Markup

Language

Kaj A. Jørgensen

Aalborg University, Department of Production

XML – Extensible Markup Language

Aalborg University – Department of Production

Extensible Markup Language (XML)

• XML: looks like HTML but is more than HTML

• XML will not replace HTML – XML will complement HTML

• XML is extensible – users can define custom tags

• Data can be formatted for displaying with HTML

• With XML, the meaning of data can be represented

• XML is a metalanguage • a language for making new markup languages

• XML is a simplification of Standard Generalized Markup Language (SGML)

• Public software available for XML processing, e.g. i Java

XML – Extensible Markup Language

Aalborg University – Department of Production

XML – Schema Definition and Style Definition

XML Schema and Document Type Definition (DTD)• Separate files defining the structure of XML documents

• Well-formed XML documents folows the rules of XML

• Valid XML documents are well-formed and conforms with a schema file or DTD file

Extensible Style Language (XSL)• Style sheets can be written in XSL

• With XSL, XML documents can be formatted, e.g. in HTML

• Different XSL style sheets can format XML documents differently

XML – Extensible Markup Language

Aalborg University – Department of Production

XML – Extensible Markup Language

HTML Example:<!-- The original html recipe --><HTML><HEAD><TITLE>Lime Jello Marshmallow Cottage Cheese Surprise</TITLE></HEAD><BODY><H3>Lime Jello Marshmallow Cottage Cheese Surprise</H3><P>My grandma's favorite (may she rest in peace).</P><H4>Ingredients</H4><TABLE BORDER="1"><TR BGCOLOR="#308030"><TH>Qty</TH><TH>Units</TH><TH>Item</TH></TR><TR><TD>1</TD><TD>box</TD><TD>lime gelatin</TD></TR><TR><TD>500</TD><TD>g</TD><TD>multicolored tiny marshmallows</TD></TR><TR><TD>500</TD><TD>ml</TD><TD>cottage cheese</TD></TR><TR><TD></TD><TD>dash</TD><TD>Tabasco sauce (optional)</TD></TR></TABLE><H4>Instructions</H4><OL><LI>Prepare lime gelatin according to package instructions...</LI><!-- and so on --></BODY></HTML>

Aalborg University – Department of Production

Hypertext Markup Language (HTML)

Characteristics of HTML:• isn't extensible

• is very display-centric

• isn't directly reusable

• only provides one 'view' of data

• has little or no semantic structure

HTML documents are presented with a browser• View the HTML document with the IE browser:

example: Recipe.html

XML – Extensible Markup Language

Aalborg University – Department of Production

XML tags – User Definable

Start tag:

XML – Extensible Markup Language

Empty tag:

End tag:

Aalborg University – Department of Production

XML – Extensible Markup Language

<?xml version="1.0"?><Recipe>   <Name>Lime Jello Marshmallow Cottage Cheese Surprise</Name>   <Description> My grandma's favorite (may she rest in peace).</Description>   <Ingredients>      <Ingredient>         <Qty unit="box">1</Qty>         <Item>lime gelatin</Item>      </Ingredient>      <Ingredient>         <Qty unit="g">500</Qty>         <Item>multicolored tiny marshmallows</Item>      </Ingredient>      <Ingredient>         <Qty unit="ml">500</Qty>         <Item>Cottage cheese</Item>      </Ingredient>      <Ingredient>         <Qty unit="dash"/>         <Item optional="1">Tabasco sauce</Item>      </Ingredient>   </Ingredients>   <Instructions>      <Step>Prepare lime gelatin according to package instructions</Step>      <!-- And so on... -->   </Instructions></Recipe>

Aalborg University – Department of Production

Characteristics of XML

• Some simple rules must be obeyed:• No unclosed tags

• No overlapping tags – example:<Tomato>Let's call<Potato>the whole thing off</Tomato></Potato>

• Attribute values must be enclosed in quotes

• The text characters (<), (>), (") and (space) must be represented by 'character entities': (&lt;), (&gt;), (&quot;) and (&nbsp;)

• The tag names define the meaning of data

• Data + meaning = information

• The hierarchy of tags define the information structure

• The tags don't define how the document is displayed

• Browsers can display XML documentes – example: Recipe.xml

XML – Extensible Markup Language

Aalborg University – Department of Production

Document Type Definition (DTD)

DTD example:

<!ELEMENT Recipe (Name, Description?, Ingredients?, Instructions?)>

<!ELEMENT Name (#PCDATA)>

<!ELEMENT Description (#PCDATA)>

<!ELEMENT Ingredients (Ingredient)*>

<!ELEMENT Ingredient (Qty, Item)>

<!ELEMENT Qty (#PCDATA)>

<!ATTLIST Qty unit CDATA #REQUIRED>

<!ELEMENT Item (#PCDATA)>

<!ATTLIST Item optional CDATA "0" isVegetarian CDATA "true">

<!ELEMENT Instructions (Step)+>XML – Extensible Markup Language

Aalborg University – Department of Production

XML – Extensible Markup Language

XML Schema example:<xsd:schema xmlns:xsd="http://www.w3.org/1999/XMLSchema"><xsd:element name="shipOrder" type="order"/><xsd:complexType name="order"> <xsd:element name="shipTo" type="shipAddress"/> <xsd:element name="items" type="cdItems"/></xsd:complexType><xsd:complexType name="shipAddress"> <xsd:element name="name" type="xsd:string"/> <xsd:element name="street" type="xsd:string"/> <xsd:element name="address" type="xsd:string"/> <xsd:element name="country" type="xsd:string"/></xsd:complexType><xsd:complexType name="cdItems"> <xsd:element name="item" type="cdItem"/></xsd:complexType><xsd:complexType name="cdItem"> <xsd:element name="title" type="xsd:string"/> <xsd:element name="quantity" type="xsd:positiveInteger"/> <xsd:element name="price" type="xsd:decimal"/></xsd:complexType></xsd:schema>

Aalborg University – Department of Production

XML – Extensible Markup Language

XML document conforming to the XML Schema:<?xml version="1.0"?><shipOrder> <shipTo> <name>Tove Svendson</name> <street>Ragnhildvei 2</street> <address>4000 Stavanger</address> <country>Norway</country> </shipTo> <items> <item> <title>Empire Burlesque</title> <quantity>1</quantity> <price>10.90</price> </item> <item> <title>Hide your heart</title> <quantity>1</quantity> <price>9.90</price> </item> </items></shipOrder>

Aalborg University – Department of Production

Hierarchcical View of XML Documents

• Recipe example:

Recipe

Name

Description

Ingredients

Ingredient

Qty

Item

Instructions

Step

…XML – Extensible Markup Language

Aalborg University – Department of Production

Xpath

• Xpath is an expression language for

• Express addresses/links

• Navigation in XML documents

• Selection of sets of XML elements

• XPath is used in

• XSL/XSLT

• XLink, Xpointer and XQuery

• Xpath expression syntax

• axes::pathexpression[predicate]

• Path expressions are either

• Full path expressions or

• Relative path expressionsXML – Extensible Markup Language

Aalborg University – Department of Production

Xpath – Path Expressions

• Full Path Expressions

• Expresses a full path from the root node of a document

• Examples:• /Recipe – selects all nodes• /Recipe/Name – selects the Name node

• Relative Path Expressions

• Expresses a path from current node

• Examples:• //Description – selects the Description node• //Ingredient – selects all Ingredient nodes• //Item – selects Item node in first Ingredient node

XML – Extensible Markup Language

Aalborg University – Department of Production

Xpath - Predicates

• Predicates are expressions to filter selected node sets

• Examples:

• //Ingredient[2] – Second ingredient node

• //Ingredient[last()] Last ingredient node

• //Ingredient[3]/Qty/@unit – The unit attribute of Qty node

• //Ingredient[Qty>200] Ingredient nodes with Qty>200

• //Ingredient[Qty>200]/Item Item nodes for which Qty>200

XML – Extensible Markup Language

Aalborg University – Department of Production

Xpath - Axes

• Additional standard path expressions

• Reserved words:

• child

• descendant

• parent

• ancestor

• following

• preceding

• Attribute

• Example with /Recipe/Ingredients as current node:

• descendant::Item[@optional=“1”]

XML – Extensible Markup Language

Aalborg University – Department of Production

Style Sheets in Extensible Style Language (XSL)

• XSL style sheets• define how to format XML documents, e.g. HTML, RTF and SQL

• input elements can be rearranged with style sheets

• are defined by • Cascading Style Sheet language (CSS)• Extensible Style Language (XSL)

• are also XML documents

• contain special <xsl: ... > tags with pre-defined meaning

• Each XSL style sheet contains a series of templates

• Different XSL style sheets can transform XML documents for different applications and display equipment

XML – Extensible Markup Language

Aalborg University – Department of Production

XML – Extensible Markup Language

XSL Style Sheet:<?xml version="1.0"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"><xsl:template match="/Recipe">. . . </xsl:template>

<!-- Format ingredients --><xsl:template match="Ingredients">. . . </xsl:template>

<!-- Format instructions --><xsl:template match="Instructions">. . .</xsl:template>

<xsl:template match="Step">. . .</xsl:template>

<!-- ignore all not matched --> <xsl:template match="*" priority="-1"/></xsl:stylesheet>

Aalborg University – Department of Production

XML – Extensible Markup Language

XSL Style Sheet – individual templates:<xsl:template match="/Recipe"> <HTML>  <HEAD>  <TITLE>   <xsl:value-of select="Name"/>  </TITLE>  </HEAD>  <BODY>  <H3>  <xsl:value-of select="Name"/>  </H3>  <STRONG>  <xsl:value-of select="Description"/>  </STRONG>  <xsl:apply-templates/>  </BODY> </HTML></xsl:template>

Aalborg University – Department of Production

XML – Extensible Markup Language

XSL Style Sheet – individual templates:<!-- Format ingredients --><xsl:template match="Ingredients"> <H4>Ingredients</H4> <TABLE BORDER="1"> <TR BGCOLOR="#308030"><TH>Qty</TH><TH>Units</TH><TH>Item</TH></TR> <xsl:for-each select="Ingredient"> <TR> <!-- handle empty Qty elements separately --> <xsl:if test='Qty[not(.="")]' >   <TD><xsl:value-of select="Qty"/></TD> </xsl:if> <xsl:if test='Qty[.=""]' >   <TD BGCOLOR="#404040"> </TD> </xsl:if><TD><xsl:value-of select="Qty/@unit"/></TD> <TD><xsl:value-of select="Item"/> <xsl:if test='Item/@optional="1"'>    <SPAN> -- <em><STRONG>optional</STRONG></em></SPAN></xsl:if></TD> </TR> </xsl:for-each> </TABLE></xsl:template>

Aalborg University – Department of Production

XML – Extensible Markup Language

XSL Style Sheet – individual templates:<!-- Format instructions --><xsl:template match="Instructions"> <H4>Instructions</H4> <OL> <xsl:apply-templates select="Step"/> </OL></xsl:template>

<xsl:template match="Step"><LI><xsl:value-of select="."/></LI></xsl:template>

Aalborg University – Department of Production

Exchanging XML Documents

XML – Extensible Markup Language

Aalborg University – Department of Production

Exchanging XML Documents, cont.

XML – Extensible Markup Language

Aalborg University – Department of Production

Application Integration

XML – Extensible Markup Language

Aalborg University – Department of Production

New Internet Technologies and Standards

• XML is the basis for Web Services

• expose and describe itself to other applications

• can be located by other applications via directories

• can be invoked by using standard protocols

• XML based standards are currently available

• Simple Object Access Protocol (SOAP)

• Web Services Desription Language (WSDL)

• Universal Desription, Discovery, and Integrat. (UDDI)a standard for new ways of publishing services

• conform to the basic ”request” and ”response” functionality

• supported by the World Wide Web Consortium (W3C)

XML – Extensible Markup Language

Aalborg University – Department of Production

Internet Technologies and Standards

XML – Extensible Markup Language

Aalborg University – Department of Production

Internet Technologies and Standards

• Discovery and access to an Internet Service (example)• 1.a A Service Provider creates a service

• 1.b The service is defined in WSDL

• 1.c The service is published in a Service Directory

• 2.a A Service Client queries the directory

• 2.b The directory creates a reply

• 2.c The reply contains a WSDL descriptor of the service

• 3.a The Service Client invokes the service using the descriptor

• 3.b A SOAP message is structured, built and sent

• 3.c The Service Client receives and interprets the response

XML – Extensible Markup Language

Aalborg University – Department of Production

Simple Object Access Protocol (SOAP)

• Lightweight protocol for exchange of information

• The protocol is XML based, simple and extensible

• The SOAP standard consists of three parts

• the SOAP envelope, what message and who should handle it

• the SOAP encoding rules, serialisation mechanisms

• the SOAP remote procedure call representation

• SOAP envelope is an XML document with

• SOAP header, optional

• SOAP body, the message body, a set of body entries

XML – Extensible Markup Language

Aalborg University – Department of Production

Web Services Desription Language (WSDL)

• XML format for describing Internet services

• Abstract description of network endpoints operating on messages containing either document-oriented or procedure-oriented information

• Types, data type definitions, e.g. with XSD

• Message, definition of the data being communicated

• Port Type, set of supported operations by one or more endpoints

• Binding, protocol and data format for a particular port type.

• Port, single endpoint defined as binding and network address

• Service, a collection of related endpoints

XML – Extensible Markup Language

Aalborg University – Department of Production

Conclusion

• XML – Extensible Markup Language• Meta language – users kan define specific languages, custom

tags

• The tag names define the meaning of data

• XML Schema – definition of the structure of XML documents

• Extensible Style Language (XSL) – document formatting• Style sheets are XML documents written in XSL

• Product data models can be formulated in XML

• Data exchange can be based on XML and XML Schema

• International solutions: E-business XML, WEB services

XML – Extensible Markup Language