XML- Extensible Markup Language - PowerPoint PPT Presentation

About This Presentation
Title:

XML- Extensible Markup Language

Description:

In HTML, both the tag semantics and tags are fixed. ... AHREF=mailto:Serge.Abiteboul_at_inria.fr Serge /A node xml:link='simple' HREF ... – PowerPoint PPT presentation

Number of Views:135
Avg rating:3.0/5.0
Slides: 82
Provided by: UMR
Learn more at: http://web.mst.edu
Category:

less

Transcript and Presenter's Notes

Title: XML- Extensible Markup Language


1
  • XML- Extensible Markup Language

2
HTML to XML
  • HTML documents
  • Emerging Web Standards - XML
  • XML good for data interchange across platforms
    enterprise wide
  • conversion HTML to XML - IBM, Microsoft

3
XML - Motivation
  • In HTML, both the tag semantics and tags are
    fixed. There is limited and strict interpretation
    of tags.
  • HTML is widely successful in disseminating
    documents across internet.
  • Though data can be disseminated through HTML, its
    extraction is painful, and laborious.
  • EDI has been a predominate mode of exchanging
    data among businesses. But it has very rigid
    format that requires highly customized
    applications.

4
XML - Introduction
  • XML aims to provide ease of authoring HTML
    documents with ease of data exchange that is
    possible with EDI.
  • Tags are used to markup documents.
  • XML is a meta-language for describing markup
    languages.
  • XML provides a facility to define tags and
    structural relationships between them.
  • No pre-defined tag set implied no preconceived
    semantics, semantics of XML document is defined
    by applications that process them

5
XML - Goals
  • Straightforward to use over internet
  • Support wide variety of applications, authoring,
    browsing, content analysis, etc.
  • Easy to write programs that process XML documents
    and validate them.
  • XML documents must be human-legible and
    reasonably clear.
  • Design of XML shall be formal and concise -
    expressed as EBNF (extended Backus Naur Form) -
    amenable to modern compiler tools and techniques.

6
XML-features
  • Some structure - not rigid
  • Extensibility - User defined tags
  • nested elements
  • validation - documents may specify their own
    grammar
  • DTD (Document Type Descriptor) - schema exists
    with data as tag names
  • Application -EDI - extraction, conversion, ,
    transformation, integration
  • can be modeled using DOM

7
More terminology
  • RDF - Resource Description Framework - a method
    to describe metdata for XML documents
  • XSL - Extensible Stylesheet Language - language
    for transforming and formatting XML.
  • Transformation Language - XSLT, XPath, Xpointer,
    Xlink

8
Example-HTML
  • Print - Sanjay Madria
  • Web Warehouse Tutorial, ADBIS99
  • HTML
  • ltH2gt Sanjay Madria lt/H2gt
  • ltIgt Web Warehouse Tutorial, ADBIS99lt/Igt
  • Very difficult to understand, structure is
    hidden, describes only appearance

9
XML
  • ltRefgt
  • ltSpeakergt ltFirstnamegt Sanjaylt/firstnamegt
  • ltLastnamegt Madrialt/lastnaamegt
  • lt/Speakergt
  • ltTitle gt Web Warehouse Tutoriallt/Titlegt
  • ltConferencegt ADBIS99lt/Conferencegt
  • lt/emptygt
  • lt/Refgt
  • another format
  • ltFirstname Value Sanjay/gt

10
  • XML can Separate Data from HTML
  • XML is used to Exchange Data
  • XML can be used to Share Data
  • XML can be used to Store Data
  • XML can be used to Create new Languages (WML)

11
XML
  • ltPersongt - a start-tag
  • lt/Persongt - a end tag
  • Tags are also called markups.
  • Tags must be balanced close in inverse order of
    their opening
  • Tags are defined by users, no predefined tags

12
  • ltpersongt
  • ltnamegt Alan lt/namegt
  • ltagegt 42 lt/agegt
  • ltemailgt agb_at_abc.com lt/ email gt
  • lt/persongt
  • Element - ltPersongt..lt/Persongt
  • Subelement Age

13
  • XML elements must follow these naming rules
  • Names can contain letters, numbers, and other
    characters
  • Names must not start with a number or "_"
    (underscore)
  • Names must not start with the letters xml (or XML
    or Xml ..)
  • Names can not contain spaces

