Get a head start with eXist, the open source NoSQL database and application development platform built entirely around XML technologies. With this hands-on guide, you’ll learn eXist from the ground up, from using this feature-rich database to work with millions of documents to building complex web applications that take advantage of eXist’s many extensions.
If you’re familiar with XML—as a student, professor, publisher, or developer—you’ll find that eXist is ideal for all kinds of documents. This book shows you how to store, query, and search documents with XQuery and other XML technologies, and how to construct applications on top of the database with tools such as eXide and eXist’s built-in development environment.
Manage both data-oriented and text-oriented markup documents securely
Build a sample application that analyzes and searches Shakespeare’s plays
Go inside the architecture and learn how eXist processes documents
Learn how to work with eXist’s internal development environment
Choose among various indexes, including a full-text index based on Apache Lucene
Dive into eXist’s APIs for integrating or interacting with the database
Extend eXist by building your own Triggers, Scheduled Tasks, and XQuery extension modules
What Is eXist?
eXist Compared to Other Database Systems
Who Is Using eXist, and for What?
Contributing to the Community
Chapter 2Getting Started
Downloading and Installing eXist
Starting and Stopping eXist with a GUI
Starting and Stopping eXist from the Command Line
A First Tour Around Town
Getting Files into and out of the Database
Chapter 3Using eXist 101
Preparations and Basic Application Setup
Viewing the Data
Listing the Plays (XML)
Listing the Plays (HTML)
Analyzing the Plays
Linking the Analysis to the Play Overview
Searching the Plays
Creating a Log
Efficient XML Processing Architecture
Chapter 5Working with the Database
The Database’s Content
The XPath Collection and Doc Functions in eXist
Querying the Database Using REST
Controlling the Database from Code
Chapter 6XQuery for eXist
eXist’s XQuery Implementation
Controlling XQuery Execution
XQuery Documentation with xqDoc
Chapter 7Extension Modules
Types of Extension Modules
Enabling Extension Modules
Managing Users and Groups
User and Group Management with the Java Admin Client
Adam Retter is one of the core developers of eXist-db and has been using and contributing to eXist since 2005. Passionate about the Web, Code Quality, Standards and Portable Code, Adam has been promoting XQuery as a Web Application development language for the last few years. Adam is a member of the XML Guild, an Invited Expert to the W3C XML Query Working group and on the program committee of both the XML Prague and the XML Summer School conferences.
The animal on the cover of eXist is a lettered araçari (Pteroglossus inscriptus), a species of toucan that lives in swampy regions and forests around South America. It has been recorded at heights of approximately 4,000 feet in the Andean foothills, although lowland forest (even heavily disturbed rainforest) seems to be its preferred habitat.
The lettered araçari is only about a foot in length and weighs in at approximately one quarter of a pound. Its large, colorful bill helps members of the species recognize each other for mating purposes. It also allows the lettered araçari to grab and eat fruit, insects, and small birds such as finches. Birds of both genders have bodies that are green on top with striking yellow undersides, red rear ends, golden bills, and blue patches surrounding dark eyes.
A social animal, the lettered araçari roosts in groups throughout the year. It nests in cavities and sleeps with its tail folded over its back, along with up to five other adults and their offspring.
Many of the animals on O’Reilly covers are endangered; all of them are important to the world. To learn more about how you can help, go to animals.oreilly.com.
The cover image is from Johnson's Natural History. The cover fonts are URW Typewriter and Guardian Sans. The text font is Adobe Minion Pro; the heading font is Adobe Myriad Condensed; and the code font is Dalton Maag’s Ubuntu Mono.
Retter and Siegel's eXist is a well-conceived and executed on-ramp for new users and a comprehensive guide for practitioners at all levels. A practical companion to Walmsley's XQuery for users of the popular, open source eXist platform, the book guides readers in applying XQuery and XML to develop real-world desktop or web applications, soup-to-nuts. Far from just a beginners guide, its ambitious, comprehensive, even encyclopedic coverage of core through advanced aspects of eXist will earn a lasting space on your bookshelf.
The first chapters walk you through download and installation of the software, offering tips for every major platform eXist supports—Mac, PC, and Linux. It explains how to navigate the built-in documentation and resources, how to get data into and out from eXist, and how to connect eXist to popular tools for XML and XQuery work, such as oXygen. By the end of Chapter 3 ("eXist 101"), you'll have built a searchable, browse-able website around a collection of Shakespeare plays encoded as XML. These lessons and apply it to their own project as a simple proof of concept. A perfect on-ramp to the software.
In the remainder of the book, Retter and Siegel methodically survey all aspects of eXist, offering material of both immediate utility and long term reference value. Far from a dry technical catalog, the authors identify the best practices that have emerged from a broad consensus of eXist users. These chapters can be read out of order, as driven by the reader's needs during a project's lifecycle. Essential chapters cover how to use eXist's various indexes to speed queries, how to craft queries for maximum efficiency, and how to configure the server and troubleshoot problems. Another chapter explains how to use eXist's unix-inspired permissions system to control user access to resources and code, again with compelling examples based on a publishing workflow with disgruntled employees and semi-trusted external partners. Another provides a sober audit of eXist's attack surfaces—aspects of the software that need to be given special consideration when moving eXist from a desktop system to a public server on the Internet. Throughout, the book provides better diagrams and more comprehensive descriptions of eXist's internals than eXist's own documentation, often filling in the gaps where no documentation existed in the first place. If some of these examples sound esoteric, rest assured that at some point when you are using eXist, you will need to use this information yourself or provide it to someone (e.g., a system administrator) who will. It's all there, along with pointers to additional resources.
eXist is a pleasure to read. The authors write in clear, plain English and employ humor judiciously. The book offers insights into how eXist works and how to get things done in eXist available nowhere else. Complete versions of the code introduced in the book are available for free download on GitHub. The code samples are compelling, not perfunctory, and worth downloading and exploring. The index is comprehensive.
Bottom Line Yes, I would recommend this to a friend