summaryrefslogtreecommitdiff
path: root/appl/ebook/dtd
diff options
context:
space:
mode:
Diffstat (limited to 'appl/ebook/dtd')
-rw-r--r--appl/ebook/dtd/oebdoc101.dtd524
-rw-r--r--appl/ebook/dtd/oebpkg101.dtd280
2 files changed, 804 insertions, 0 deletions
diff --git a/appl/ebook/dtd/oebdoc101.dtd b/appl/ebook/dtd/oebdoc101.dtd
new file mode 100644
index 00000000..75c437c6
--- /dev/null
+++ b/appl/ebook/dtd/oebdoc101.dtd
@@ -0,0 +1,524 @@
+<!--
+ Document Type Definition for the Open eBook document version 1.0.1
+
+ Version: 1.0.1
+ Revision: 20010201-x
+
+ Authors: Gunter Hille <hille@abc.de>
+ Ben Trafford <bent@exemplary.net>
+ Garret Wilson <garret@globalmentor.com>
+
+ Usage:
+ <?xml version="1.0"?>
+ <!DOCTYPE html PUBLIC
+ "+//ISBN 0-9673008-1-9//DTD OEB 1.0.1 Document//EN"
+ "http://openebook.org/dtds/oeb-1.0.1/oebdoc101.dtd">
+ <html>
+ ...
+ </html>
+
+ References:
+ This DTD has been derived from XHTML 1.0 and HTML 4.0.
+ It is a pure subset of neither.
+ Transitional XHTML 1.0 DTD at http://www.w3.org/TR/xhtml1/DTD/transitional.dtd
+-->
+
+<!-- ******** Character Mnemonic Entities ******** -->
+
+<!-- OEB supports all XHTML mnemonics, but uses only one entity file. -->
+<!ENTITY % OEBEntities PUBLIC "+//ISBN 0-9673008-1-9//DTD OEB 1.0 Entities//EN" "oeb1.ent">
+%OEBEntities;
+
+<!-- ******** Attribute Types ******** -->
+
+<!-- Color: A color specification. -->
+<!ENTITY % Color "CDATA">
+
+<!-- Coords: Comma-separated coordinates for image maps. -->
+<!ENTITY % Coords "CDATA">
+
+<!-- LanguageCode: An RFC1766 language code. -->
+<!ENTITY % LanguageCode "NMTOKEN">
+
+<!-- Length: Number of pixels or percentage in one dimension. -->
+<!ENTITY % Length "CDATA">
+
+<!-- LinkTypes: List of types of document link types, used by "rel" and "rev". -->
+<!ENTITY % LinkTypes "CDATA">
+
+<!-- MediaType: An RFC2045 media type. -->
+<!ENTITY % MediaType "CDATA">
+
+<!-- MediaDest: Intended media destination. -->
+<!ENTITY % MediaDest "CDATA">
+
+<!-- A string of one or more digits. -->
+<!ENTITY % Number "CDATA">
+
+<!-- ObjectAlign: Non-text multidirectional alignment options. -->
+<!ENTITY % ObjectAlign "(top|middle|bottom|left|right)">
+
+<!-- ObjectHAlign: Horizontal non-text alignment options. -->
+<!ENTITY % ObjectHAlign "(left|center|right)">
+
+<!-- Shape: Shapes available for image maps. -->
+<!ENTITY % Shape "(rect|circle|poly|default)">
+
+<!-- StyleData: Style data (e.g. CSS) -->
+<!ENTITY % StyleData "CDATA">
+
+<!-- Text: Character data for such attributes as "title" and "alt". -->
+<!ENTITY % Text "CDATA">
+
+<!-- TextHAlign: Horizontal text alignment options. -->
+<!ENTITY % TextHAlign "(left|center|right|justify)">
+
+<!-- TextVAlign: Vertical text alignment options. -->
+<!ENTITY % TextVAlign "(top|middle|bottom)">
+
+<!-- URI: An RFC2396 Uniform Resource Identifier. -->
+<!ENTITY % URI "CDATA">
+
+<!-- A list of URIs separated by spaces. -->
+<!ENTITY % URIList "CDATA">
+
+<!-- ******** Common Attributes ******** -->
+
+<!-- InternationalAttributes: Attributes for internationalization.
+ xml:lang: XML language code.
+-->
+<!ENTITY % InternationalAttributes
+ "xml:lang %LanguageCode; #IMPLIED"
+>
+
+<!-- CoreAttributes: Most common attributes used by many elements.
+ id: ID unique to the entire document.
+ class: List of classes.
+ style: Style data.
+ title: Title or additional information.
+-->
+<!ENTITY % CoreAttributes
+ "id ID #IMPLIED
+ class CDATA #IMPLIED
+ style %StyleData; #IMPLIED
+ title %Text; #IMPLIED"
+>
+
+<!-- CommonAttributes: Common attributes used by many elements.
+ CoreAttributes: Most common attributes.
+ InternationalAttributes: Internationalization attributes.
+-->
+<!ENTITY % CommonAttributes
+ "%CoreAttributes;
+ %InternationalAttributes;"
+>
+
+<!-- ******** Common Elements ******** -->
+
+<!-- HeadingElements: <h1>..<h6> -->
+<!ENTITY % HeadingElements "h1|h2|h3|h4|h5|h6">
+
+<!-- ListElements: Elements for lists. -->
+<!ENTITY % ListElements "ul|ol|dl">
+
+<!-- PhraseElements: Inline elements that contain a phrase of text.
+ Note that while in current HTML implementations many PhraseElements
+ are rendered identically to FontStyleElements counterparts (such as
+ <em> and <i>, the former do not connotate rendering styles.
+-->
+<!ENTITY % PhraseElements
+ "em | strong | dfn | code | q | sub | sup | samp | kbd | var | cite"
+>
+
+<!-- FontStyleElements: Inline font style elements.
+ Note that many FontStyleElements have been deprecated in favor of
+ their PhraseElements counterparts.
+-->
+<!ENTITY % FontStyleElements
+ "tt | i | b | big | small | u | s | strike |font"
+>
+
+<!-- BlockElements: Elements at the block level. -->
+<!ENTITY % BlockElements
+ "%HeadingElements; | %ListElements; | p | pre | hr | blockquote
+ | center | div | table"
+>
+
+<!-- InlineElements: Elements that are inline. -->
+<!ENTITY % InlineElements
+ "%PhraseElements; | %FontStyleElements; | a | br | span | img | object | map"
+>
+
+<!-- BlockOrInlineElements: Elements that can be either block or inline. -->
+<!ENTITY % BlockOrInlineElements "script">
+
+<!-- %FlowElements: Both block and inline elements, including those that can be both. -->
+<!ENTITY % FlowElements "%BlockElements; | %InlineElements; | %BlockOrInlineElements;">
+
+<!-- ******** OEB Document Elements ******** -->
+
+<!ELEMENT br EMPTY>
+<!ATTLIST br
+ %CoreAttributes;
+ clear (left|all|right|none) "none"
+>
+
+<!ELEMENT span (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST span %CommonAttributes;>
+
+<!ELEMENT b (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST b %CommonAttributes;>
+
+<!ELEMENT big (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST big %CommonAttributes;>
+
+<!ELEMENT i (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST i %CommonAttributes;>
+
+<!ELEMENT small (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST small %CommonAttributes;>
+
+<!ELEMENT sub (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST sub %CommonAttributes;>
+
+<!ELEMENT sup (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST sup %CommonAttributes;>
+
+<!ELEMENT tt (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST tt %CommonAttributes;>
+
+<!ELEMENT font (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST font
+ %CommonAttributes;
+ size CDATA #IMPLIED
+ color %Color; #IMPLIED
+ face CDATA #IMPLIED
+>
+
+<!ELEMENT s (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST s %CommonAttributes;>
+
+<!ELEMENT strike (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST strike %CommonAttributes;>
+
+<!ELEMENT u (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST u %CommonAttributes;>
+
+<!ELEMENT cite (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST cite %CommonAttributes;>
+
+<!ELEMENT code (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST code %CommonAttributes;>
+
+<!ELEMENT dfn (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST dfn %CommonAttributes;>
+
+<!ELEMENT em (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST em %CommonAttributes;>
+
+<!ELEMENT kbd (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST kbd %CommonAttributes;>
+
+<!ELEMENT q (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST q
+ %CommonAttributes;
+ cite %URI; #IMPLIED
+>
+
+<!ELEMENT samp (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST samp %CommonAttributes;>
+
+<!ELEMENT strong (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST strong %CommonAttributes;>
+
+<!ELEMENT var (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST var %CommonAttributes;>
+
+<!ELEMENT div (#PCDATA | %FlowElements;)*>
+<!ATTLIST div
+ %CommonAttributes;
+ align %TextHAlign; #IMPLIED
+>
+
+<!ELEMENT p (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST p
+ %CommonAttributes;
+ align %TextHAlign; #IMPLIED
+>
+
+<!ELEMENT hr EMPTY >
+<!ATTLIST hr
+ %CommonAttributes;
+ align %ObjectHAlign; #IMPLIED
+ size CDATA #IMPLIED
+ width %Length; #IMPLIED
+>
+
+<!ELEMENT center (#PCDATA | %FlowElements;)*>
+<!ATTLIST center %CommonAttributes;>
+
+<!ELEMENT blockquote (#PCDATA | %FlowElements;)*>
+<!ATTLIST blockquote
+ %CommonAttributes;
+ cite %URI; #IMPLIED
+>
+
+<!ELEMENT pre
+ (#PCDATA | %PhraseElements; | a | br | span | map | tt | i | b | u | s)*
+>
+<!ATTLIST pre
+ %CommonAttributes;
+ xml:space (preserve) #FIXED "preserve"
+>
+
+<!-- Heading Elements -->
+
+<!ELEMENT h1 (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST h1
+ %CommonAttributes;
+
+ align %TextHAlign; #IMPLIED
+>
+
+<!ELEMENT h2 (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST h2
+ %CommonAttributes;
+ align %TextHAlign; #IMPLIED
+>
+
+<!ELEMENT h3 (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST h3
+ %CommonAttributes;
+ align %TextHAlign; #IMPLIED
+>
+
+<!ELEMENT h4 (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST h4
+ %CommonAttributes;
+ align %TextHAlign; #IMPLIED
+>
+
+<!ELEMENT h5 (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST h5
+ %CommonAttributes;
+ align %TextHAlign; #IMPLIED
+>
+
+<!ELEMENT h6 (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST h6
+ %CommonAttributes;
+ align %TextHAlign; #IMPLIED
+>
+
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+ xml:space (preserve) #FIXED "preserve"
+>
+
+<!ELEMENT style (#PCDATA)>
+<!ATTLIST style
+ %InternationalAttributes;
+ type %MediaType; #FIXED "text/x-oeb1-css"
+ title %Text; #IMPLIED
+ xml:space (preserve) #FIXED "preserve"
+>
+
+<!ELEMENT img EMPTY >
+<!ATTLIST img
+ %CommonAttributes;
+ align %ObjectAlign; #IMPLIED
+ border CDATA #IMPLIED
+ hspace CDATA #IMPLIED
+ vspace CDATA #IMPLIED
+ src %URI; #REQUIRED
+ alt %Text; #REQUIRED
+ longdesc %URI; #IMPLIED
+ height %Length; #IMPLIED
+ width %Length; #IMPLIED
+ usemap %URI; #IMPLIED
+>
+
+<!ELEMENT a
+ (#PCDATA | %FontStyleElements; | %PhraseElements; | %BlockOrInlineElements;
+ | br | span | object | img | map)*
+>
+<!ATTLIST a
+ %CommonAttributes;
+ name NMTOKEN #IMPLIED
+ href %URI; #IMPLIED
+ rel %LinkTypes; #IMPLIED
+ rev %LinkTypes; #IMPLIED
+>
+
+<!ELEMENT base EMPTY>
+<!ATTLIST base
+ href %URI; #REQUIRED
+>
+
+<!ELEMENT link EMPTY>
+<!ATTLIST link
+ %CommonAttributes;
+ href %URI; #IMPLIED
+ type %MediaType; #REQUIRED
+ rel %LinkTypes; #IMPLIED
+ rev %LinkTypes; #IMPLIED
+ media %MediaDest; #IMPLIED
+>
+
+<!-- The CommonAttributes entity is not used here because in this case
+ the "id" attribute is required. -->
+<!ELEMENT map ((%BlockElements; | %BlockOrInlineElements;)+ | area+)>
+<!ATTLIST map
+ %InternationalAttributes;
+ id ID #REQUIRED
+ class CDATA #IMPLIED
+ style %StyleData; #IMPLIED
+ title %Text; #IMPLIED
+ name NMTOKEN #IMPLIED
+>
+
+<!ELEMENT area EMPTY>
+<!ATTLIST area
+ %CommonAttributes;
+ href %URI; #IMPLIED
+ shape %Shape; "rect"
+ coords %Coords; #IMPLIED
+ nohref (nohref) #IMPLIED
+ alt %Text; #REQUIRED
+>
+
+<!ELEMENT object
+ (#PCDATA | %BlockElements; | %InlineElements; | %BlockOrInlineElements; | param)*
+>
+<!ATTLIST object
+ %CommonAttributes;
+ classid %URI; #IMPLIED
+ codebase %URI; #IMPLIED
+ data %URI; #IMPLIED
+ type %MediaType; #IMPLIED
+ codetype %MediaType; #IMPLIED
+ archive %URIList; #IMPLIED
+ height %Length; #IMPLIED
+ width %Length; #IMPLIED
+ usemap %URI; #IMPLIED
+ align %ObjectAlign; #IMPLIED
+ border CDATA #IMPLIED
+ hspace CDATA #IMPLIED
+ vspace CDATA #IMPLIED
+>
+
+<!ELEMENT param EMPTY >
+<!ATTLIST param
+ id ID #IMPLIED
+ name CDATA #REQUIRED
+ value CDATA #IMPLIED
+ valuetype (data|ref|object) "data"
+ type %MediaType; #IMPLIED
+>
+
+<!ELEMENT dl (dt|dd)+ >
+<!ATTLIST dl %CommonAttributes;>
+
+<!ELEMENT dt (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST dt %CommonAttributes;>
+
+<!ELEMENT dd (#PCDATA | %FlowElements;)*>
+<!ATTLIST dd %CommonAttributes;>
+
+<!ELEMENT ol (li)+ >
+<!ATTLIST ol
+ %CommonAttributes;
+ type (1|a|A|i|I) #IMPLIED
+>
+
+<!ELEMENT ul (li)+>
+<!ATTLIST ul %CommonAttributes;>
+
+<!ELEMENT li (#PCDATA | %FlowElements;)*>
+<!ATTLIST li %CommonAttributes;>
+
+<!ELEMENT table (caption?, tr+) >
+<!ATTLIST table
+ %CommonAttributes;
+ summary %Text; #IMPLIED
+ width %Length; #IMPLIED
+ border CDATA #IMPLIED
+ cellspacing %Length; #IMPLIED
+ cellpadding %Length; #IMPLIED
+ align %ObjectHAlign; #IMPLIED
+ bgcolor %Color; #IMPLIED
+>
+
+<!ELEMENT caption (#PCDATA | %InlineElements; | %BlockOrInlineElements;)*>
+<!ATTLIST caption %CommonAttributes;>
+
+<!ELEMENT tr ( th | td )+ >
+<!ATTLIST tr
+ %CommonAttributes;
+ valign %TextVAlign; #IMPLIED
+ bgcolor %Color; #IMPLIED
+>
+
+<!ELEMENT th (#PCDATA | %FlowElements;)*>
+<!ATTLIST th
+ %CommonAttributes;
+ abbr %Text; #IMPLIED
+ rowspan %Number; "1"
+ colspan %Number; "1"
+ align %TextHAlign; #IMPLIED
+ valign %TextVAlign; #IMPLIED
+ nowrap (nowrap) #IMPLIED
+ bgcolor %Color; #IMPLIED
+ width %Length; #IMPLIED
+ height %Length; #IMPLIED
+>
+
+<!ELEMENT td (#PCDATA | %FlowElements;)*>
+<!ATTLIST td
+ %CommonAttributes;
+ abbr %Text; #IMPLIED
+ rowspan %Number; "1"
+ colspan %Number; "1"
+ align %TextHAlign; #IMPLIED
+ valign %TextVAlign; #IMPLIED
+ nowrap (nowrap) #IMPLIED
+ bgcolor %Color; #IMPLIED
+ width %Length; #IMPLIED
+ height %Length; #IMPLIED
+>
+
+<!ELEMENT title (#PCDATA)>
+<!ATTLIST title %InternationalAttributes;>
+
+<!ELEMENT meta EMPTY >
+<!ATTLIST meta
+ %InternationalAttributes;
+ name NMTOKEN #IMPLIED
+ content CDATA #REQUIRED
+ scheme CDATA #IMPLIED
+>
+
+<!-- HeadElements: Elements that can appear many places within <head>.-->
+<!ENTITY % HeadElements "script | style | meta | link | object">
+
+<!-- <head> can have the common head elements (always optional),
+ with one <title> and an optional <base> interspersed.
+-->
+<!ELEMENT head ((%HeadElements;)*,
+ ((title, (%HeadElements;)*, (base, (%HeadElements;)*)?)
+ | (base, (%HeadElements;)*, (title, (%HeadElements;)*))))
+>
+<!ATTLIST head %InternationalAttributes;>
+
+<!ELEMENT body (#PCDATA | %FlowElements;)*>
+<!ATTLIST body
+ %CommonAttributes;
+ bgcolor %Color; #IMPLIED
+ text %Color; #IMPLIED
+>
+
+<!ELEMENT html (head?, body)>
+<!ATTLIST html
+ %InternationalAttributes;
+ xmlns %URI; #FIXED "http://openebook.org/namespaces/oeb-document/1.0/"
+>
diff --git a/appl/ebook/dtd/oebpkg101.dtd b/appl/ebook/dtd/oebpkg101.dtd
new file mode 100644
index 00000000..4c843ec5
--- /dev/null
+++ b/appl/ebook/dtd/oebpkg101.dtd
@@ -0,0 +1,280 @@
+<!--
+ Document Type Definition for the Open eBook package version 1.0.1
+
+ Version: 1.0.1
+ Revision: 20010201-x
+
+ Authors: Steve DeRose <steven_derose@brown.edu>
+ Gunter Hille <hille@abc.de>
+ Ben Trafford <bent@exemplary.net>
+ Garret Wilson <garret@globalmentor.com>
+
+ Usage:
+ <?xml version="1.0"?>
+ <!DOCTYPE package
+ PUBLIC "+//ISBN 0-9673008-1-9//DTD OEB 1.0.1 Package//EN"
+ "http://openebook.org/dtds/oeb-1.0.1/oebpkg101.dtd">
+ <package unique-identifier="foo">
+ metadata
+ manifest
+ spine
+ tours
+ guide
+ </package>
+
+ References:
+ Transitional XHTML 1.0 DTD at http://www.w3.org/TR/xhtml1/DTD/transitional.dtd
+-->
+
+<!-- ******** Character Mnemonic Entities ******** -->
+
+<!-- OEB supports all XHTML mnemonics, but uses only one entity file. -->
+<!ENTITY % OEBEntities PUBLIC "+//ISBN 0-9673008-1-9//DTD OEB 1.0 Entities//EN" "oeb1.ent">
+%OEBEntities;
+
+<!-- ******** Attribute Types ******** -->
+
+<!-- LanguageCode: An RFC1766 language code. -->
+<!ENTITY % LanguageCode "NMTOKEN">
+
+<!-- URI: An RFC2396 Uniform Resource Identifier. -->
+<!ENTITY % URI "CDATA">
+
+<!-- ******** Common Attributes ******** -->
+
+<!-- InternationalAttributes: Attributes for internationalization.
+ xml:lang: XML language code.
+-->
+<!ENTITY % InternationalAttributes
+ "xml:lang %LanguageCode; #IMPLIED"
+>
+
+<!-- CoreAttributes: Most common attributes used by many elements.
+ id: ID unique to the entire document.
+-->
+<!ENTITY % CoreAttributes "id ID #IMPLIED">
+
+<!-- CommonAttributes: Common attributes used by many elements.
+ CoreAttributes: Most common attributes.
+ InternationalAttributes: Internationalization attributes.
+-->
+<!ENTITY % CommonAttributes
+ "%CoreAttributes;
+ %InternationalAttributes;"
+>
+
+<!-- DCNamespaceAttribute: Attribute that declare the Dublin Core
+ namespace. Used mostly on each <dc:XXX> element to accomodate XML
+ parsers which require this unnecessarily. -->
+<!ENTITY % DCNamespaceAttribute
+ "xmlns:dc %URI; #FIXED 'http://purl.org/dc/elements/1.0/'"
+>
+
+<!-- ******** OEB Package Elements ******** -->
+
+<!-- A package must have metadata, a manifest, and a spine,
+ and optionally may include a tours and/or a guide section. -->
+<!ELEMENT package (metadata, manifest, spine, tours?, guide?)>
+<!ATTLIST package
+ %CommonAttributes;
+ unique-identifier IDREF #REQUIRED
+ xmlns %URI; #FIXED "http://openebook.org/namespaces/oeb-package/1.0/"
+>
+
+<!-- The metadata section must have dc-metadata but may or may not
+ include x-metadata. -->
+<!ELEMENT metadata (dc-metadata, x-metadata?)>
+
+<!-- These elements are optional in <dc-metadata>. -->
+<!ENTITY % DCMetadataOptionalElements
+ "dc:Contributor | dc:Creator | dc:Subject | dc:Description
+ | dc:Publisher | dc:Date | dc:Type | dc:Format | dc:Source
+ | dc:Language | dc:Relation | dc:Coverage | dc:Rights"
+>
+
+<!-- These are the optional and required elements of <dc-metadata>. -->
+<!ENTITY % DCMetadataGeneralElements
+ "%DCMetadataOptionalElements; | dc:Title |dc:Identifier"
+>
+
+<!-- A dc-metadata section must have a dc:Title and a
+ dc:Identifier, and optionally other dc:XXX elements, all in any
+ order. -->
+<!ELEMENT dc-metadata ((%DCMetadataOptionalElements;)*,
+ ((dc:Title, (%DCMetadataOptionalElements; | dc:Title)*,
+ (dc:Identifier, (%DCMetadataGeneralElements;)*)) |
+ (dc:Identifier, (%DCMetadataOptionalElements; | dc:Identifier)*,
+ (dc:Title, (%DCMetadataGeneralElements;)*))))
+>
+
+<!ATTLIST dc-metadata
+ %CommonAttributes;
+ %DCNamespaceAttribute;
+ xmlns:oebpackage %URI; #FIXED "http://openebook.org/namespaces/oeb-package/1.0/"
+>
+
+<!-- A dc:Contributor element may optionally have a role and/or a file-as
+ attribute. -->
+<!ELEMENT dc:Contributor (#PCDATA)>
+<!ATTLIST dc:Contributor
+ %CommonAttributes;
+ %DCNamespaceAttribute;
+ role NMTOKEN #IMPLIED
+ file-as CDATA #IMPLIED
+>
+
+<!ELEMENT dc:Title (#PCDATA)>
+<!ATTLIST dc:Title
+ %CommonAttributes;
+ %DCNamespaceAttribute;
+>
+
+<!ELEMENT dc:Creator (#PCDATA)>
+<!ATTLIST dc:Creator
+ %CommonAttributes;
+ %DCNamespaceAttribute;
+ role NMTOKEN #IMPLIED
+ file-as CDATA #IMPLIED
+>
+
+<!ELEMENT dc:Subject (#PCDATA)>
+<!ATTLIST dc:Subject
+ %CommonAttributes;
+ %DCNamespaceAttribute;
+>
+
+<!ELEMENT dc:Description (#PCDATA)>
+<!ATTLIST dc:Description
+ %CommonAttributes;
+ %DCNamespaceAttribute;
+>
+
+<!ELEMENT dc:Publisher (#PCDATA)>
+<!ATTLIST dc:Publisher
+ %CommonAttributes;
+ %DCNamespaceAttribute;
+>
+
+<!ELEMENT dc:Date (#PCDATA)>
+<!ATTLIST dc:Date
+ %CommonAttributes;
+ %DCNamespaceAttribute;
+ event NMTOKEN #IMPLIED
+>
+
+<!ELEMENT dc:Type (#PCDATA)>
+<!ATTLIST dc:Type
+ %CommonAttributes;
+ %DCNamespaceAttribute;
+>
+
+<!ELEMENT dc:Format (#PCDATA)>
+<!ATTLIST dc:Format
+ %CommonAttributes;
+ %DCNamespaceAttribute;
+>
+
+<!ELEMENT dc:Identifier (#PCDATA)>
+<!ATTLIST dc:Identifier
+ %CommonAttributes;
+ %DCNamespaceAttribute;
+ scheme NMTOKEN #IMPLIED
+>
+
+<!ELEMENT dc:Source (#PCDATA)>
+<!ATTLIST dc:Source
+ %CommonAttributes;
+ %DCNamespaceAttribute;
+>
+
+<!ELEMENT dc:Language (#PCDATA)>
+<!ATTLIST dc:Language
+ %CommonAttributes;
+ %DCNamespaceAttribute;
+>
+
+<!ELEMENT dc:Relation (#PCDATA)>
+<!ATTLIST dc:Relation
+ %CommonAttributes;
+ %DCNamespaceAttribute;
+>
+
+<!ELEMENT dc:Coverage (#PCDATA)>
+<!ATTLIST dc:Coverage
+ %CommonAttributes;
+ %DCNamespaceAttribute;
+>
+
+<!ELEMENT dc:Rights (#PCDATA)>
+<!ATTLIST dc:Rights
+ %CommonAttributes;
+ %DCNamespaceAttribute;
+>
+
+<!-- The <x-metadata> element must have at least one <meta> element. -->
+<!ELEMENT x-metadata (meta+)>
+<!ATTLIST x-metadata %CommonAttributes;>
+
+<!ELEMENT meta EMPTY>
+<!ATTLIST meta
+ %CommonAttributes;
+ name NMTOKEN #REQUIRED
+ content CDATA #REQUIRED
+ scheme CDATA #IMPLIED
+>
+
+<!-- The manifest must contain one or more items. -->
+<!ELEMENT manifest (item+)>
+<!ATTLIST manifest %CommonAttributes;>
+
+<!-- The CommonAttributes entity is not used here because in this case
+ the "id" attribute is required. -->
+<!ELEMENT item EMPTY>
+<!ATTLIST item
+ %InternationalAttributes;
+ id ID #REQUIRED
+ href CDATA #REQUIRED
+ media-type CDATA #REQUIRED
+ fallback IDREF #IMPLIED
+>
+
+<!-- The spine must contain one or more itemrefs. -->
+<!ELEMENT spine (itemref+)>
+<!ATTLIST spine %CommonAttributes;>
+
+<!ELEMENT itemref EMPTY>
+<!ATTLIST itemref
+ %CommonAttributes;
+ idref IDREF #REQUIRED
+>
+
+<!-- The tours element must have one or more tour elements. -->
+<!ELEMENT tours (tour+)>
+<!ATTLIST tours %CommonAttributes;>
+
+<!-- Each tour of the set must contain at least one site. -->
+<!ELEMENT tour (site+)>
+<!ATTLIST tour
+ %CommonAttributes;
+ title CDATA #REQUIRED
+>
+
+<!-- Each site in a tour must have a title and an href. -->
+<!ELEMENT site EMPTY>
+<!ATTLIST site
+ %CommonAttributes;
+ title CDATA #REQUIRED
+ href CDATA #REQUIRED
+>
+
+<!-- The guide element must have one or more reference elements. -->
+<!ELEMENT guide (reference+)>
+<!ATTLIST guide %CommonAttributes;>
+
+<!ELEMENT reference EMPTY>
+<!ATTLIST reference
+ %CommonAttributes;
+ type NMTOKEN #REQUIRED
+ title CDATA #REQUIRED
+ href CDATA #REQUIRED
+>