Presentation is loading. Please wait.

Presentation is loading. Please wait.

Standards in Information Management: XML

Similar presentations


Presentation on theme: "Standards in Information Management: XML"— Presentation transcript:

1 Standards in Information Management: XML
Arijit Sengupta

2 Learning Objectives Learn what XML is
Learn the various ways in which XML is used Learn the key companion technologies See how XML is being used in industry as a meta-language

3 Agenda Overview Syntax and Structure The XML Alphabet Soup
XML as a meta-language

4 Overview What is XML? A tag-based meta language
Designed for structured data representation Represents data hierarchically (in a tree) Provides context to data (makes it meaningful) Self-describing data Separates presentation (HTML) from data (XML) An open W3C standard A subset of SGML vs. HTML, which is an implementation of SGML

5 Overview What is XML? XML is a “use everywhere” data specification
Application X XML Documents Configuration XML XML Repository Database

6 Overview Documents vs. Data
XML is used to represent two main types of things: Documents Lots of text with tags to identify and annotate portions of the document Data Hierarchical data structures

7 Overview XML and Structured Data
Pre-XML representation of data: XML representation of the same data: “PO-1234”,”CUST001”,”X9876”,”5”,”14.98” <PURCHASE_ORDER> <PO_NUM> PO-1234 </PO_NUM> <CUST_ID> CUST001 </CUST_ID> <ITEM_NUM> X9876 </ITEM_NUM> <QUANTITY> 5 </QUANTITY> <PRICE> </PRICE> </PURCHASE_ORDER>

8 Overview Benefits of XML
Open W3C standard Representation of data across heterogeneous environments Cross platform Allows for high degree of interoperability Strict rules Syntax Structure Case sensitive

9 Overview Who Uses XML? Submissions by Technologies using XML Microsoft
IBM Hewlett-Packard Fujitsu Laboratories Sun Microsystems Netscape (AOL), and others… Technologies using XML SOAP, ebXML, BizTalk, WebSphere, many others…

10 Agenda Overview Syntax and Structure The XML Alphabet Soup
XML as a meta-language

11 Syntax and Structure Components of an XML Document
Elements Each element has a beginning and ending tag <TAG_NAME>...</TAG_NAME> Elements can be empty (<TAG_NAME />) Attributes Describes an element; e.g. data type, data range, etc. Can only appear on beginning tag Processing instructions Encoding specification (Unicode by default) Namespace declaration Schema declaration

12 Syntax and Structure Components of an XML Document
<?xml version=“1.0” ?> <?xml-stylesheet type="text/xsl” href=“template.xsl"?> <ROOT> <ELEMENT1><SUBELEMENT1 /><SUBELEMENT2 /></ELEMENT1> <ELEMENT2> </ELEMENT2> <ELEMENT3 type=‘string’> </ELEMENT3> <ELEMENT4 type=‘integer’ value=‘9.3’> </ELEMENT4> </ROOT> Elements with Attributes Elements Prologue (processing instructions)

13 Syntax and Structure Rules For Well-Formed XML
There must be one, and only one, root element Sub-elements must be properly nested A tag must end within the tag in which it was started Attributes are optional Defined by an optional schema Attribute values must be enclosed in “” or ‘’ Processing instructions are optional XML is case-sensitive <tag> and <TAG> are not the same type of element

14 Syntax and Structure Well-Formed XML?
No, CHILD2 and CHILD3 do not nest properly <xml? Version=“1.0” ?> <PARENT> <CHILD1>This is element 1</CHILD1> <CHILD2><CHILD3>Number 3</CHILD2></CHILD3> </PARENT>

15 Syntax and Structure Well-Formed XML?
No, there are two root elements <xml? Version=“1.0” ?> <PARENT> <CHILD1>This is element 1</CHILD1> </PARENT> <CHILD1>This is another element 1</CHILD1>

16 Syntax and Structure Well-Formed XML?
Yes <xml? Version=“1.0” ?> <PARENT> <CHILD1>This is element 1</CHILD1> <CHILD2/> <CHILD3></CHILD3> </PARENT>

17 Syntax and Structure An XML Document
<?xml version='1.0'?> <bookstore> <book genre=‘autobiography’ publicationdate=‘1981’ ISBN=‘ ’> <title>The Autobiography of Benjamin Franklin</title> <author> <first-name>Benjamin</first-name> <last-name>Franklin</last-name> </author> <price>8.99</price> </book> <book genre=‘novel’ publicationdate=‘1967’ ISBN=‘ ’> <title>The Confidence Man</title> <first-name>Herman</first-name> <last-name>Melville</last-name> <price>11.99</price> </bookstore>