14
  • lttablegt
  • ltdescriptiongt People on the fourth floor
    lt/descriptiongt
  • ltpeoplegt
  • ltpersongt
  • ltnamegt Alan lt/namegt
  • ltagegt 42 lt/agegt
  • ltemailgt agb_at_abc.com lt/ email gt
  • lt/persongt
  • ltpersongt
  • ltnamegt Patsy lt/namegt
  • ltagegt 36 lt/agegt
  • ltemailgt ptn_at_abc.com lt/ email gt
  • lt/persongt
  • ltpersongt
  • ltnamegt Ryan lt/namegt
  • ltagegt 58 lt/agegt
  • ltemailgt rgz_at_abc.com lt/ email gt
  • lt/persongt
  • lt/peoplegt

15
  • ltmarriedgtlt/marriedgt
  • Can be abbreviated to
  • ltmarried/gt

16
XML Attributes
  • (Name, value) pair
  • ltproductgt
  • ltname languageFrenchgt trompette six trous
    lt/namegt
  • ltprice currencyEurogt 420.12 lt/pricegt
  • ltaddress formatXLB56 languageFrenchgt
  • ltstreetgt31 rue Croix-Bossetlt/ streetgt
  • ltzipgt92310lt/zipgtltcitygtSevreslt/citygt
  • ltcountrygtFrancelt/countrygt
  • lt/addressgt
  • lt/productgt

Att.
17
  • Attributes takes always string values (..)
  • A given attribute may occur only once within a
    tag, while subelements within same tag can repeat
    attributes

18
  • XML tags are case sensitive
  • With XML, White Space is Preserved
  • ltbgtltigtThis text is bold and italiclt/bgtlt/igt
  • Ok in HTML
  • ltbgtltigtThis text is bold and italiclt/igtlt/bgt

19
  • XML Elements are Extensible
  • Extract to
  • MESSAGE To ToveFrom Jani
  • Don't forget me this weekend!

20
  • lt?xml version"1.0" ?gt - ltnotegt  lttogtTovelt/togt  
  • ltfromgtJanilt/fromgt  
  • ltheadinggtReminderlt/headinggt  
  • ltbodygtDon't forget me this weekend!lt/bodygt  
  • lt/notegt

21
  • ltnotegt ltdategt1999-08-01lt/dategt lttogtTovelt/togt
    ltfromgtJanilt/fromgt ltheadinggtReminderlt/headinggt
    ltbodygtDon't forget me this weekend!lt/bodygt
    lt/notegt
  • No problem

22
  • Book Title My First XML
  • Chapter 1 Introduction to XML
  • What is HTML
  • What is XML
  • Chapter 2 XML Syntax
  • Elements must have a closing tag
  • Elements must be correctly nested

23
  • ltbookgt
  • lttitlegtMy First XMLlt/titlegt
  • ltprod id"33-657" media"paper"gtlt/prodgt
  • ltchaptergtIntroduction to XML
  • ltparagtWhat is HTMLlt/paragt
  • ltparagtWhat is XMLlt/paragt
  • lt/chaptergt
  • ltchaptergtXML Syntax ltparagtElements must have a
    closing taglt/paragt ltparagtElements must be
    properly nestedlt/paragt lt/chaptergt
  • lt/bookgt

24
  • ltperson sex"female"gt ltfirstnamegtAnnalt/firstnamegt
    ltlastnamegtSmithlt/lastnamegt
  • ltpersongt ltsexgtfemalelt/sexgt ltfirstnamegtAnnalt/firstn
    amegt ltlastnamegtSmithlt/lastnamegt lt/persongt

25
Bad Design
  • ltnote day"12" month"11" year"99" to"Tove"
    from"Jani" heading"Reminder" body"Don't forget
    me this weekend!"gt lt/notegt

26
  • ltnote date"12/11/99"gt lttogtTovelt/togt
    ltfromgtJanilt/fromgt ltheadinggtReminderlt/headinggt
    ltbodygtDon't forget me this weekend!lt/bodygt lt/notegt

27
  • ltnotegt ltdategt12/11/99lt/dategt lttogtTovelt/togt
    ltfromgtJanilt/fromgt ltheadinggtReminderlt/headinggt
    ltbodygtDon't forget me this weekend!lt/bodygt lt/notegt

