Upload
hunter-jordan
View
215
Download
0
Embed Size (px)
Citation preview
04/21/2304/21/23 Comp Sci 346Comp Sci 346 11
XML_2XML_2
Ch. 7Ch. 7
04/21/2304/21/23 Comp Sci 346Comp Sci 346 22
XML VocabulariesXML Vocabularies
MathMLMathML An application to parse, render, and edit An application to parse, render, and edit
MathML: AmayaMathML: Amaya http://www.w3.org/Amaya/User/BinDist.html
04/21/2304/21/23 Comp Sci 346Comp Sci 346 33
04/21/2304/21/23 Comp Sci 346Comp Sci 346 44
Rendering with AmayaRendering with Amaya
Mathml1.xmlMathml1.xml Mathml2.xmlMathml2.xml Mathml3.xmlMathml3.xml
04/21/2304/21/23 Comp Sci 346Comp Sci 346 55
Mathml1.xmlMathml1.xml<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/TR/MathML2/dtd/mathml2.dtd"><!-- Fig. 14.16: mathml1.mml --><!-- MathML equation. --><math xmlns="http://www.w3.org/1998/Math/MathML"> <mn>2</mn> <mo>+</mo> <mn>3</mn> <mo>=</mo> <mn>5</mn></math>
04/21/2304/21/23 Comp Sci 346Comp Sci 346 66
Mathml2.xmlMathml2.xml<math xmlns="http://www.w3.org/1998/Math/MathML"> <mn>3</mn> <mo>⁢</mo> <msup> <mi>x</mi> <mn>2</mn> </msup> <mo>+</mo> <mi>x</mi> <mo>−</mo> <mfrac> <mn>2</mn> <mi>x</mi> </mfrac> <mo>=</mo> <mn>0</mn></math>
04/21/2304/21/23 Comp Sci 346Comp Sci 346 77
Mathml3.xmlMathml3.xml<math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> <msubsup> <mo>∫</mo> <mn>0</mn> <mrow> <mn>1</mn> <mo>−</mo> <mi>y</mi> </mrow> </msubsup> <msqrt> <mn>4</mn> <mo>⁢</mo> <msup> <mi>x</mi> <mn>2</mn> </msup> <mo>+</mo> <mi>y</mi> </msqrt> <mi>δ</mi> <mi>x</mi> </mrow></math>
04/21/2304/21/23 Comp Sci 346Comp Sci 346 88
Rendering with Firefox and IERendering with Firefox and IE
Download and install additional fonts for Download and install additional fonts for FirefoxFirefox www.mozilla.org/projects/mathml/fonts/ or or https://developer.mozilla.org/en/Mozilla_MathML_Project/Fonts
Internet Explorer, get a plug in Internet Explorer, get a plug in (Exercise)(Exercise) www.dessci.com/en/products/mathplayer/
04/21/2304/21/23 Comp Sci 346Comp Sci 346 99
04/21/2304/21/23 Comp Sci 346Comp Sci 346 1010
Plug-in Mathplayer for IEPlug-in Mathplayer for IE
04/21/2304/21/23 Comp Sci 346Comp Sci 346 1111
04/21/2304/21/23 Comp Sci 346Comp Sci 346 1212
How to render an XML Document?How to render an XML Document?
Extensible Stylesheet Language (XSL)Extensible Stylesheet Language (XSL) Specify how programs should render XML Specify how programs should render XML
document datadocument data XSL-FO (XSL Formatted Objects)XSL-FO (XSL Formatted Objects)
• Vocabulary for specifying formattingVocabulary for specifying formatting XSLT (XSL Transformation)XSLT (XSL Transformation)
• Defines rules for transforming one XML documment to Defines rules for transforming one XML documment to anotheranother
• From Source tree to Result treeFrom Source tree to Result tree XpathXpath
• Locate parts of the source tree document that match Locate parts of the source tree document that match templates defined in the XSL stylesheettemplates defined in the XSL stylesheet
04/21/2304/21/23 Comp Sci 346Comp Sci 346 1313
<?xml version = "1.0"?><?xml:stylesheet type = "text/xsl" href = "games.xsl"?>
<!-- Fig. 20.28 : games.xml --><!-- Sports Database -->
<sports>
<game id = "783"> <name>Cricket</name>
<paragraph> Popular in Commonwealth nations. </paragraph> </game>
Processing Instruction (PI) references the XSL stylesheet games.xsl
Specifies location of XSLT
<? ?> delimits a PI target
04/21/2304/21/23 Comp Sci 346Comp Sci 346 1414
<game id = "239"> <name>Baseball</name>
<paragraph> Popular in America. </paragraph> </game>
<game id = "418"> <name>Soccer (Football)</name>
<paragraph> Popular sport in the world. </paragraph> </game>
</sports>
Games.xml continued
04/21/2304/21/23 Comp Sci 346Comp Sci 346 1515
XSL style sheetXSL style sheet<?xml version = "1.0"?>
<!-- Fig. 20.29 : games.xsl --><!-- A simple XSLT transformation -->
<!-- reference XSL stylesheet URI --><xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
<xsl:output method = "html" omit-xml-declaration = "no" doctype-system = "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd" doctype-public = "-//W3C//DTD XHTML 1.0 Strict//EN"/>
<xsl:template match = "/"> <!-- match root element -->
Start style sheet
Binds namespace xsl to W3C XSLT URI
Output as xhtml file. Doctype as xhtml
“/” is used to select the root
04/21/2304/21/23 Comp Sci 346Comp Sci 346 1616
Extensible Stylesheet Language (XSL)Extensible Stylesheet Language (XSL)
Element Description <xsl:apply-templates> Applies the templates of the XSL document to the children of
the current node. <xsl:apply-templates match = "expression">
Applies the templates of the XSL document to the children of expression. The value of the attribute match (i.e., expression) must be some XPath expression that specifies elements.
<xsl:template> Contains rules to apply when a specified node is matched. <xsl:value-of select = "expression">
Selects the value of an XML element and adds it to the output tree of the transformation. The required select attribute contains an XPath expression.
<xsl:for-each select = "expression">
Implicitly contains a template that is applied to every node selected by the XPath specified by the select attribute.
<xsl:sort select = "expression">
Used as a child element of an <xsl:apply-templates> or <xsl:for-each> element. Sorts the nodes selected by the <apply-template> or <for-each> element so that the nodes are processed in sorted order.
<xsl:output> Has various attributes to define the format (e.g., xml, html), version (e.g., 1.2, 2.0), document type and media type of the output document. This tag is a top-level element, which means that it can be used only as a child element of a stylesheet.
<xsl:copy> Adds the current node to the output tree. Fig. 20.27 Commonly used XSL stylesheet elements.
04/21/2304/21/23 Comp Sci 346Comp Sci 346 1717
Rendering games.xmlRendering games.xml
04/21/2304/21/23 Comp Sci 346Comp Sci 346 1818
Using XSLT to Sort and Format DataUsing XSLT to Sort and Format Data
Compare the source in sorting.xml (chapters are out of order) and the rendering
04/21/2304/21/23 Comp Sci 346Comp Sci 346 1919
04/21/2304/21/23 Comp Sci 346Comp Sci 346 2020
Other applications using XMLOther applications using XML
DOMDOM PHPPHP
04/21/2304/21/23 Comp Sci 346Comp Sci 346 2121
DOMDOM
Document Object ModelDocument Object Model Syntax tree for XML documentSyntax tree for XML document Tree is passed to application (e.g.browser)Tree is passed to application (e.g.browser) Application can modify the document via Application can modify the document via
the treethe tree Browser-independent JavaScript Browser-independent JavaScript
functionalityfunctionality
04/21/2304/21/23 Comp Sci 346Comp Sci 346 2222
Use XML with PHPUse XML with PHP
XML functionality is based on libxml2 XML functionality is based on libxml2 librarylibrary Enabled by default on Windows and Enabled by default on Windows and
Linux/UnixLinux/Unix Check for the following with phpinfo()Check for the following with phpinfo()
domdom libxmllibxml simplexmlsimplexml
04/21/2304/21/23 Comp Sci 346Comp Sci 346 2323
Parsing XML with PHPParsing XML with PHP
Example 1: Load an xml file into the XML Example 1: Load an xml file into the XML parser and parser and dumpdump the contents the contents Use 25-2xmlload.php to load 25-Use 25-2xmlload.php to load 25-
1messages.xml as an object1messages.xml as an object Dump the contents of the objectDump the contents of the object
04/21/2304/21/23 Comp Sci 346Comp Sci 346 2424
Parsing XML with PHPParsing XML with PHP
Example 2: Load an xml file into the XML Example 2: Load an xml file into the XML parser and parser and displaydisplay the contents the contents Load 25-3 books.xml into XML parser 25-Load 25-3 books.xml into XML parser 25-
4xmlparse.php 4xmlparse.php Break up the elementsBreak up the elements and display the contentsand display the contents
Reference on objects in PHPReference on objects in PHPhttp://us2.php.net/manual/en/language.oop5.php#op5.introhttp://us2.php.net/manual/en/language.oop5.php#op5.intro
04/21/2304/21/23 Comp Sci 346Comp Sci 346 2525
Parsing XML with PHPParsing XML with PHP
Example 3: Rewrite example 1 to load an Example 3: Rewrite example 1 to load an xml file into the XML parser and xml file into the XML parser and displaydisplay the contentsthe contents Use 25-4xmlload1.php to load 25-Use 25-4xmlload1.php to load 25-
1messages.xml as an object1messages.xml as an object Display the contents of the objectDisplay the contents of the object
What are the changes?What are the changes?
04/21/2304/21/23 Comp Sci 346Comp Sci 346 2626
SummarySummary
Conclusions?Conclusions? Description of dataDescription of data Method of data exchangeMethod of data exchange Well structured filesWell structured files