<?xml version="1.0" encoding="ISO-8859-1"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<book>
	<summary>
	This book is about the life of a book spent between books who dreamed
	to meet a fairy who could transform it into an XML book and travel
	in an electronic boundary-less world.
	</summary>
	<price>10.95</price>
	<date>14/07/2000</date>
	<chapter>
		<comment>
		First chapter.
		</comment>
		<paragraph>
			Once upon a time...
		</paragraph>
		<paragraph>
			And this is how the book met the fairy, and how all this
			story began.
		</paragraph>
	</chapter>
	<chapter>
		<paragraph>
			And the book lived a never ending happy life, read, copied
			and enjoyed by so many readers.
		</paragraph>	
	</chapter>
	<chapter>	
		<comment>
		Empty chapter
		</comment>
	</chapter>
	<index>
		<alpha>a</alpha>
		<word>
			Good book
		</word>
		<ref>
		<page>
			22
		</page>	
		<line>
			12
		</line>
		<line>
			22
		</line>
		<line>
			32
		</line>
		</ref>
	</index>
	<index>
		<word>
			E-Tool
		</word>
		<ref>
		<page>
			5
		</page>	
		<line>
			15
		</line>
		</ref>
		<ref>
		<page>
			29
		</page>	
		<line>
			31
		</line>
		</ref>
	</index>
</book>