28
  • ltnotegt ltdategt ltdaygt12lt/daygt ltmonthgt11lt/monthgt
    ltyeargt99lt/yeargt lt/dategt lttogtTovelt/togt
    ltfromgtJanilt/fromgt ltheadinggtReminderlt/headinggt
    ltbodygtDon't forget me this weekend!lt/bodygt
    lt/notegt

29
  • PCDATA
  • XML parsers treat all text as Parsable Characters
    (PCDATA).
  • When an XML element is parsed, the text between
    the XML tags is also parsed
  • CDATA
  • Everything inside a CDATA section is ignored by
    the parser.
  • Starts with "lt!CDATA" and ends with "gt"

30
  • ltpersongt ltnamegt Alan lt/namegt
  • ltagegt 42 lt/agegt
  • ltemailgt agb_at_abc.com lt/ email gt
  • lt/persongt
  • or
  • ltperson nameAlan age 42 email
    agb_at_abc.com /gt
  • or
  • ltperson age 42 gt
  • ltnamegt Alan lt/namegt
  • ltemailgt agb_at_abc.com lt/ email gt
  • lt/persongt

31
person
person
email
name
age
email
name
age
Alan
42
agb_at_abc.com
Alan
agb_at_abc.com
42
32
  • XML can associates unique identifier to elements,
    as the value of certain attribute Called id
  • Refer that element using idref

33
  • ltmessagesgt
  • ltnote ID"501"gt
  • lttogtTovelt/togt
  • ltfromgtJanilt/fromgt ltheadinggtReminderlt/headinggt
    ltbodygtDon't forget me this weekend!lt/bodygt
  • lt/notegt
  • ltnote ID"502"gt lttogtJanilt/togt ltfromgtTovelt/fromgt
    ltheadinggtRe Reminderlt/headinggt ltbodygtI will
    not!lt/bodygt lt/notegt
  • lt/messagesgt

34
  • ltstate ids2gt
  • ltscodegtNElt/scodegt
  • ltsnamegtNevadalt/snamegt
  • lt/stategt
  • ltcity idc2gt
  • ltccodegtCCNlt/ccodegt
  • ltcnamegtCarson Citylt/cnamegt
  • ltstate-of idref s2/gt
  • lt/citygt

35
a
a
c
b
36
  • ltagtltb ido123gt some string lt/bgtlt/agt
  • lta co123/gt
  • Assume c as reference attribute
  • lta bo123/gt
  • ltagtltc ido123gt some string lt/bgtlt/agt
  • Assume b as reference attribute

37
  • ltgeographygt
  • ltstatesgt
  • ltstate ids1gt
  • ltscodegtIDlt/scodegt
  • ltsnamegtIdaholt/snamegt
  • ltcapital idrefc1/gt
  • ltcities-in idrefc1/gtltcities-in idrefc3/gt
  • lt/stategt
  • ltstate ids2gt
  • ltscodegtNElt/scodegt
  • ltsnamegtNevadalt/snamegt
  • ltcapital idrefc2/gt
  • ltcities-in idrefc2/gt.
  • lt/stategt
  • .
  • lt/statesgt

38
  • ltcitiesgt
  • ltcity idc1gt
  • ltccodegtBOIlt/ccodegt
  • ltcnamegtBoiselt/cnamegt
  • ltstate-of idref s1/gt
  • lt/citygt
  • ltcity idc2gt
  • ltccodegtCCNlt/ccodegt
  • ltcnamegtCarson Citylt/cnamegt
  • ltstate-of idref s2/gt
  • lt/citygt
  • ltcity idc3gt
  • ltccodegtMOClt/ccodegt
  • ltcnamegtMoscowlt/cnamegt
  • ltstate-of idref s1/gt
  • lt/citygt
  • lt/citiesgt
  • lt/geographygt

39
Ordering
  • personfirstname John, lastnameSmith
  • personlastname Smith,firstname John
  • As SSD, both are same

40
  • These two are not same as XML documents
  • ltpersongtltfirstnamegtJohnlt/firstnamegt
  • ltlastnamegtSmith lt/lastnamegtlt/persongt
  • ltpersongtltlastnamegtSmith lt/lastnamegt
    ltfirstnamegtJohnlt/firstnamegtlt/persongt
  • The following two are equivalent as attributes
    are not ordered
  • ltperson firstnameJohnlastnameSmith/gt
  • ltperson lastnameSmith firstnameJohn/gt