18 Syntax and Structure Namespaces: Overview
Part of XML’s extensibility Allow authors to differentiate between tags of the same name (using a prefix) Frees author to focus on the data and decide how to best describe it Allows multiple XML documents from multiple authors to be merged Identified by a URI (Uniform Resource Identifier) When a URL is used, it does NOT have to represent a live server URLs and URNs for namespaces do not have to be “live” – they only need to be unique strings.

19 Syntax and Structure Namespaces: Declaration
Namespace declaration examples: xmlns: bk = “ xmlns: bk = “urn:mybookstuff.org:bookinfo” xmlns: bk = “ Namespace declaration Prefix URI (URL)

20 Syntax and Structure Namespaces: Examples
<BOOK xmlns:bk=“ <bk:TITLE>All About XML</bk:TITLE> <bk:AUTHOR>Joe Developer</bk:AUTHOR> <bk:PRICE currency=‘US Dollar’>19.99</bk:PRICE> <bk:BOOK xmlns:bk=“ xmlns:money=“urn:finance:money”> <bk:TITLE>All About XML</bk:TITLE> <bk:AUTHOR>Joe Developer</bk:AUTHOR> <bk:PRICE money:currency=‘US Dollar’> 19.99</bk:PRICE>

21 Syntax and Structure Namespaces: Default Namespace
An XML namespace declared without a prefix becomes the default namespace for all sub-elements All elements without a prefix will belong to the default namespace: <BOOK xmlns=“ <TITLE>All About XML</TITLE> <AUTHOR>Joe Developer</AUTHOR>

22 Syntax and Structure Namespaces: Scope
Unqualified elements belong to the inner-most default namespace. BOOK, TITLE, and AUTHOR belong to the default book namespace PUBLISHER and NAME belong to the default publisher namespace <BOOK xmlns=“ <TITLE>All About XML</TITLE> <AUTHOR>Joe Developer</AUTHOR> <PUBLISHER xmlns=“urn:publishers:publinfo”> <NAME>Microsoft Press</NAME> </PUBLISHER> </BOOK>

23 Syntax and Structure Namespaces: Attributes
Unqualified attributes do NOT belong to any namespace Even if there is a default namespace This differs from elements, which belong to the default namespace

24 Syntax and Structure Entities
Entities provide a mechanism for textual substitution, e.g. You can define your own entities Parsed entities can contain text and markup Unparsed entities can contain any data JPEG photos, GIF files, movies, etc. Entity Substitution < & &

25 Agenda Overview Syntax and Structure The XML Alphabet Soup
XML as a meta-language

26 The XML ‘Alphabet Soup’
XML itself is fairly simple Most of the learning curve is knowing about all of the related technologies

27 The XML ‘Alphabet Soup’
Extensible Markup Language Defines XML documents Infoset Information Set Abstract model of XML data; definition of terms DTD Document Type Definition Non-XML schema XSD XML Schema XML-based schema language XDR XML Data Reduced An earlier XML schema CSS Cascading Style Sheets Allows you to specify styles XSL Extensible Stylesheet Language Language for expressing stylesheets; consists of XSLT and XSL-FO XSLT XSL Transformations Language for transforming XML documents XSL-FO XSL Formatting Objects Language to describe precise layout of text on a page

28 The XML ‘Alphabet Soup’
XPath XML Path Language A language for addressing parts of an XML document, designed to be used by both XSLT and XPointer XPointer XML Pointer Language Supports addressing into the internal structures of XML documents XLink XML Linking Language Describes links between XML documents XQuery XML Query Language (draft) Flexible mechanism for querying XML data as if it were a database DOM Document Object Model API to read, create and edit XML documents; creates in-memory object model SAX Simple API for XML API to parse XML documents; event-driven Data Island XML data embedded in a HTML page Data Binding Automatic population of HTML elements from XML data

29 The XML ‘Alphabet Soup’ Schemas: Overview
DTD (Document Type Definitions) Not written in XML No support for data types or namespaces XSD (XML Schema Definition) Written in XML Supports data types Current standard recommended by W3C

