Module 3: XML Query and Manipulati
Key XML query and manipulation languages include XPath XQuery XSLT SQL/XML
c Munindar P. Singh, CSC 513, Spring 2010 p.45
Module 3: XML Query and Manipulati Key XML query and manipulation - - PowerPoint PPT Presentation
Module 3: XML Query and Manipulati Key XML query and manipulation languages include XPath XQuery XSLT SQL/XML Munindar P. Singh, CSC 513, Spring 2010 c p.45 Metaphors for Handling XML: 1 How we conceptualize XML documents determines
c Munindar P. Singh, CSC 513, Spring 2010 p.45
c Munindar P. Singh, CSC 513, Spring 2010 p.46
c Munindar P. Singh, CSC 513, Spring 2010 p.47
c Munindar P. Singh, CSC 513, Spring 2010 p.48
c Munindar P. Singh, CSC 513, Spring 2010 p.49
c Munindar P. Singh, CSC 513, Spring 2010 p.50
c Munindar P. Singh, CSC 513, Spring 2010 p.51
c Munindar P. Singh, CSC 513, Spring 2010 p.52
c Munindar P. Singh, CSC 513, Spring 2010 p.53
c Munindar P. Singh, CSC 513, Spring 2010 p.54
c Munindar P. Singh, CSC 513, Spring 2010 p.55
c Munindar P. Singh, CSC 513, Spring 2010 p.56
c Munindar P. Singh, CSC 513, Spring 2010 p.57
c Munindar P. Singh, CSC 513, Spring 2010 p.58
c Munindar P. Singh, CSC 513, Spring 2010 p.59
c Munindar P. Singh, CSC 513, Spring 2010 p.60
f o r $x in doc ( ’ q2 . xml ’ ) / / Song where $x / @lg = ’en ’ return
4
<English−Sgr name= ’{ $x / Sgr /@name} ’ t i = ’{ $x / @ti } ’/ >
c Munindar P. Singh, CSC 513, Spring 2010 p.61
c Munindar P. Singh, CSC 513, Spring 2010 p.62
c Munindar P. Singh, CSC 513, Spring 2010 p.63
c Munindar P. Singh, CSC 513, Spring 2010 p.64
c Munindar P. Singh, CSC 513, Spring 2010 p.65
c Munindar P. Singh, CSC 513, Spring 2010 p.66
c Munindar P. Singh, CSC 513, Spring 2010 p.67
c Munindar P. Singh, CSC 513, Spring 2010 p.68
c Munindar P. Singh, CSC 513, Spring 2010 p.69
1 f o r
$x in . . . where some $y in . . . s a t i s f i e s $y . . . $x return . . .
c Munindar P. Singh, CSC 513, Spring 2010 p.70
c Munindar P. Singh, CSC 513, Spring 2010 p.71
1 f o r
$x in . . . where some $x in . . . s a t i s f i e s . . . return . . .
c Munindar P. Singh, CSC 513, Spring 2010 p.72
c Munindar P. Singh, CSC 513, Spring 2010 p.73
c Munindar P. Singh, CSC 513, Spring 2010 p.74
c Munindar P. Singh, CSC 513, Spring 2010 p.75
1 declare
function l o c a l : itemftop ( $t ) { l o c a l : itemf ( $t , ( ) ) } ;
c Munindar P. Singh, CSC 513, Spring 2010 p.76
1 declare
function l o c a l : itemftop ( $t as element ( ) ) as element ( ) ∗ { l o c a l : itemf ( $t , ( ) ) } ;
c Munindar P. Singh, CSC 513, Spring 2010 p.77
<?xml version ="1.0"? > <?xml−stylesheet type =" t e x t / xsl " href ="URL −to−xsl−sheet "?> <main−element >
5
. . . </main−element >
c Munindar P. Singh, CSC 513, Spring 2010 p.78
c Munindar P. Singh, CSC 513, Spring 2010 p.79
c Munindar P. Singh, CSC 513, Spring 2010 p.80
c Munindar P. Singh, CSC 513, Spring 2010 p.81
c Munindar P. Singh, CSC 513, Spring 2010 p.82
< xsl : template match ="/" > . . . </ xsl : template >
< xsl : template match=" t e x t ()" >
2
<xsl : value−of select = ’. ’/ > <xsl : value−of select = ’. ’/ > </ xsl : template >
c Munindar P. Singh, CSC 513, Spring 2010 p.83
1 < xsl : template match ="∗|/" >
<xsl : apply−templates / > </ xsl : template >
c Munindar P. Singh, CSC 513, Spring 2010 p.84
< xsl : template match="X"/ >
2 <!−− X = desired
pattern − − >
c Munindar P. Singh, CSC 513, Spring 2010 p.85
c Munindar P. Singh, CSC 513, Spring 2010 p.86
c Munindar P. Singh, CSC 513, Spring 2010 p.87
c Munindar P. Singh, CSC 513, Spring 2010 p.88
c Munindar P. Singh, CSC 513, Spring 2010 p.89
c Munindar P. Singh, CSC 513, Spring 2010 p.90
c Munindar P. Singh, CSC 513, Spring 2010 p.91
c Munindar P. Singh, CSC 513, Spring 2010 p.92
<keyref name = " . . . " r e f e r =" primary−key− name"> < selector xpath = " . . . " / >
3
< f i e l d name = " . . . " / > </ keyref >
c Munindar P. Singh, CSC 513, Spring 2010 p.93
c Munindar P. Singh, CSC 513, Spring 2010 p.94
1 DOMParser p = new DOMParser ( ) ;
p . parse ( " filename " ) ; Document d = p . getDocument ( ) Element s = d . getDocumentElement ( ) ; NodeList l = s . getElementsByTagName ( " member " ) ;
6 Element m = ( Element )
l . item ( 0 ) ; i n t code = m. g e t A t t r i b u t e ( " code " ) ; NodeList kids = m. getChildNodes ( ) ; Node kid = kids . item ( 0 ) ; String elemName = ( ( Element ) kid ) . getTagName ( ) ; . . .
c Munindar P. Singh, CSC 513, Spring 2010 p.95
c Munindar P. Singh, CSC 513, Spring 2010 p.96
class MemberProcess extends DefaultHandler { public void startElement ( String uri , String n , String qName, A t t r i b u t e s a t t r s ) { i f ( n . equals ( " member " ) ) code = a t t r s . getValue ( " code " ) ;
5
i f ( n . equals ( " project " ) ) inProject = true ; buffer . reset ( ) ; } . . .
c Munindar P. Singh, CSC 513, Spring 2010 p.97
1
. . . public void endElement ( String uri , String n , String qName) {
6
i f ( n . equals ( " project " ) ) inProject = false ; i f ( n . equals ( " member " ) && ! inProject ) . . . do something . . . } }
c Munindar P. Singh, CSC 513, Spring 2010 p.98
c Munindar P. Singh, CSC 513, Spring 2010 p.99
c Munindar P. Singh, CSC 513, Spring 2010 p.100