41
Mixing elements and Text
  • ltPersongt
  • This is my best friend
  • ltNamegt Alan lt/Namegt
  • ltAgegt 42 lt/Agegt
  • I am not too sure of the following email
  • ltEmailgt agb_at_abc.com lt/Email gt
  • lt/Persongt

42
  • lt!- - this is a comment - -gt - Comments are
    allowed anywhere except inside markup and is a
    part of the document.
  • lt?xml-stylesheet hrefbook.css
    typetext/css?gt - Processing instructions for
    applications
  • lt?xml version1.0?gt This is not PI, not passed
    to application.
  • lt!CDATAltstartgtthis is an incorrect element
    lt/endgtgt
  • lt!DOCTYPE name markupdeclarationsgt
  • lt?xml.?gt
  • lt!DOCTYPE name markupdeclarationsgt
  • ltnamegtlt/namegt

43
  • ltdbgtltpersongt ltnamegt Alan lt/namegt
  • ltagegt 42 lt/agegt
  • ltemailgt agb_at_abc.com lt/ email gt
  • lt/persongt
  • ltpersongt lt/persongt
  • lt/dbgt
  • lt!DOCTYPE db
  • lt!ELEMENT db (person)gt
  • lt!ELEMENT person (name,age,email)gt
  • lt!ELEMENT name (PCDATA)gt
  • lt!ELEMENT age (PCDATA)gt
  • lt!ELEMENT email (PCDATA)gt
  • gt

44
Recursion
  • lt!ELEMENT node (leaf (node,node))gt
  • lt!ELEMENT leaf (PCDATA)gt
  • An example of such XML document is
  • ltnodegt
  • ltnodegt
  • ltnodegt ltleafgt 1 lt/leafgt lt/nodegt
  • ltnodegt ltleafgt 2 lt/leafgt lt/nodegt
  • lt/nodegt
  • ltnodegt
  • ltleafgt 3 lt/leafgt
  • lt/nodegt
  • lt/nodegt

45
  • ltdbgt
  • ltr1gtltagt a1 lt/agtltbgt b1 lt/bgtltcgt c1 lt/cgtlt/r1gt
  • ltr1gtltagt a2 lt/agtltbgt b2 lt/bgtltcgt c2 lt/cgtlt/r1gt
  • ltr2gtltcgt c2 lt/cgtltdgt d2 lt/dgtlt/r2gt
  • ltr2gtltcgt c3 lt/cgtltdgt d3 lt/dgtlt/r2gt
  • ltr2gtltcgt c4 lt/cgtltdgt d4 lt/dgtlt/r2gt
  • ltdbgt

46
  • lt!DOCTYPE db
  • lt!ELEMENT db (r1,r2)gt
  • lt!ELEMENT r1 (a,b,c)gt
  • lt!ELEMENT r2 (c,d)gt
  • lt!ELEMENT a (PCDATA)gt
  • lt!ELEMENT b (PCDATA)gt
  • lt!ELEMENT c (PCDATA)gt
  • lt!ELEMENT d (PCDATA)gt
  • gt

47
  • lt!ELEMENT r2 ((c,d) (d,c))gt
  • lt!ELEMENT db ((r1r2))gt
  • lt!ELEMENT r1 (a,b?,c)gt
  • lt!DOCTYPE db lt!ELEMENT gtgt
  • lt!DOCTYPE db SYSTEM schema.dtdgt
  • lt!DOCTYPE db SYSTEM http//www.schemaauthority.co
    m/schema.dtdgt

48
  • ltproductgt
  • ltname languageFrench department musicgt
  • trompette six trous lt/namegt
  • ltprice currencyEurogt 420.12 lt/pricegt
  • lt/productgt
  • lt!ATTLIS name
  • language CDATA REQUIRED
  • department CDATA IMPLIEDgt
  • lt!ATTLIS price currency CDATA IMPLIEDgt

49
  • IDREF attributes value is some other elements
    identifier
  • iDREFS attributes value is a list of
    identifiers, separated by spaces
  • lt!DOCTYPE family
  • lt!ELEMENT family (person)gt
  • lt!ELEMENT person (name)gt
  • lt!ELEMENT name (PCDATA)gt
  • lt!ATTLIS person id ID REQUIRED
  • mother IDREF IMPLIED
  • father IDREF IMPLIED
  • children IDREFS IMPLIEDgt
  • gt

