FictionBook/Esquema XML 2.1

De El Museo de los 8 bits
Saltar a: navegación, buscar

El esquema XML describe el formato de los libros en el estándard 2.1. El esquema se utiliza para validar fiheros de eBooks en formato FictionBook 2.1 (Often the standard name, as well as previous FictionBook 2, having in view of last realization of this format) by preparation of documents and acquaintance with the standard. Puede descargar el esquema aquí.


 <?xml version="1.0" encoding="UTF-8"?>
 <!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by GribUser (Moscow) -->
 <xs:schema targetNamespace="http://www.gribuser.ru/xml/fictionbook/2.0"
  xmlns:genre="http://www.gribuser.ru/xml/fictionbook/2.0/genres" xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns="http://www.gribuser.ru/xml/fictionbook/2.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
 <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="FictionBookLinks.xsd"/>
 <xs:import namespace="http://www.gribuser.ru/xml/fictionbook/2.0/genres" schemaLocation="FictionBookGenres.xsd"/>
 <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="FictionBookLang.xsd"/>
 <xs:element name="FictionBook">
 <xs:annotation>
   <xs:documentation>Elemento raíz</xs:documentation>
 </xs:annotation>
 <xs:complexType>
 <xs:sequence>
   <xs:element name="stylesheet" minOccurs="0" maxOccurs="unbounded">
   <xs:annotation>
     <xs:documentation>Este elemento contiene una hoja de estilo arbitraria que puede
       ser interpretada por algunos programas de tratamiento, por ejemplo, hojas de estilo
       text/css pueden usarse por XSLT para mejorar la apariencia de html</xs:documentation>
   </xs:annotation>
   <xs:complexType>
     <xs:simpleContent>
     <xs:extension base="xs:string">
       <xs:attribute name="type" type="xs:string" use="required"/>
     </xs:extension>
     </xs:simpleContent>
   </xs:complexType>
   </xs:element>
   <xs:element name="description">
   <xs:complexType>
   <xs:sequence>
     <xs:element name="title-info" type="title-infoType">
     <xs:annotation>
       <xs:documentation>Información genérica sobre el libro</xs:documentation>
     </xs:annotation>
     </xs:element>
     <xs:element name="src-title-info" type="title-infoType" minOccurs="0">
     <xs:annotation>
       <xs:documentation>Información genérica sobre el libro original (para las traducciones) </xs:documentation>
     </xs:annotation>
     </xs:element>
     <xs:element name="document-info">
     <xs:annotation>
       <xs:documentation>Información sobre este fichero (xml) particular</xs:documentation>
     </xs:annotation>
     <xs:complexType>
     <xs:sequence>
       <xs:element name="author" type="authorType" maxOccurs="unbounded">
       <xs:annotation>
         <xs:documentation>Autor(es) de este particular documento</xs:documentation>
       </xs:annotation>
       </xs:element>
       <xs:element name="program-used" type="textFieldType" minOccurs="0">
       <xs:annotation>
          <xs:documentation>Todo el software utilizado en la preparación de este documento, en formato libre </xs:documentation>
       </xs:annotation>
       </xs:element>
       <xs:element name="date" type="dateType">
       <xs:annotation>
         <xs:documentation>Fecha en que este documento fue creado, se le aplican las mismas reglas que a <title-info> </xs:documentation>
       </xs:annotation>
       </xs:element>
       <xs:element name="src-url" type="xs:string" minOccurs="0" maxOccurs="unbounded">
       <xs:annotation>
         <xs:documentation>URL origen si este documento es una conversión de algunos otros (en línea)</xs:documentation>
       </xs:annotation>
       </xs:element>
       <xs:element name="src-ocr" type="textFieldType" minOccurs="0">
       <xs:annotation>
         <xs:documentation>Autor del documento original (en línea), si se trata de una conversión</xs:documentation>
       </xs:annotation>
       </xs:element>
       <xs:element name="id" type="xs:token">
       <xs:annotation>
         <xs:documentation>Identificador único para el documento. No debe cambiar</xs:documentation>
       </xs:annotation>
       </xs:element>
       <xs:element name="version" type="xs:float">
       <xs:annotation>
         <xs:documentation>Versión del documento, en formato libre, debe incrementarse si es modificado y re-lanzado al público</xs:documentation>
       </xs:annotation>
       </xs:element>
       <xs:element name="history" type="annotationType" minOccurs="0">
       <xs:annotation>
         <xs:documentation>Breve descripción de todos los cambios realizados al documento, como "Añadido el capítulo 6 faltante", en forma libre.</xs:documentation>
       </xs:annotation>
       </xs:element>
     </xs:sequence>
     </xs:complexType>
     </xs:element>
     <xs:element name="publish-info" minOccurs="0">
     <xs:annotation>
       <xs:documentation>Información sobre documentos en papel u otros ya publicados que se hayan usado como fuente de este documento XML</xs:documentation>
     </xs:annotation>
     <xs:complexType>
     <xs:sequence>
       <xs:element name="book-name" type="textFieldType" minOccurs="0">
       <xs:annotation>
         <xs:documentation>Nombre original el libor (en papel)</xs:documentation>
       </xs:annotation>
       </xs:element>
       <xs:element name="publisher" type="textFieldType" minOccurs="0">
       <xs:annotation>
         <xs:documentation>Editor original del libro (papel)</xs:documentation>
       </xs:annotation>
       </xs:element>
       <xs:element name="city" type="textFieldType" minOccurs="0">
       <xs:annotation>
         <xs:documentation>Ciudad donde el libro original se publicó (papel)</xs:documentation>
       </xs:annotation>
       </xs:element>
       <xs:element name="year" type="xs:gYear" minOccurs="0">
       <xs:annotation>
         <xs:documentation>Año de publicación original del libro (papel)</xs:documentation>
       </xs:annotation>
       </xs:element>
       <xs:element name="isbn" type="textFieldType" minOccurs="0"/>
       <xs:element name="sequence" type="sequenceType" minOccurs="0" maxOccurs="unbounded"/>
     </xs:sequence>
     </xs:complexType>
     </xs:element>
     <xs:element name="custom-info" minOccurs="0" maxOccurs="unbounded">
     <xs:annotation>
       <xs:documentation>Cualquier otra información sobre el libro/documento que no se ajuste en los grupos anteriores</xs:documentation>
     </xs:annotation>
     <xs:complexType>
       <xs:simpleContent>
       <xs:extension base="textFieldType">
       <xs:attribute name="info-type" type="xs:string" use="required"/>
       </xs:extension>
       </xs:simpleContent>
     </xs:complexType>
     </xs:element>
     <xs:element name="output" type="shareInstructionType" minOccurs="0" maxOccurs="2"/>
   </xs:sequence>
   </xs:complexType>
   </xs:element>
   <xs:element name="body" maxOccurs="unbounded">
   <xs:annotation>
     <xs:documentation>Contenido principal del libro, varios cuerpos se utilizan para incluir información adicional,
   como notas al pie, que no aparecen en el flujo principal del libro. El primer cuerpo se presenta al lector por defecto,
   y el contenido en los demás debe accederse por hipervínculos. El nombre del atributo debe describir el significado
   de cada cuerpo, siendo opcional para el cuerpo principal.</xs:documentation>
   </xs:annotation>
   <xs:complexType>
   <xs:sequence>
     <xs:element name="image" type="imageType" minOccurs="0">
     <xs:annotation>
       <xs:documentation>imagen que se mostrará en la parte superior de esta sección</xs:documentation>
     </xs:annotation>
     </xs:element>
     <xs:element name="title" type="titleType" minOccurs="0">
     <xs:annotation>
       <xs:documentation>Título para todo el libro, se debe usar si la versión de texto simple
  en <description> no es la adecuada, por ejemplo, el título del libro tiene varios párrafos
  y / o estilos de caracteres</xs:documentation>
     </xs:annotation>
     </xs:element>
     <xs:element name="epigraph" type="epigraphType" minOccurs="0" maxOccurs="unbounded">
     <xs:annotation>
       <xs:documentation> Epígrafe(s) para todo el libro, en su caso</xs:documentation>
     </xs:annotation>
     </xs:element>
     <xs:element name="section" type="sectionType" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:attribute name="name" type="xs:string" use="optional"/>
   <xs:attribute ref="xml:lang"/>
   </xs:complexType>
   </xs:element>
   <xs:element name="binary" minOccurs="0" maxOccurs="unbounded">
   <xs:annotation>
     <xs:documentation> Todos los datos binarios que se requiere para la presentación de este libro en formato base64. Actualmente, sólo se utilizan imágenes.</xs:documentation>
   </xs:annotation>
   <xs:complexType>
   <xs:simpleContent>
     <xs:extension base="xs:base64Binary">
     <xs:attribute name="content-type" type="xs:string" use="required"/>
     <xs:attribute name="id" type="xs:ID" use="required"/>
     </xs:extension>
   </xs:simpleContent>
   </xs:complexType>
   </xs:element>
 </xs:sequence>
 </xs:complexType>
 </xs:element>

 <xs:complexType name="authorType">
 <xs:annotation>
   <xs:documentation>Información sobre un solo autor</xs:documentation>
 </xs:annotation>
 <xs:choice>
   <xs:sequence>
     <xs:element name="first-name" type="textFieldType"/>
     <xs:element name="middle-name" type="textFieldType" minOccurs="0"/>
     <xs:element name="last-name" type="textFieldType"/>
     <xs:element name="nickname" type="textFieldType" minOccurs="0"/>
     <xs:element name="home-page" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
     <xs:element name="email" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
   <xs:sequence>
     <xs:element name="nickname" type="textFieldType"/>
     <xs:element name="home-page" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
     <xs:element name="email" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
   </xs:sequence>
 </xs:choice>
 </xs:complexType>

 <xs:complexType name="textFieldType">
 <xs:simpleContent>
   <xs:extension base="xs:string">
     <xs:attribute ref="xml:lang"/>
   </xs:extension>
 </xs:simpleContent>
 </xs:complexType>

 <xs:complexType name="dateType">
 <xs:annotation>
   <xs:documentation>Fecha legible por humanos, tal vez no exacta, con una variante opcional para lectura por ordenador</xs:documentation>
 </xs:annotation>
 <xs:simpleContent>
   <xs:extension base="xs:string">
     <xs:attribute name="value" type="xs:date" use="optional"/>
     <xs:attribute ref="xml:lang"/>
   </xs:extension>
 </xs:simpleContent>
 </xs:complexType>

 <xs:complexType name="titleType">
 <xs:annotation>
   <xs:documentation>Un título, utilizado en las secciones, los poemas y los elementos del cuerpo</xs:documentation>
 </xs:annotation>
 <xs:choice minOccurs="0" maxOccurs="unbounded">
   <xs:element name="p" type="pType"/>
   <xs:element name="empty-line"/>
 </xs:choice>
 <xs:attribute ref="xml:lang"/>
 </xs:complexType>

 <xs:complexType name="imageType">
 <xs:annotation>
   <xs:documentation>Un elemento vacío con el nombre de la imagen como un atributo</xs:documentation>
 </xs:annotation>
 <xs:attribute ref="xlink:type"/>
 <xs:attribute ref="xlink:href"/>
 <xs:attribute name="alt" type="xs:string" use="optional"/>
 <xs:attribute name="title" type="xs:string" use="optional"/>
 <xs:attribute name="id" type="xs:ID" use="optional"/>
 </xs:complexType>

 <xs:complexType name="pType" mixed="true">
 <xs:annotation>
   <xs:documentation>Un párrafo básico, pueden incluir formato simple dentro</xs:documentation>
 </xs:annotation>
 <xs:complexContent mixed="true">
   <xs:extension base="styleType">
     <xs:attribute name="id" type="xs:ID" use="optional"/>
     <xs:attribute name="style" type="xs:string" use="optional"/>
   </xs:extension>
 </xs:complexContent>
 </xs:complexType>

 <xs:complexType name="citeType">
 <xs:annotation>
   <xs:documentation>Una cita con el autor de la cita (opcional) al final</xs:documentation>
 </xs:annotation>
 <xs:sequence>
   <xs:choice minOccurs="0" maxOccurs="unbounded">
     <xs:element name="p" type="pType"/>
     <xs:element name="poem" type="poemType"/>
     <xs:element name="empty-line"/>
     <xs:element name="subtitle" type="pType"/>
     <xs:element name="table" type="tableType"/>
   </xs:choice>
   <xs:element name="text-author" type="pType" minOccurs="0" maxOccurs="unbounded"/>
 </xs:sequence>
 <xs:attribute name="id" type="xs:ID" use="optional"/>
 <xs:attribute ref="xml:lang"/>
 </xs:complexType>

 <xs:complexType name="poemType">
 <xs:annotation>
   <xs:documentation>Un poema</xs:documentation>
 </xs:annotation>
 <xs:sequence>
   <xs:element name="title" type="titleType" minOccurs="0">
   <xs:annotation>
     <xs:documentation>Título del Poema</xs:documentation>
   </xs:annotation>
   </xs:element>
   <xs:element name="epigraph" type="epigraphType" minOccurs="0" maxOccurs="unbounded">
   <xs:annotation>
     <xs:documentation>Párrafo del Poema</xs:documentation>
   </xs:annotation>
   </xs:element>
   <xs:element name="stanza" maxOccurs="unbounded">
   <xs:annotation>
     <xs:documentation>Cada poema debe tener al menos una estrofa. Las estrofas suelen estar separadas con líneas en blanco por los agentes de usuario.</xs:documentation>
   </xs:annotation>
   <xs:complexType>
 <xs:sequence>
   <xs:element name="title" type="titleType" minOccurs="0"/>
   <xs:element name="subtitle" type="pType" minOccurs="0"/>
   <xs:element name="v" type="pType" maxOccurs="unbounded">
   <xs:annotation>
     <xs:documentation>An individual line in a stanza</xs:documentation>
   </xs:annotation>
   </xs:element>
   </xs:sequence>
     <xs:attribute ref="xml:lang"/>
   </xs:complexType>
   </xs:element>
   <xs:element name="text-author" type="pType" minOccurs="0" maxOccurs="unbounded"/>
   <xs:element name="date" type="dateType" minOccurs="0">
   <xs:annotation>
     <xs:documentation>Date this poem was written.</xs:documentation>
   </xs:annotation>
   </xs:element>
 </xs:sequence>
 <xs:attribute name="id" type="xs:ID" use="optional"/>
 <xs:attribute ref="xml:lang"/>
 </xs:complexType>

 <xs:complexType name="epigraphType">
 <xs:annotation>
   <xs:documentation>An epigraph</xs:documentation>
 </xs:annotation>
 <xs:sequence>
   <xs:choice minOccurs="0" maxOccurs="unbounded">
     <xs:element name="p" type="pType"/>
     <xs:element name="poem" type="poemType"/>
     <xs:element name="cite" type="citeType"/>
     <xs:element name="empty-line"/>
   </xs:choice>
   <xs:element name="text-author" type="pType" minOccurs="0" maxOccurs="unbounded"/>
 </xs:sequence>
 <xs:attribute name="id" type="xs:ID" use="optional"/>
 </xs:complexType>

 <xs:complexType name="annotationType">
 <xs:annotation>
   <xs:documentation>Una versión reducida de <section> usado en anotaciones</xs:documentation>
 </xs:annotation>
 <xs:choice minOccurs="0" maxOccurs="unbounded">
   <xs:element name="p" type="pType"/>
   <xs:element name="poem" type="poemType"/>
   <xs:element name="cite" type="citeType"/>
   <xs:element name="subtitle" type="pType"/>
   <xs:element name="table" type="tableType"/>
   <xs:element name="empty-line"/>
 </xs:choice>
 <xs:attribute name="id" type="xs:ID" use="optional"/>
 <xs:attribute ref="xml:lang"/>
 </xs:complexType>

 <xs:complexType name="sectionType">
 <xs:annotation>
   <xs:documentation>Un bloque básico de un libro, puede contener más secciones hijas o contenido textual</xs:documentation>
 </xs:annotation>
 <xs:sequence minOccurs="0">
   <xs:element name="title" type="titleType" minOccurs="0">
   <xs:annotation>
     <xs:documentation>Título de la Sección</xs:documentation>
   </xs:annotation>
   </xs:element>
   <xs:element name="epigraph" type="epigraphType" minOccurs="0" maxOccurs="unbounded">
   <xs:annotation>
     <xs:documentation>Epígrafe(s) de esta sección</xs:documentation>
   </xs:annotation>
   </xs:element>
   <xs:element name="image" type="imageType" minOccurs="0">
   <xs:annotation>
     <xs:documentation>Imagen que se mostrará en la parte superior de esta sección</xs:documentation>
   </xs:annotation>
   </xs:element>
   <xs:element name="annotation" type="annotationType" minOccurs="0">
   <xs:annotation>
     <xs:documentation>Anotación para esta sección, si las hubiere</xs:documentation>
   </xs:annotation>
   </xs:element>
   <xs:choice>
     <xs:sequence>
       <xs:element name="section" type="sectionType" maxOccurs="unbounded">
       <xs:annotation>
         <xs:documentation>Secciones hijas</xs:documentation>
       </xs:annotation>
       </xs:element>
     </xs:sequence>
     <xs:sequence>
       <xs:choice>
         <xs:element name="p" type="pType"/>
         <xs:element name="poem" type="poemType"/>
         <xs:element name="subtitle" type="pType"/>
         <xs:element name="cite" type="citeType"/>
         <xs:element name="empty-line"/>
         <xs:element name="table" type="tableType"/>
       </xs:choice>
       <xs:choice minOccurs="0" maxOccurs="unbounded">
         <xs:element name="p" type="pType"/>
         <xs:element name="image" type="imageType"/>
         <xs:element name="poem" type="poemType"/>
         <xs:element name="subtitle" type="pType"/>
         <xs:element name="cite" type="citeType"/>
         <xs:element name="empty-line"/>
         <xs:element name="table" type="tableType"/>
       </xs:choice>
     </xs:sequence>
   </xs:choice>
 </xs:sequence>
 <xs:attribute name="id" type="xs:ID" use="optional"/>
 <xs:attribute ref="xml:lang"/>
 </xs:complexType>

 <xs:complexType name="styleType" mixed="true">
 <xs:annotation>
   <xs:documentation>Marcas</xs:documentation>
 </xs:annotation>
 <xs:choice minOccurs="0" maxOccurs="unbounded">
   <xs:element name="strong" type="styleType"/>
   <xs:element name="emphasis" type="styleType"/>
   <xs:element name="style" type="namedStyleType"/>
   <xs:element name="a" type="linkType"/>
   <xs:element name="strikethrough" type="styleType"/>
   <xs:element name="sub" type="styleType"/>
   <xs:element name="sup" type="styleType"/>
   <xs:element name="code" type="styleType"/>
   <xs:element name="image" type="inlineImageType"/>
 </xs:choice>
 <xs:attribute ref="xml:lang"/>
 </xs:complexType>

 <xs:complexType name="namedStyleType" mixed="true">
 <xs:annotation>
   <xs:documentation>Marcas</xs:documentation>
 </xs:annotation>
 <xs:choice minOccurs="0" maxOccurs="unbounded">
   <xs:element name="strong" type="styleType"/>
   <xs:element name="emphasis" type="styleType"/>
   <xs:element name="style" type="namedStyleType"/>
   <xs:element name="a" type="linkType"/>
   <xs:element name="strikethrough" type="styleType"/>
   <xs:element name="sub" type="styleType"/>
   <xs:element name="sup" type="styleType"/>
   <xs:element name="code" type="styleType"/>
   <xs:element name="image" type="inlineImageType"/>
 </xs:choice>
 <xs:attribute ref="xml:lang" use="optional"/>
 <xs:attribute name="name" type="xs:token" use="required"/>
 </xs:complexType>

 <xs:complexType name="linkType" mixed="true">
   <xs:documentation>Hipervínculos genéricos. No se pueden anidar. Notas al pie deben ser aplicadas por vínculos que hacen referencia a los cuerpos adicionales en el mismo documento</xs:documentation>
 </xs:annotation>
 <xs:choice minOccurs="0" maxOccurs="unbounded">
   <xs:element name="strong" type="styleLinkType"/>
   <xs:element name="emphasis" type="styleLinkType"/>
   <xs:element name="style" type="styleLinkType"/>
   <xs:element name="strikethrough" type="styleLinkType"/>
   <xs:element name="sub" type="styleLinkType"/>
   <xs:element name="sup" type="styleLinkType"/>
   <xs:element name="code" type="styleLinkType"/>
   <xs:element name="image" type="inlineImageType"/>
 </xs:choice>
 <xs:attribute ref="xlink:type" use="optional"/>
 <xs:attribute ref="xlink:href" use="required"/>
 <xs:attribute name="type" type="xs:token" use="optional"/>
 </xs:complexType>

 <xs:complexType name="styleLinkType" mixed="true">
 <xs:annotation>
   <xs:documentation>Marca</xs:documentation>
 </xs:annotation>
 <xs:choice minOccurs="0" maxOccurs="unbounded">
   <xs:element name="strong" type="styleLinkType"/>
   <xs:element name="emphasis" type="styleLinkType"/>
   <xs:element name="style" type="styleLinkType"/>
   <xs:element name="strikethrough" type="styleLinkType"/>
   <xs:element name="sub" type="styleLinkType"/>
   <xs:element name="sup" type="styleLinkType"/>
   <xs:element name="code" type="styleLinkType"/>
   <xs:element name="image" type="inlineImageType"/>
 </xs:choice>
 </xs:complexType>

 <xs:complexType name="sequenceType"> 
 <xs:annotation>
   <xs:documentation>Secuencias del libro</xs:documentation>
 </xs:annotation>
 <xs:sequence>
   <xs:element name="sequence" type="sequenceType" minOccurs="0" maxOccurs="unbounded"/>
 </xs:sequence>
 <xs:attribute name="name" type="xs:string" use="required"/>
 <xs:attribute name="number" type="xs:integer" use="optional"/>
 <xs:attribute ref="xml:lang"/>
 </xs:complexType>

 <xs:complexType name="tableType">
 <xs:annotation>
   <xs:documentation>Tablas básicas tipo HTML</xs:documentation>
 </xs:annotation>
 <xs:sequence>
   <xs:element name="tr" maxOccurs="unbounded">
   <xs:complexType>
   <xs:choice maxOccurs="unbounded">
     <xs:element name="th" type="tdType"/>
     <xs:element name="td" type="tdType"/>
   </xs:choice>
   <xs:attribute name="align" type="alignType" use="optional" default="left"/>
   </xs:complexType>
   </xs:element>
 </xs:sequence>
 <xs:attribute name="style" type="xs:string" use="optional"/>
 <xs:attribute name="id" type="xs:ID" use="optional"/>
 </xs:complexType>

 <xs:simpleType name="alignType">
 <xs:annotation>
   <xs:documentation>Alineamiento de celdas</xs:documentation>
 </xs:annotation>
 <xs:restriction base="xs:token">
 <xs:enumeration value="left"/>
 <xs:enumeration value="right"/>
 <xs:enumeration value="center"/>
 </xs:restriction>
 </xs:simpleType>

 <xs:simpleType name="vAlignType">
 <xs:annotation>
   <xs:documentation>Alineamiento de celdas</xs:documentation>
 </xs:annotation>
 <xs:restriction base="xs:token">
 <xs:enumeration value="top"/>
 <xs:enumeration value="middle"/>
 <xs:enumeration value="bottom"/>
 </xs:restriction>
 </xs:simpleType>

 <xs:complexType name="title-infoType">
 <xs:annotation>
   <xs:documentation>Book (as a book opposite a document) description</xs:documentation>
 </xs:annotation>
 <xs:sequence>
   <xs:element name="genre" maxOccurs="unbounded">
   <xs:annotation>
     <xs:documentation>Genre of this book, with the optional match percentage</xs:documentation>
   </xs:annotation>
   <xs:complexType>
   <xs:simpleContent>
     <xs:extension base="genre:genreType">
     <xs:attribute name="match" type="xs:integer" use="optional" default="100"/>
     </xs:extension>
   </xs:simpleContent>
   </xs:complexType>
   </xs:element>
   <xs:element name="author" maxOccurs="unbounded">
   <xs:annotation>
     <xs:documentation>Author(s) of this book</xs:documentation>
   </xs:annotation>
   <xs:complexType>
   <xs:complexContent>
     <xs:extension base="authorType"/>
   </xs:complexContent>
   </xs:complexType>
   </xs:element>
   <xs:element name="book-title" type="textFieldType">
   <xs:annotation>
     <xs:documentation>Book title</xs:documentation>
   </xs:annotation>
   </xs:element>
   <xs:element name="annotation" type="annotationType" minOccurs="0">
   <xs:annotation>
     <xs:documentation>Annotation for this book</xs:documentation>
   </xs:annotation>
   </xs:element>
   <xs:element name="keywords" type="textFieldType" minOccurs="0">
   <xs:annotation>
     <xs:documentation>Any keywords for this book, intended for use in search engines</xs:documentation>
   </xs:annotation>
   </xs:element>
   <xs:element name="date" type="dateType" minOccurs="0">
   <xs:annotation>
     <xs:documentation>Date this book was written, can be not exact, e.g. 1863-1867. If an optional attribute is present, then it should contain some computer-readable date from the interval for use by search and indexingengines</xs:documentation>
   </xs:annotation>
   </xs:element>
   <xs:element name="coverpage" minOccurs="0">
   <xs:annotation>
     <xs:documentation>Any coverpage items, currently only images</xs:documentation>
   </xs:annotation>
   <xs:complexType>
   <xs:sequence>
     <xs:element name="image" type="inlineImageType" maxOccurs="unbounded"/>
   </xs:sequence>
   </xs:complexType>
   </xs:element>
   <xs:element name="lang" type="xs:language">
   <xs:annotation>
     <xs:documentation>Book's language</xs:documentation>
   </xs:annotation>
   </xs:element>
   <xs:element name="src-lang" type="xs:language" minOccurs="0">
   <xs:annotation>
     <xs:documentation>Book's source language if this is a translation</xs:documentation>
   </xs:annotation>
   </xs:element>
   <xs:element name="translator" type="authorType" minOccurs="0" maxOccurs="unbounded">
   <xs:annotation>
     <xs:documentation>Translators if this is a translation</xs:documentation>
   </xs:annotation>
   </xs:element>
   <xs:element name="sequence" type="sequenceType" minOccurs="0" maxOccurs="unbounded">
     <xs:annotation>
   <xs:documentation>Any sequences this book might be part of</xs:documentation>
   </xs:annotation>
   </xs:element>
 </xs:sequence>
 </xs:complexType>

 <xs:complexType name="shareInstructionType">
 <xs:annotation>
   <xs:documentation>In-document instruction for generating output free and payed documents</xs:documentation>
 </xs:annotation>
 <xs:choice minOccurs="0" maxOccurs="unbounded">
   <xs:element name="part" type="partShareInstructionType"/>
   <xs:element name="output-document-class" type="outPutDocumentType"/>
 </xs:choice>
 <xs:attribute name="mode" type="shareModesType" use="required"/>
 <xs:attribute name="include-all" type="docGenerationInstructionType" use="required"/>
 <xs:attribute name="price" type="xs:float" use="optional"/>
 <xs:attribute name="currency" type="xs:string"/>
 </xs:complexType>

 <xs:simpleType name="shareModesType">
 <xs:annotation>
   <xs:documentation>Modes for document sharing (free|paid for now)</xs:documentation>
 </xs:annotation>
 <xs:restriction base="xs:token">
 <xs:enumeration value="free"/>
 <xs:enumeration value="paid"/>
 </xs:restriction>
 </xs:simpleType>

 <xs:simpleType name="docGenerationInstructionType">
 <xs:annotation>
   <xs:documentation>List of instructions to process sections (allow|deny|require)</xs:documentation>
 </xs:annotation>
 <xs:restriction base="xs:token">
 <xs:enumeration value="require"/>
 <xs:enumeration value="allow"/>
 <xs:enumeration value="deny"/>
 </xs:restriction>
 </xs:simpleType>

 <xs:complexType name="partShareInstructionType">
 <xs:annotation>
   <xs:documentation>Pointer to cpecific document section, explaining how to deal with it</xs:documentation>
 </xs:annotation>
 <xs:attribute ref="xlink:type"/>
 <xs:attribute ref="xlink:href" use="required"/>
 <xs:attribute name="include" type="docGenerationInstructionType" use="required"/>
 </xs:complexType>

 <xs:complexType name="outPutDocumentType">
 <xs:annotation>
   <xs:documentation>Selector for output documents. Defines, which rule to apply to any specific output documents</xs:documentation>
 </xs:annotation>
 <xs:sequence minOccurs="0" maxOccurs="unbounded">
   <xs:element name="part" type="partShareInstructionType"/>
 </xs:sequence>
 <xs:attribute name="name" type="xs:string" use="required"/>
 <xs:attribute name="create" type="docGenerationInstructionType" use="optional"/>
 <xs:attribute name="price" type="xs:float" use="optional"/>
 </xs:complexType>

 <xs:complexType name="tdType" mixed="true">
 <xs:complexContent mixed="true">
   <xs:extension base="styleType">
   <xs:attribute name="id" type="xs:ID" use="optional"/>
   <xs:attribute name="style" type="xs:string" use="optional"/>
   <xs:attribute name="colspan" type="xs:integer" use="optional"/>
   <xs:attribute name="rowspan" type="xs:integer" use="optional"/>
   <xs:attribute name="align" type="alignType" use="optional" default="left"/>
   </xs:extension>
 </xs:complexContent>
 </xs:complexType>

 <xs:complexType name="inlineImageType">
 <xs:attribute ref="xlink:type"/>
 <xs:attribute ref="xlink:href"/>
 <xs:attribute name="alt" type="xs:string" use="optional"/>
 </xs:complexType>
 </xs:schema>