ref: d4f4b292ca9c8665ef938036340ff32bf5128755
dir: /appl/ebook/dtd/oebpkg101.dtd/
<!-- 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 >