50
  • ltfamilygt
  • ltperson idjane mothermary fatherjohngt
  • ltnamegt Jane Doe lt/namegt
  • lt/persongt
  • ltperson idjohn children jane jack gt
  • ltnamegt John Doe lt/namegt
  • lt/persongt
  • ltperson idmary children jane jack gt
  • ltnamegt Mary Smith lt/namegt
  • lt/persongt
  • ltperson idjack mothersmith fatherjohngt
  • ltnamegt Jack Smith lt/namegt
  • lt/persongt
  • lt/familygt

51
  • lt!DOCTYPE geography
  • lt!ELEMENT geography (state city)gt
  • lt!ELEMENT state (scode,sname,capital,cities-in)gt
  • lt!ATTLIST state id ID REQUIREDgt
  • lt!ELEMENT scode (PCDATA)gt
  • lt!ELEMENT sname (PCDATA)gt
  • lt!ELEMENT capital EMPTYgt
  • lt!ATTLIST capital idref IDREF REQUIREDgt
  • lt!ELEMENT cities-in EMPTYgt
  • lt!ATTLIST cities-in idref IDREF REQUIREDgt
  • lt!ELEMENT city (ccode,cname,state-of)gt
  • lt!ATTLIST city id IDgt
  • lt!ELEMENT ccode (PCDATA)gt
  • lt!ELEMENT cname (PCDATA)gt
  • lt!ELEMENT state-of EMPTYgt
  • lt!ATTLIST state-of idref IDREF REQUIREDgt
  • gt

52
  • ltcapital idref/gt
  • lt!DOCTYPE geography
  • lt!ELEMENT state (scode,sname,capital,cities-in)gt
  • lt!ELEMENT cities-in EMPTYgt
  • lt!ATTLIST cities-in idrefs IDREFS REQUIREDgt
  • gt
  • lt!ATTLIST state id ID REQUIRED
  • capital IDREF REQUIRED
  • cities-in IDREFS REQUIRED gt

53
  • lt?xml version1.0?gt
  • lt!DOCTYPE report
  • lt!ENTITY abstract SYSTEM /u/abitebou/LEBOOK/abst
    ractgt
  • lt!ENTITY content SYSTEM /u/suciu/LEBOOK/lebookgt
  • gt
  • ltreportgt
  • ltmeta keywordsxml,www,web,semistructured
  • authorAbiteboul,Buneman,Suciu
  • date25.12.98/gt
  • lttitlegtData on the web lt/titlegt
  • abstract
  • content
  • lt/reportgt

54
Limitations of DTD
  • Impose Order
  • No notion of atomic type, for example age can
    be integer, but in DTD, it will be PCDATA
  • No constraints
  • Do not constrain the type of IDREFs state-of
    must be an identifier of a state element, while
    cities-in must be of type city
  • Name tag may corresponds to classname and student
    name both

55
  • ltA xmlLinkssimple HREFhttpwww-rocq.inria.fr
    /versogt
  • Verso Group lt/Agt
  • ltAHREFmailtoSerge.Abiteboul_at_inria.frgtSergelt/Agt
  • ltnode xmllinksimple HREF
  • report.xmlroot().child(2,section).child(3,subs
    ection)gt

56
  • ltpayment-choice xmllinkextended
  • inlinetrue
  • roleform
  • titlechoose form of paymentgt
  • lttarget xmllinklocator
  • hrefhttp//foo.bar.fr/visa-form.xml
  • roleform
  • titlevisa
  • showembed
  • actuateuser
  • bahaviortypefield1no-scroll /gt
  • lttarget xmllinklocator
  • hrefhttp//foo.bar.fr/klee-form.xml
  • roleform
  • titlekleebox
  • showembed
  • actuateuser
  • bahaviortypefield1no-scroll /gt
  • lt/payment-choicegt

57
  • Whereltbookgt
  • ltpublishergtltnamegtMorgan Kaufmannlt/namegtlt/publishe
    rgt
  • lttitlegt Tlt/titlegt
  • ltauthorgt Alt/authorgt
  • lt/bookgt in www.a.b.b/bib.xml
  • Construct A
  • The pattern above corresponds to
  • book publisher name Morgan Kaufmann,
  • title T,
  • author A

