Synopses & Reviews
When the first edition of this book was written, XML was a relatively new language but already gaining ground fast and becoming more and more widely used in a vast range of applications. By the time of the second edition, XML had already proven itself to be more than a passing fad, and was in fact being used throughout the industry for an incredibly wide range of uses. With the third edition, it was clear that XML was a mature technology, but more important, it became evident that the XML landscape was dividing into several areas of expertise. Now in this edition, we needed to categorize the increasing number of specifications surrounding XML, which either use XML or provide functionality in addition to the XML core specification.
So what is XML? It's a markup language, used to describe the structure of data in meaningful ways. Anywhere that data is input/output, stored, or transmitted from one place to another, is a potential fit for XML's capabilities. Perhaps the most well-known applications are web-related (especially with the latest developments in handheld web access—for which some of the technology is XML-based). However, there are many other non-web-based applications for which XML is useful—for example, as a replacement for (or to complement) traditional databases, or for the transfer of financial information between businesses. News organizations, along with individuals, have also been using XML to distribute syndicated news stories and blog entries.
This book aims to teach you all you need to know about XML—what it is, how it works, what technologies surround it, and how it can best be used in a variety of situations, from simple data transfer to using XML in your web pages. It answers the fundamental questions:
* What is XML?
* How do you use XML?
* How does it work?
* What can you use it for, anyway?
This book is for people who know that it would be a pretty good idea to learn XML but aren't 100 percent sure why. You've heard the hype but haven't seen enough substance to figure out what XML is and what it can do. You may be using development tools that try to hide the XML behind user interfaces and scripts, but you want to know what is really happening behind the scenes. You may already be somehow involved in web development and probably even know the basics of HTML, although neither of these qualifications is absolutely necessary for this book.
What you don't need is knowledge of markup languages in general. This book assumes that you're new to the concept of markup languages, and we have structured it in a way that should make sense to the beginner and yet quickly bring you to XML expert status.
The word "Beginning" in the title refers to the style of the book, rather than the reader's experience level. There are two types of beginner for whom this book is ideal:
* Programmers who are already familiar with some web programming or data exchange techniques. Programmers in this category will already understand some of the concepts discussed here, but you will learn how you can incorporate XML technologies to enhance those solutions you currently develop.
* Those working in a programming environment but with no substantial knowledge or experience of web development or data exchange applications. In addition to learning how XML technologies can be applied to such applications, you will be introduced to some new concepts to help you understand how such systems work.
The subjects covered in this book are arranged to take you from novice to expert in as logical a manner as we could. This Fourth Edition is structured in sections based on various areas of XML expertise. Unless you are already using XML, you should start by reading the introduction to XML in Part I. From there, you can quickly jump into specific areas of expertise, or, if you prefer, you can read through the book in order. Keep in mind that there is quite a lot of overlap in XML, and that some of the sections make use of techniques described elsewhere in the book.
* The book begins by explaining what exactly XML is and why the industry felt that a language like this was needed.
* After covering the why, the next logical step is the how, so it shows you how to create well-formed XML.
* Once you understand the whys and hows of XML, you'll go on to some more advanced things you can do when creating your XML documents, to make them not only well formed, but valid. (And you'll learn what "valid" really means.)
* After you're comfortable with XML and have seen it in action, the book unleashes the programmer within and looks at an XML-based programming language that you can use to transform XML documents from one format to another.
* Eventually, you will need to store and retrieve XML information from databases. At this point, you will learn not only the state of the art for XML and databases, but also how to query XML information using an SQL-like syntax called XQuery.
* XML wouldn't really be useful unless you could write programs to read the data in XML documents and create new XML documents, so we'll get back to programming and look at a couple of ways that you can do that.
* Understanding how to program and use XML within your own business is one thing, but sending that information to a business partner or publishing it to the Internet is another. You'll learn about technologies that use XML that enable you to send messages across the Internet, publish information, and discover services that provide information.
* Since you have all of this data in XML format, it would be great if you could easily display it to people, and it turns out you can. You'll see an XML version of HTML called XHTML. You'll also look at a technology you may already be using in conjunction with HTML documents called CSS. CSS enables you to add visual styles to your XML documents. In addition, you'll learn how to design stunning graphics and make interactive forms using XML.
* Finally, the book ends with a case study, which should help to give you ideas about how XML can be used in real-life situations, and which could be used in your own applications.
This book builds on the strengths of the earlier editions, and provides new material to reflect the changes in the XML landscape—notably XQuery, RSS and Atom, and AJAX. Updates have been made to reflect the most recent versions of specifications and best practices throughout the book. In addition to the many changes, each chapter has a set of exercise questions to test your understanding of the material. Possible solutions to these questions appear in Appendix A.
Part I: Introduction: The introduction is where most readers should begin. The first three chapters introduce some of the goals of XML as well as the specific rules for constructing XML. Once you have read this part you should be able to read and create your own XML documents.
Chapter 1: What Is XML?: This chapter cover some basic concepts, introducing the fact that XML is a markup language (a bit like HTML) whereby you can define your own elements, tags, and attributes (known as a vocabulary). You'll see that tags have no presentation meaning—they're just a way to describe the structure of the data.
Chapter 2: Well-Formed XML: In addition to explaining what well-formed XML is, we offer a look at the rules that exist (the XML 1.0 and 1.1 Recommendations) for naming and structuring elements—you need to comply with these rules in order to produce well-formed XML.
Chapter 3: XML Namespaces: Because tags can be made up, you need to avoid name conflicts when sharing documents. Namespaces provide a way to uniquely identify a group of tags, using a URI. This chapter explains how to use namespaces.
Part II: Validation: In addition to the well-formedness rules you learn in Part I, you will most likely want to learn how to create and use different XML vocabularies. This Part introduces you to DTDs, XML Schemas, and RELAX NG: three languages that define custom XML vocabularies. It also shows you how to utilize these definitions to validate your XML documents.
Chapter 4: Document Type Definitions: You can specify how an XML document should be structured, and even provide default values, using Document Type Definitions (DTDs). If XML conforms to the associated DTD, it is known as valid XML. This chapter covers the basics of using DTDs.
Chapter 5: XML Schemas: XML Schemas, like DTDs, enable you to define how a document should be structured. In addition to defining document structure, they enable you to specify the individual datatypes of attribute values and element content. They are a more powerful alternative to DTDs.
Chapter 6: RELAX NG: RELAX NG is a third technology used to define the structure of documents. In addition to a new syntax and new features, it takes the best from XML Schemas and DTDs, and is therefore very simple and very powerful. RELAX NG has two syntaxes; both the full syntax and compact syntax are discussed.
Part III: Processing: In addition to defining and creating XML documents, you need to know how to work with documents to extract information and convert it to other formats. In fact, easily extracting information and converting it to other formats is what makes XML so powerful.
Chapter 7: XPath: The XPath language is used to locate sections and data in the XML document, and it’s important in many other XML technologies.
Chapter 8: XSLT: XML can be transformed into other XML documents, HTML, and other formats using XSLT stylesheets, which are introduced in this chapter.
Part IV: Databases: Creating and processing XML documents is good, but eventually you will want to store those documents. This section describes strategies for storing and retrieving XML documents and document fragments from different databases.
Chapter 9: XQuery, the XML Query
Beginning XML 4th Edition begins with a broad overview of the technology and then focuses on specific facets of the various specifications for the reader. This book teaches you all you need to know about XML what it is, how it works, what technologies surround it, and how it can best be used in a variety of situations, from simple data transfer to using XML in your web pages. It builds on the strengths of the previous editions, and provides new material to reflect the changes in the XML landscape— notably Ajax, REST, and microformats. In addition to the technical updates and additions, this edition takes great care to tightly focus the examples to help the reader better see the effect of the XML and spend less time looking at long sections of code that are fun for the example, but add no practical learning value.
Some of the topics covered include: Well-formed XML and Namespaces DTDs, Schemas, and RELAX NG XPath and XSLT Databases, queries, and XQuery XML DOM and Simple API for XML (SAX) RSS, Atom, and Microformats Web Services SOAP, WSDL, and REST Ajax XHTML and CSS Xforms SVG
* Addresses XPath and XSLT, databases, queries, XQuery, RSS, Atom, microformats, Web services, SOAP, WSDL, XHTML, CSS, XForms, SVG, and more
The perfect resource for beginning XML programmers, this guidebook clearly shows you what XML is, how to use it, and what technologies surround it. The authors build on the strengths of previous editions while covering the latest changes in the XML landscape such as XQuery, RSS and Atom, and Ajax. The most recent specifications are presented along with best practices to follow when developing XML solutions.
The fourth edition will help you quickly progress from XML basics to more advanced programming techniques. You'll delve into the state of the art for XML and databases, discover how to query XML information, retrieve data, and create new XML documents. In addition, you'll learn how to publish information on the web, design dynamic interactive graphics, and make interactive forms. You'll be able to apply this information to build robust applications in real-world situations.
What you will learn from this book
- Specific rules to follow for constructing XML
How to create and use different XML vocabularies
Steps for extracting information and converting it to HTML or other formats
Strategies for storing and retrieving XML documents
How to manipulate XML using DOM and SAX
Tips for improving communication with XML by using Ajax techniques, RSS, and SOAP
How to use CSS to add visual styles to your XML documents
Who this book is for
This book is for any programmer interested in learning how to use XML. Some knowledge of web programming or data exchange techniques is helpful but not necessary.
Wrox Beginning guides are crafted to make learning programming languages and technologies easier than you think, providing a structured, tutorial format that will guide you through all the techniques involved.
The perfect resource for beginning XML programmers, this guidebook shows you what XML is, how to use it, and what technologies surround it. The authors build on the strengths of previous editions while covering the latest changes in the XML landscape such as XQuery, RSS and Atom, and Ajax. You will progress from XML basics to more advanced programming techniques and learn how to publish information on the web, design dynamic interactive graphics, and make interactive forms.
About the Author
is a Senior Technical Consultant for CGI, a full-service IT and business process services partner. Providing technical leadership and guidance for solving his clients' business problems, he is a jack-of-all-trades and master of some. With a career that has included design, development, support, training, writing, and other roles, he has had extensive experience building scalable, reliable, enterprise-class applications. David loves to peek under the hood at any new technology that comes his way, and when one catches his fancy, he really gets his hands dirty. He loves nothing more than sharing these technologies with others.
Jeff Rafter is an independent consultant based in Redlands, California. His focus is one emerging technology and web standards, including XML and validation. he currently works with Baobab Health Partnership with a focus on improving world health.
Joe Fawcett (http://joe.fawcett.name) started programming in the 1970s and worked briefly in IT when leaving full-time education. he then pursued a more checkered career before returning to software development in 1994. In 2003 he was awarded the title of Microsoft Most Valuable Professional in XML for community contributions and technical expertise; he has subsequently been re-awarded every year since. Joe currently works in London and is head of software development for FTC Kaplan Ltd., a leading international provider of accountancy and business training.
Eric van der Vlist is an independent consultant and trainer. His domains of expertise include web development and XML technologies. He is the creator and main editor of XMLfr.org, the main site dedicated to XML technologies in French, the lead author of Professional Web 2.0 Programming, the author of the O'Reilly animal books XML Schema and RELAX NG and a member or the ISO DSDL (http://dsdl.org) working group focused on XML schema languages. he is based in Paris and can be reached at email@example.com , or meet him at one of the many conferences where he presents his projects.
Danny Ayers is a freelance developer and consultant specializing in cutting-edge web technologies. His blog (http://dannyayers.com) tends to feature material relating to the Semantic Web and/or cat photos.
Jon Duckett co-authored Wrox Press' first book on XML in 1998. After 4 years with Wrox in the UK, Jon is now a freelance web developer working with clients in the UK, US and Australia, and has co-authored 10 programming books.
Andrew Watt has been programming for 20 years, including 10 years work with the Web. He has several books in the areas of XML and XSLT to his credit and is well known for his work on XML.com.
Linda McKinnon has more than 10 years of experience as a successful trainer and network engineer, assisting both private and public enterprises in network architecture design, implementation, system administration, and RP procurement. She is a renowned mentor and has published numerous Linux study guide for Wiley Press and Gearhead Press.
Table of Contents
Part I: Introduction.
Chapter 1: What Is XML?
Chapter 2: Well-Formed XML.
Chapter 3: XML Namespaces.
Part II: Validation.
Chapter 4: Document Type Definitions.
Chapter 5: XML Schemas.
Chapter 6: RELAX NG.
Part III: Processing.
Chapter 7: XPath.
Chapter 8: XSLT.
Part IV: Databases.
Chapter 9: XQuery, the XML Query Language.
Chapter 10: XML and Databases.
Part V: Programming.
Chapter 11: The XML Document Object Model (DOM).
Chapter 12: Simple API for XML (SAX).
Part VI: Communication.
Chapter 13: RSS, Atom, and Content Syndication.
Chapter 14: Web Services.
Chapter 15: SOAP and WSDL.
Chapter 16: Ajax.
Part VII: Display.
Chapter 17: Cascading Style Sheets (CSS).
Chapter 18: XHTML.
Chapter 19: Scalable Vector Graphics (SVG).
Chapter 20: XForms.
Part VIII: Case Study.
Chapter 21: Case Study: Payment Calculator.
Chapter 22: Case Study: Payment Calculator—Ruby on Rails.
Appendix A: Exercise Solutions.
Appendix B: XPath Reference.
Appendix C: XSLT Reference.
Appendix D: The XML Document Object Model.
Appendix E: XML Schema Element and Attribute Reference.
Appendix F: XML Schema Datatypes Reference.
Appendix G: SAX 2.0.2 Reference.