Getting Started with XML: a Manual and Workshop
Total Page:16
File Type:pdf, Size:1020Kb
Getting Started with XML: A Manual and Workshop Eric Lease Morgan Getting Started with XML: A Manual and Workshop by Eric Lease Morgan This manual is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as pub- lished by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This manual is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied war- ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this manual if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Special thanks go to David Cherry, a long-time friend, who provided the drawings. Lori Bowen Ayre deserves a round of applause for providing editorial support. Infopeople are the folks who sponsored the whole thing. Roy Tennant helped with proofreading. Thank you! --ELM For possibly more up-to-date information see the Getting Started With XML home page [http://infomotions.com/musings/getting-started/] . Editions: 1. The first public release of this document was dated Saturday, February 22, 2003. 2. The second edition was dated Monday, April 21, 2003 (Dingus Day). 3. This is the third edition of this document, Sunday, October 26, 2003 (getting ready for MCN). 4. This is the fourth edition of this document, Tuesday, 27, 2004 (Shining a LAMP on XML 'n Monterey). Table of Contents Preface ....................................................................................................................vii About the book ................................................................................................. vii About the author .............................................................................................. viii Disclaimer ...................................................................................................... viii I. General introduction to XML ...................................................................................... 1 1. Introduction .................................................................................................... 3 What is XML and why should I care? ............................................................. 3 2. A gentle introduction to XML markup ................................................................. 6 XML syntax ...............................................................................................6 XML documents always have one and only one root element .............................. 6 Element names are case-sensitive ................................................................... 7 Elements are always closed ........................................................................... 7 Elements must be correctly nested .................................................................. 7 Elements' attributes must always be quoted ...................................................... 8 There are only five entities defined by default ................................................... 8 Namespaces ...............................................................................................8 XML semantics .......................................................................................... 9 Exercise - Checking XML syntax ................................................................. 10 3. Creating your own markup .............................................................................. 11 Purpose and components ............................................................................ 11 Exercise - Creating your own XML mark up .................................................. 13 4. Document type definitions ............................................................................... 15 Defining XML vocabularies with DTDs ........................................................ 15 Names and numbers of elements .................................................................. 16 PCDATA ................................................................................................ 17 Sequences ................................................................................................ 17 Putting it all together ................................................................................. 17 Exercise - Writing a simple DTD ................................................................. 19 Exercise - Validating against a system DTD ................................................... 20 Exercise - Fixing an XML document by hand ................................................. 20 II. Stylesheets with CSS & XSLT ................................................................................. 22 5. Rendering XML with cascading style sheets ....................................................... 24 Introduction ............................................................................................. 24 display .................................................................................................... 25 margin .................................................................................................... 26 text-indent ............................................................................................... 26 text-align ................................................................................................. 26 list-style .................................................................................................. 26 font-family .............................................................................................. 27 font-size .................................................................................................. 27 font-style ................................................................................................. 27 font-weight .............................................................................................. 27 Putting it together ...................................................................................... 28 Tables ..................................................................................................... 29 Exercise - Displaying XML Using CSS ......................................................... 30 6. Transforming XML with XSLT ........................................................................ 32 Introduction ............................................................................................. 32 A few XSLT elements ................................................................................ 32 Exercise - Hello, World .............................................................................. 33 Exercise - XML to text ............................................................................... 34 Exercise - XML to text, redux ..................................................................... 36 Exercise - Transform an XML document into XHTML .................................... 37 Yet another example .................................................................................. 40 iv Getting Started with XML: A Manual and Workshop Exercise - Transform an XML document with an XSLT stylesheet ..................... 42 Displaying tabular data ............................................................................... 42 Manipulating XML data ............................................................................. 44 Using XSLT to create other types of text files ................................................. 46 Exercise - XML to XHTML ........................................................................ 47 Exercise - Displaying TEI files in your browser .............................................. 47 Exercise - Transform MODS into XHTML .................................................... 48 III. Specific XML vocabularies .................................................................................... 49 7. XHTML ...................................................................................................... 51 Introduction ............................................................................................. 51 Exercise - Writing an XHTML document ...................................................... 54 Exercise - Convert MARC to XHTML .......................................................... 55 Exercise - Tranform MARCXML-like (SFX) to XHTML ................................. 55 8. MARCXML ................................................................................................. 56 About MARCXML ................................................................................... 56 Exercise - Convert MARC to MARCXML ..................................................... 58 Exercise - Validating schema ....................................................................... 58 9. MODS ......................................................................................................... 59 About MODS ........................................................................................... 59 Exercise - Transform MARCXML to MODS ................................................. 60 Exercise - Transform MARCXML to MODS, redux ........................................ 60 10. EAD .......................................................................................................... 62 Introduction ............................................................................................