58
  • Where ltbookgt
  • ltpublishergtltnamegtMorgan Kaufmannlt/gtlt/gt
  • lttitlegt Tlt/gt
  • ltauthorgt Alt/gt
  • lt/gt in www.a.b.b/bib.xml
  • ltbook year1991gt
  • lt!- - A good introductory text--gt
  • lttitlegt An Introduction to Parallel Algorithms
    and Architectures lt/titlegt
  • ltauthorgt ltlastnamegt Leighton lt/lastnamegtlt/authorgt
  • ltpublishergtltnamegt Morgan Kaufmann lt/namegt
    lt/publishergt
  • lt/bookgt
  • ltbook year1995gt
  • lttitlegt Active database systems lt/titlegt
  • ltauthorgt ltlastnamegt Ceri lt/lastnamegtlt/authorgt
  • ltauthorgt ltlastnamegt Widom lt/lastnamegtlt/authorgt
  • ltpublishergtltnamegt Morgan Kaufmann lt/namegt
    lt/publishergt
  • lt/bookgt

59
  • Construct ltresultgt
  • ltauthorgt Alt/gt
  • lttitlegt Tlt/gt
  • lt/gt
  • ltpublishergtltnamegt Morgan Kaufmann lt/namegt
    lt/publishergt
  • ltresultgt ltauthorgt lt/authorgt
  • lttitlegt lt/titlegt lt/ result gt

60
  • ltanswergt
  • Where ltbookgt
  • ltpublishergtltnamegtMorgan Kaufmannlt/gtlt/gt
  • lttitlegt Tlt/gt
  • ltauthorgt Alt/gt
  • lt/gt in www.a.b.b/bib.xml
  • ltresultgt
  • ltauthorgt ltlastnamegt Leighton lt/lastnamegtlt/authorgt
  • lttitlegt An Introduction to Parallel Algorithms
    and Architectures lt/titlegt
  • lt/resultgt
  • ltresultgt
  • ltauthorgt ltlastnamegt Ceri lt/lastnamegtlt/authorgt
  • lttitlegt Active database systems lt/titlegt
  • lt/resultgt
  • ltresultgt
  • ltauthorgt ltlastnamegt Widom lt/lastnamegtlt/authorgt
  • lttitlegt Active database systems lt/titlegt
  • lt/resultgt
  • Construct ltresultgt

61
  • Where ltbookgt lttitlegt T lt/titlegtltpricegt
    plt/pricegt
  • lt/bookgt in www.a.b.c/bib.xml,
  • Construct ltresultgt ltbooktitlegt T lt/booktitlegt
  • ltbookpricegt P lt/bookpricegt
  • lt/resultgt
  • The above query will ignore books having no price
    attribute!
  • Where ltbookgt Blt/bookgt in www.a.b.c/bib.xml,
  • lttitlegt T lt/titlegt in B
  • Construct ltresultgt ltbooktitlegt T lt/booktitlegt
  • where ltpricegt P lt/pricegt in B
  • construct ltbookpricegt P lt/bookpricegt
  • lt/resultgt

62
  • ltresultgt ltbooktitlegt lt/booktitlegt lt/resultgt
  • ltresultgt ltbooktitlegt lt/booktitlegt
  • ltbookpricegt lt/bookpricegt
  • lt/resultgt
  • ltresultgt ltbooktitlegt lt/booktitlegt
  • ltbookpricegt lt/bookpricegt
  • lt/resultgt
  • ltresultgt ltbooktitlegt lt/booktitlegt lt/resultgt
  • ltresultgt ltbooktitlegt lt/booktitlegt
  • ltbookpricegt lt/bookpricegt
  • lt/resultgt

63
  • Where ltbookgt ltauthorgt A lt/gtlt/gt in
    www.a.b.c/bib.xml,
  • Construct ltresultgt
  • ltauthorgt A lt/gt
  • Where ltbookgt ltauthorgt A lt/authorgt
  • lttitlegt T lt/titlegt
  • lt/bookgt in www.a.b.c/bib.xml,
  • Construct lttitlegt Tlt/gt
  • lt/gt

