160 likes | 306 Views
EXTENSIBLE MARKUP LANGUAGE ( XML ). Kristina Coha Damir Jurić Marija LJubešić. Definicija XML-a. to je metajezik ... jezik za opisivanje drugih jezika , koji vam omogucuje da napravite vlastiti markup ili tag.
E N D
EXTENSIBLE MARKUP LANGUAGE ( XML ) Kristina Coha Damir Jurić Marija LJubešić
Definicija XML-a • to je metajezik ... jezik za opisivanje drugih jezika , koji vam omogucuje da napravite vlastiti markup ili tag. • XML je jezik napisan u SGML-u , internacionalnom standardnom jeziku za tekstovne markup sisteme.
Svojstva XML-a • nema fiksno definirane tagove • nema semantike • XML procesor ne zna što XML datoteka znači • XML markup ne sadrži informacije o formatiranju • sadržaj je odvojen od prikaza
Pisanje XML datoteka • svaka XML datoteka mora biti well-formed , što znači da: • vrijednosti atributa - zatvorene jednostrukim ili dvostrukim navodnicima • početni i krajnji tag • prazni elementi - (/) na kraju početnog taga • elementi - pravilno ugniježđeni
Transformiranje XML datoteka • Document Type Definition ( DTD ) - valid XML • XML Schema (XML Data Reduced -XDR) • Cascade Stylesheets ( CSS ) • Extensible Stylesheets ( XSL ) • XML API ( SAX,DOM,...) za neki od XML parsera ( MSXML, Xerces, ProjectX,...)
Općenito o XSL-u • XSL specificira prezentaciju XML informacija koristeci dvije osnovne tehnike: -transformiranje u HTML-opisivanje kako da se prezentira transformirana informacija
XSL se satoji od tri jezika: • XPath ( XPointer i XLink ) definira XML dijelove i uzorke • XSL Transformations ( XSLT ) transformira XML • XSL Formatting Objects formatira XML
Primjer za XPath <contact category="enemy of the state"> <fullname>Smith</fullname> <numbers> <home>801-555-2323</home> <cell>801-555-3232</cell> </numbers> </contact> ---------------------------------------------------------------------------/descendant::contact[fullname="Smith"]/child::numbers/child::*
Struktura jednostavnog XSLT stylesheet-a <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="<XPATH EXPRESSION>"> <!— transformation defined here —> </xsl:template> </xsl:stylesheet>
Povezivanje XML-a i XSL-a • dodavanjem reference u XML dokument na XSL dokument • korištenjem JavaScript u klijentovom browseru • transformiranjem na serveru korištenjem ASP i VBScript-a
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="cd_catalog.xsl"?> <CATALOG> <CD> <TITLE>Empire Burlesque</TITLE> <ARTIST>Bob Dylan</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Columbia</COMPANY> <PRICE>10.90</PRICE> <YEAR>1985</YEAR> </CD> </CATALOG>
<?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <html> <body> <table border="2" bgcolor="yellow"> <tr> <th>Title</th> <th>Artist</th> </tr> <xsl:for-each select="CATALOG/CD" order-by="+ ARTIST"> <tr> <td><xsl:value-of select="TITLE"/></td> <td><xsl:value-of select="ARTIST"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
<html> <body> <script language="javascript"> // Load XML var xml = new ActiveXObject("Microsoft.XMLDOM") xml.async = false xml.load("cd_catalog.xml") // Load the XSL var xsl = new ActiveXObject("Microsoft.XMLDOM") xsl.async = false xsl.load("cd_catalog.xsl") // Transform document.write(xml.transformNode(xsl)) </script> </body> </html>
<% 'Load the XML set xml = Server.CreateObject("Microsoft.XMLDOM") xml.async = false xml.load(Server.MapPath("cd_catalog.xml")) 'Load the XSL set xsl = Server.CreateObject("Microsoft.XMLDOM") xsl.async = false xsl.load(Server.MapPath("cd_catalog.xsl")) 'Transform the file Response.Write(xml.transformNode(xsl)) %>