30 The XML ‘Alphabet Soup’ Schemas: Purpose
Define the “rules” (grammar) of the document Data types Value bounds A XML document that conforms to a schema is said to be valid More restrictive than well-formed XML Define which elements are present and in what order Define the structural relationships of elements

31 The XML ‘Alphabet Soup’ Schemas: DTD Example
XML document: DTD schema: <BOOK> <TITLE>All About XML</TITLE> <AUTHOR>Joe Developer</AUTHOR> </BOOK> <!DOCTYPE BOOK [ <!ELEMENT BOOK (TITLE+, AUTHOR) > <!ELEMENT TITLE (#PCDATA) > <!ELEMENT AUTHOR (#PCDATA) > ]>

32 The XML ‘Alphabet Soup’ Schemas: XSD Example
XML document: <CATALOG> <BOOK> <TITLE>All About XML</TITLE> <AUTHOR>Joe Developer</AUTHOR> </BOOK> </CATALOG>

33 The XML ‘Alphabet Soup’ Schemas: XSD Example
<xsd:schema id="NewDataSet“ targetNamespace=" xmlns=" xmlns:xsd=" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:element name="book"> <xsd:complexType content="elementOnly"> <xsd:all> <xsd:element name="title" minOccurs="0" type="xsd:string"/> <xsd:element name="author" minOccurs="0" type="xsd:string"/> </xsd:all> </xsd:complexType> </xsd:element> <xsd:element name=“Catalog" msdata:IsDataSet="True"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element ref="book"/> </xsd:choice> </xsd:schema>

34 The XML ‘Alphabet Soup’ Schemas: Why You Should Use XSD
Newest W3C Standard Broad support for data types Reusable “components” Simple data types Complex data types Extensible Inheritance support Namespace support Ability to map to relational database tables XSD support in Visual Studio.NET

35 The XML ‘Alphabet Soup’ Transformations: XSL
Language for expressing document styles Specifies the presentation of XML More powerful than CSS Consists of: XSLT XPath XSL Formatting Objects (XSL-FO)

36 The XML ‘Alphabet Soup’ Transformations: Overview
XSLT – a language used to transform XML data into a different form (commonly XML or HTML) XML XML, HTML, … XSLT

37 The XML ‘Alphabet Soup’ Transformations: XSLT
The language used for converting XML documents into other forms Describes how the document is transformed Expressed as an XML document (.xsl) Template rules Patterns match nodes in source document Templates instantiated to form part of result document Uses XPath for querying, sorting, etc.

38 The XML ‘Alphabet Soup’ XPath (XML Path Language)
General purpose query language for identifying nodes in an XML document Declarative (vs. procedural) Contextual – the results depend on current node Supports standard comparison, Boolean and mathematical operators (=, <, and, or, *, +, etc.)

39 The XML ‘Alphabet Soup’ XPath Operators
Usage Description / Child operator – selects only immediate children (when at the beginning of the pattern, context is root) // Recursive descent – selects elements at any depth (when at the beginning of the pattern, context is root) . Indicates current context .. Selects the parent of the current node * Wildcard @ Prefix to attribute name (when alone, it is an attribute wildcard) [ ] Applies filter pattern

40 The XML ‘Alphabet Soup’ XPath Query Examples
./author (finds all author elements within current context) /bookstore (find the bookstore element at the root) /* (find the root element) //author (find all author elements anywhere in document) = “textbooks”] (find all bookstores where the specialty attribute = “textbooks”) = (find all books where the style attribute = the specialty attribute of the bookstore element at the root)

41 More XPath Examples Path Expression Result /bookstore/book[1]
Selects the first book element that is the child of the bookstore element /bookstore/book[last()] Selects the last book element that is the child of the bookstore element /bookstore/book[last()-1] Selects the last but one book element that is the child of the bookstore element /bookstore/book[position()<3] Selects the first two book elements that are children of the bookstore element Selects all the title elements that have an attribute named lang Selects all the title elements that have an attribute named lang with a value of 'eng' /bookstore/book[price>35.00] Selects all the book elements of the bookstore element that have a price element with a value greater than 35.00 /bookstore/book[price>35.00]/title Selects all the title elements of the book elements of the bookstore element that have a price element with a value greater than 35.00

42 XPath Functions Accessor functions: Numeric value functions:
node-name, data, base-uri, document-uri Numeric value functions: abs, ceiling, floor, round, … String functions: compare, concat, substring, string-length, uppercase, lowercase, starts-with, ends-with, matches, replace, … Other functions include functions on boolean values, dates, nodes, etc.

43 The XML ‘Alphabet Soup’ Data Islands
XML embedded in an HTML document Manipulated via client side script or data binding <XML id=“XMLID”> <BOOK> <TITLE>All About XML</TITLE> <AUTHOR>Joe Developer</AUTHOR> </BOOK> </XML> <XML id=“XMLID” src=“mydocument.xml”> Data islands and data binding is available only in Microsoft Internet Explorer version 5.0 and later.

44 The XML ‘Alphabet Soup’ Data Islands
Can be embedded in an HTML SCRIPT element XML is accessible via the DOM: <SCRIPT language=“xml” id=“XMLID”> <SCRIPT type=“text/xml” id=“XMLID”> <SCRIPT language=“xml” id=“XMLID” src=“mydocument.xml”>

45 The XML ‘Alphabet Soup’ XML-Based Applications
Microsoft SQL Server Retrieve relational data as XML Query XML data Join XML data with existing database tables Update the database via XML Updategrams New XML data type in SQL 2005 Microsoft Exchange Server XML is native representation of many types of data Used to enhance performance of UI scenarios (for example, Outlook Web Access (OWA))

46 Agenda Overview Syntax and Structure The XML Alphabet Soup
XML as a meta-language

47 XML as a Meta-Language A Language to create Languages SAX CSS DOM DSSL
XSL XML/DTD XLL XSLT XSchema GO CML XPath MathML WML XPointer XQL BeanML

48 Gene Ontology (GO) Describing and manipulating information about the molecular function, biological process and cellular component of gene products. Gene Ontology website: GO DTD: ftp://ftp.geneontology.org/pub/go/xml/dtd/go.dtd GO Browsers and tools: GO Resources and samples:

49 Math ML Describing and manipulating mathematical notations
MathML website MathML DTD MathML Browser MathML Resources see sample documents here

50 Chemical ML Representing molecular and chemical information
CML website CML DTD CML Browser and Authoring Environment CML Resources see sample documents here some require plug-in downloads, can be slow

51 Wireless ML Allows web pages to be displayed over mobile devices
WML works with WAP to deliver the content Underlying model: Deck of Cards that the User can sift through WAP/WML website WML DTD WAP/WML Resources Tutorial on WML, also see WAP Demo

52 Scalable Vector Graphics
Describing vector graphics data for use over the web Rendering is done on the browser Bandwidth demands lower, scaling easier SVG website SVG Plug-Ins SVG Resources article and good, brief tutorial planet.svg An Example from Deitel

53 Bean ML Describing software components such as Java Beans
Defines how the components are interconnected and can be used Bean ML Specs and Tools Bean ML Resources With Bean ML You can mark-up beans using Bean ML And invoke different operations on Beans Includes BML Scripting Framework

54 XBRL Extensible Business Reporting Language
Capturing and representing financial and accounting information Variety of situations e.g. publishing reports, extracting data for analysis, regulatory forms etc. Initiated under the direction of AICPA XBRL website XBRL DTDs and Schemas Demos and Tools

55 News ML Designed to be media-independent
Initiated by International Press Telecommunications Council Enables tracking of news stories over time NewsML website NewsML DTD SportsML DTD – Derived from NewsML DTD

56 cXML CommerceXML from Ariba plus 40 other companies cXML website
Primary Set of Tools/Implementations to support cXML See also Whitepapers link explaining how these can be used for E-procurement E-fulfillment And others ..

57 xCBL xCBL from Microsoft, SAP, Sun xCBL website
Marketed as XML component library for B2B e-commerce Available Resources (see internal links) DTDs and Schemas XDK: SOX Parser and an XSLT Engine Example Documents

58 ebXML UN/CEFACT: the United Nations body whose mandate covers worldwide policy and technical development in the area of trade facilitation and electronic business. ebXML website Current Endorsements Still needs buy-in from the larger IS/IT vendors Related Effort: RosettaNet Business Processes for IT, Component and Chip companies

59 Conclusion Overview Syntax and Structure The XML Alphabet Soup
XML as a meta-language

60 Resources http://www.xml.com/ http://www.w3.org/xml/


Download ppt "Standards in Information Management: XML"

Similar presentations


Ads by Google