64
  • Where ltbookgtltpublishergtltnamegtMorgan Kaufmann
  • lt/namegtlt/publishergt
  • lt/bookgt
  • element_as B in abc.xml
  • Construct B
  • Where ltbookgtTlt/ bookgt in abc.xml
  • ltpublishergtltnamegtMorgan Kaufmann
  • lt/namegtlt/publishergt in T
  • ConstructltbookgtTlt/bookgt
  • Where ltbookgtltpublishergtltnamegtMorgan Kaufmann
  • lt/namegtlt/publishergt
  • lt/bookgtcontent_as C in abc.xml
  • Construct ltresultgt Clt/resultgt
  • Where ltbookgtClt/ bookgt in abc.xml
  • ltpublishergtltnamegtMorgan Kaufmannlt/namegtlt/publishe
    rgt in C
  • Construct ltresultgt Clt/resultgt

65
  • Where ltbook languageFrenchgt
  • lttitlegtlt/gt element_as T
  • lt/gt in abc.xml
  • Construct T
  • Where ltbook languageLgtlt/gt in abc.xml
  • Construct ltresultgtLlt/resultgt
  • Where ltbookgtltauthorgt A lt/authorgt lt/bookgt
  • content_as B1 in abc.xml,
  • ltbookgtltauthorgt A lt/authorgt lt/bookgt
  • content_as B2 in abc.xml,
  • B1 ! B2
  • Construct ltresultgtAlt/resultgt

66
  • Where ltPgt lttitlegt T lt/titlegt
  • ltyeargt 1995lt/gt
  • ltEgtSmithlt/gt
  • lt/gt in www.a.b.c/bib.xml
  • E in author, editor
  • Construct ltPgt lttitlegt T lt/titlegt
  • ltEgt Smith lt/gt
  • lt/gt

67
  • lt!ELEMENT part (name, brand, part)gt
  • lt!ELEMENT name (PCDATA)gt
  • lt!ELEMENT brand (PCDATA)gt
  • Where ltpartgtltnamegt R lt/gt ltbrandgt Fordlt/gtlt/gt
  • in www.a.b.c/bib.xml
  • Construct ltresultgt R lt/gt

68
  • ltnamegt R lt/gt ltbrandgt Fordlt/gt
  • ltpartgtltnamegt R lt/gt ltbrandgt Fordlt/gtlt/gt
  • ltpartgtltpartgtltnamegt R lt/gt ltbrandgt Fordlt/gtlt/gtlt/gt
  • ltpartgtltpartgtltpartgtltnamegt R lt/gt ltbrandgt
    Fordlt/gtlt/gtlt/gtlt/gt
  • Where ltgtltnamegt r lt/gt ltbrandgt Fordlt/gtlt/gt
  • in www.a.b.c/bib.xml
  • Construct ltresultgt r lt/gt
  • lt,brandgt Fordlt/gt
  • Where ltpart.(subpartcomponent.piece)gtr lt/gt
  • in www.a.b.c/parts.xml
  • Construct ltresultgt r lt/gt

69
  • ltagt ltbgt X lt/bgtltcgt Ylt/cgtlt/agt
  • ltagt ltbgt 1 lt/bgtltcgt 2lt/cgtlt/agt
  • ltagt ltcgt 2 lt/cgtltbgt 1lt/bgtlt/agt
  • ltagt ltbgt 1 lt/bgt
  • ltcgt 2lt/cgt
  • ltbgt 3 lt/bgt
  • ltcgt 4lt/cgt
  • lt/agt
  • ltagt ltcgt Y lt/cgtltbgt Xlt/bgtlt/agt

70
  • ltaIgtlt/gt
  • ltXJgtlt/gt
  • Where ltpersongt P lt/gt in www.a.b.c/people.xml,
  • ltfirstnameIgt X lt/gt in P,
  • ltlastnameJ gtY lt/gt in P,
  • J lt I
  • Construct ltpersongt P lt/gt

71
  • Where ltpubgt P lt/gt in www.a.b.c/bib.xml,
  • lttitlegt T lt/gt in P,
  • ltyeargt Y lt/gt in P
  • ltmonthgt Z lt/gt in P
  • Order-by Y,Z
  • Construct ltresultgt T lt/gt

72
  • Where ltpubgt P lt/gt in www.a.b.c/bib.xml,
  • Construct ltpubgt where ltauthorIgt A lt/gt in P
  • Order-by I descending
  • Construct ltauthorgt A lt/gt
  • where ltEgt V lt/gt in P
  • E ! author
  • construct ltEgt V lt/gt
  • lt/pubgt

