| About the Author | p. ix |
| About the Technical Reviewers | p. x |
| Acknowledgments | p. xi |
| Introduction | p. xii |
| Introduction to XML and Web Services | p. 1 |
| Exploring the History of XML | p. 2 |
| Using XML in the Real World | p. 4 |
| Introducing Service Oriented Architecture and Web Services | p. 9 |
| Defining Common Terms and Acronyms | p. 14 |
| Conclusion | p. 14 |
| XML Structure | p. 15 |
| Introducing Characters | p. 15 |
| Understanding Basic Layout | p. 18 |
| Understanding Basic Syntax | p. 20 |
| Using Namespaces | p. 29 |
| Using IDs, IDREF/IDREFS, and xml:id | p. 36 |
| Using xml:space and xml:lang | p. 41 |
| Understanding XML Base | p. 42 |
| Conclusion | p. 43 |
| Validation | p. 45 |
| Introducing Validation | p. 45 |
| Introducing Document Type Definitions | p. 46 |
| Using XML Schemas | p. 71 |
| Using RELAX NG | p. 100 |
| Conclusion | p. 121 |
| XPath, XPointer, XInclude, and the Future | p. 123 |
| Introducing XPath | p. 123 |
| Introducing XPointer | p. 146 |
| Introducing XInclude | p. 151 |
| Examining the Future of XML | p. 157 |
| Conclusion | p. 161 |
| PHP and XML | p. 163 |
| Introducing XML in PHP 5 | p. 163 |
| Configuring libxml Support | p. 167 |
| Introducing Encoding | p. 168 |
| Figuring Out the libxml2 Version | p. 172 |
| Introducing Parser Options | p. 173 |
| Introducing PHP Streams | p. 174 |
| Performing Error Handling | p. 177 |
| Conclusion | p. 179 |
| Document Object Model (DOM) | p. 181 |
| Introducing the DOM | p. 181 |
| Using the DOM Extension | p. 188 |
| Performing Validation | p. 214 |
| Using XPath | p. 216 |
| Extending Classes | p. 219 |
| Common Questions, Misconceptions, and Problems | p. 223 |
| Migrating from domxml to the DOM Extension | p. 228 |
| Seeing Some DOM Examples | p. 230 |
| Conclusion | p. 237 |
| SimpleXML | p. 239 |
| Introducing SimpleXML | p. 239 |
| Using SimpleXML | p. 239 |
| Using Namespaces in SimpleXML | p. 258 |
| Using XPath | p. 260 |
| Seeing Some Examples in Action | p. 262 |
| Conclusion | p. 268 |
| Simple API for XML (SAX) | p. 269 |
| Introducing SAX | p. 269 |
| Using the xml Extension | p. 270 |
| Migrating from PHP 4 to PHP 5 | p. 300 |
| Seeing Some Examples in Action | p. 306 |
| Conclusion | p. 310 |
| XMLReader | p. 311 |
| Introducing XMLReader | p. 311 |
| Using XMLReader | p. 314 |
| Exporting to DOM Objects | p. 328 |
| Dealing with Namespaces | p. 328 |
| Performing Validation | p. 333 |
| Seeing Some Examples in Action | p. 335 |
| Conclusion | p. 340 |
| Extensible Stylesheet Language Transformations (XSLT) | p. 341 |
| Introducing XSL and XSLT | p. 341 |
| Introducing the XSL Extension | p. 387 |
| Using the XSL Extension | p. 390 |
| Using Parameters in XSL | p. 393 |
| Calling PHP Functions from XSL | p. 395 |
| Seeing Some Examples in Action | p. 399 |
| Conclusion | p. 408 |
| Effective and Efficient Processing | p. 409 |
| Looking at the Pros and Cons of Parsers | p. 409 |
| Optimizing Parsing and Processing | p. 426 |
| Combining Technologies | p. 433 |
| Conclusion | p. 439 |
| XML Security | p. 441 |
| Introducing XML Security | p. 441 |
| Introducing Basic Security | p. 442 |
| Introducing Enterprise Security | p. 448 |
| Introducing Canonical XML | p. 449 |
| Introducing Exclusive XML Canonicalization | p. 456 |
| Introducing XML Signatures | p. 460 |
| Introducing XML Encryption | p. 474 |
| Conclusion | p. 489 |
| PEAR and XML | p. 491 |
| What Is PEAR? | p. 491 |
| Using PEAR | p. 492 |
| Using PEAR and XML Together | p. 493 |
| Conclusion | p. 519 |
| Content Syndication: RSS and Atom | p. 521 |
| Understanding the Evolution of RSS and Atom | p. 521 |
| Introducing RSS 1.0: RDF Site Summary | p. 523 |
| Introducing RSS 2.0: Really Simple Syndication | p. 534 |
| Introducing Atom 1.0 | p. 542 |
| Choosing a Format | p. 550 |
| Seeing Some Examples in Action | p. 551 |
| Using PEAR XML_RSS | p. 563 |
| Conclusion | p. 566 |
| Web Distributed Data Exchange (WDDX) | p. 567 |
| Introducing WDDX | p. 567 |
| Understanding the Structure of WDDX | p. 569 |
| Using WDDX | p. 576 |
| Seeing Some Examples in Action | p. 583 |
| Using PEAR XML_WDDX | p. 589 |
| Conclusion | p. 593 |
| XML-RPC | p. 595 |
| Introducing XML-RPC | p. 595 |
| Exploring the XML-RPC Structure | p. 596 |
| Using xmlrpc in PHP | p. 608 |
| Using XML_RPC in PEAR | p. 622 |
| Seeing Some Examples in Action | p. 629 |
| Conclusion | p. 631 |
| Representational State Transfer (REST) | p. 633 |
| Introducing REST | p. 633 |
| Introducing REST Web Services | p. 634 |
| Creating a REST Web Service | p. 639 |
| Introducing the Yahoo Web Services | p. 646 |
| Introducing the Amazon Web Services | p. 660 |
| Conclusion | p. 672 |
| SOAP | p. 673 |
| Introducing the Web Services Description Language (WSDL) | p. 673 |
| Introducing SOAP | p. 696 |
| Using the SOAP Extension | p. 706 |
| Using PEAR SOAP | p. 734 |
| Seeing Some Examples in Action | p. 735 |
| Conclusion | p. 750 |
| Universal Description, Discovery, and Integration (UDDI) | p. 751 |
| Introducing UDDI | p. 751 |
| Introducing Data Structures | p. 753 |
| Introducing the SOAP API | p. 764 |
| Accessing the SAP UDDI Registry via SOAP | p. 768 |
| Conclusion | p. 780 |
| PEAR and Web Services | p. 781 |
| Using Services_Amazon | p. 781 |
| Using Services_Delicious | p. 785 |
| Using Services_Ebay | p. 786 |
| Using Services_Google | p. 786 |
| Using Services_Technorati | p. 789 |
| Using Services_Weather | p. 793 |
| Using Services_Webservice | p. 797 |
| Using Services_Yahoo | p. 802 |
| Using SOAP | p. 806 |
| Using UDDI | p. 807 |
| Using XML_RPC | p. 808 |
| Conclusion | p. 809 |
| Other XML Technologies and Extensions | p. 811 |
| Using XMLWriter | p. 811 |
| Using SDO XML Data Access Service | p. 820 |
| Introducing Asynchronous JavaScript Technology and XML (Ajax) | p. 826 |
| Introducing Wireless Application Protocol (WAP) | p. 830 |
| Conclusion | p. 838 |
| XML Schema Built-in Data Types Reference | p. 839 |
| Type Definition | p. 839 |
| Primitive Types | p. 839 |
| Derived Types | p. 841 |
| Extension APIs | p. 845 |
| libxml | p. 845 |
| xml | p. 847 |
| XMLReader | p. 849 |
| SimpleXML | p. 852 |
| DOM | p. 854 |
| XSL | p. 866 |
| SOAP | p. 867 |
| XMLWriter | p. 871 |
| Features and Changes in PHP 6 | p. 875 |
| xml Extension | p. 875 |
| XMLReader Extension | p. 876 |
| SimpleXML Extension | p. 879 |
| DOM Extension | p. 883 |
| Index | p. 889 |
| Table of Contents provided by Ingram. All Rights Reserved. |