73
  • ltbibgt ltbookgtlttitlegtt1lt/titlegt
  • ltauthorgta1lt/authorgt
  • ltauthorgta2lt/authorgt
  • lt/bookgt
  • ltpapergtlttitlegtt2lt/titlegt
  • ltauthorgta3lt/authorgt
  • ltauthorgta4lt/authorgt
  • lt/papergt
  • ltbookgtlttitlegtt3lt/titlegt
  • ltauthorgta5lt/authorgt
  • ltauthorgta6lt/authorgt
  • ltauthorgta7lt/authorgt
  • lt/bookgt
  • lt/bibgt

74
  • ltxs1templategt
  • ltxs1apply-templates/gt
  • lt/xs1templategt
  • ltxs1template match/bib//titlegt
  • ltresultgt
  • ltxs1value-of/gt
  • lt/resultgt
  • lt/xs1templategt

75
  • ltresultgtt1lt/resultgt
  • ltresultgtt2lt/resultgt
  • ltresultgtt3lt/resultgt
  • Where ltbibgt ltbookgt lttitlegt T lt/gt lt/gt lt/gt in
    input
  • Construct ltresultgt T lt/resultgt

76
  • bib matches a bib element
  • matches any element
  • / matches the root
  • /bib matches a bib element immediately after
    root
  • bib/paper matches a paper following a bib
  • bib//paper matches a paper following a bib at
    any depth
  • //paper matches a paper at any depth
  • paperbook matches a paper or a book
  • _at_language matches a language attribute
  • bib/book/_at_language the language attribute of a
    book

77
  • lt!- - this is comment 1- - gt
  • lt!- - this is comment 2- - gt
  • ltbibgtltbibgt
  • lt!- - this is comment 3- - gt
  • bib/paperyear and publisher/name and _at_language
  • ltxs1template matchpatterngt
  • template
  • ltxs1templategt

78
  • ltxs1template matchAgt
  • ltxs1element nameBgt
  • ltxs1value-of/gt
  • ltxs1element/gt
  • lt/xs1templategt
  • ltxs1template matchAgt
  • ltBgtltxs1value-of/gtlt/Bgt
  • lt/xs1templategt
  • ltxs1template matchgt
  • ltxs1element namename()gt
  • ltxs1value-of/gt
  • lt/xs1elementgt
  • lt/xs1templategt

79
  • ltxs1template match/gt
  • ltHTMLgt
  • ltHEADgt
  • ltTITLEgtBibliography Entrieslt/TITLEgt
  • lt/HEADgt
  • ltBODYgt
  • ltxs1apply-templates/gt
  • lt/BODYgt
  • lt/HTMLgt
  • lt/xs1templategt
  • ltxs1template matchtitlegt
  • ltTDgt
  • ltxs1value-of/gt
  • lt/TDgt
  • lt/xs1templategt
  • ltxs1template matchauthorgt
  • ltTDgt
  • ltxs1value-of/gt
  • lt/TDgt

80
  • ltxs1template matchbookgt
  • ltTRgt
  • ltxs1apply-templates selecttitle/gt
  • ltxs1apply-templates selectauthor/gt
  • lt/TRgt
  • lt/xs1templategt
  • ltxs1template matchbibgt
  • ltTABLEgt
  • ltTBODYgt
  • ltxs1apply-templates/gt
  • lt/TBODYgt
  • lt/TABLEgt
  • lt/xs1templategt

81
  • ltHTMLgt
  • ltHEADgt
  • ltTITLEgtBibliography Entrieslt/TITLEgt
  • lt/HEADgt
  • ltBODYgt
  • ltTABLEgt
  • ltTBODYgt ltTRgtltTDgtt1lt/TDgtltTDgta1lt/TDgtltTDgta2
    lt/TDgtlt/TRgt
  • ltTRgtltTDgtt2lt/TDgtltTDgta3lt/TDgtltTDgta4lt/TDgtlt/TRgt
  • ltTRgtltTDgtt3lt/TDgtltTDgta5lt/TDgtltTDgta6 lt/TDgtltTDgt
    a7lt/TDgtlt/TRgt
  • lt/TBODYgt
  • lt/TABLEgt
  • lt/BODYgt
  • lt/HTMLgt
Write a Comment
User Comments (0)
About PowerShow.com