Publishing mit XML

NewsML, Open eBook, DocBook

10. Dezember 2002

Valeri Felberg, Richard Cyganiak

Seminar XML Technologien WS2002
Robert Tolksdorf
Institut für Informatik, FU Berlin

NewsML

Was ist NewsML?

Features

Struktur: NewsML- und Catalog-Elemente

NewsML: Root-Element mit optionaler Versionnummer der DTD, nach der das Dokument validiert werden soll.

Beispiel:

<?xml version="1.0"?>
<!DOCTYPE NewsML PUBLIC "urn:newsml:iptc.org:20021018:NewsMLv1.1:1"
"http://www.iptc.org/NewsML/DTD/NewsMLv1.1.dtd">

<NewsML Version="1.1">
	<Catalog>
	...
	</Catalog>

	<TopicSet>
	...
	</TopicSet>

	<NewsEnvelope>
	...
	</NewsEnvelope>

	<NewsItem>
	...
	</NewsItem>

	<NewsItem>
	...
	</NewsItem>
</NewsML>

Catalog: Container für Resource- und TopicUse-Elemente

Resource-Elemente geben externe Ressourcen als URN oder URL an, die als DefaultVocabularies für einige oder alle Content-Elemente des Dokumentes dienen.

TopicUse-Elemente geben an, wo im Dokument bestimmte Topics benutzt werden.

Beispiel:

<Catalog>
	<Resource>
		<Urn>urn:newsml:iptc.org:20001006:IptcConfidence:1</Urn>
		<Url>http://www.iptc.org/NewsML/topicsets/iptc-confidence.xml</Url>
		<DefaultVocabularyFor Context="@Confidence"/>
	</Resource>

	<TopicUse Topic="#person1" Context="DescriptiveMetadata"/>
</Catalog>

<TopicSet FormalName="Person">
	<Topic Duid="person1">
		<TopicType FormalName="Person" Vocabulary="urn:newsml:iptc.org:20001006:IptcTopicTypes:1" Scheme="IptcTopicTypes"/>
		<Description xml:lang="en-GB">David Allen, Managing Director of IPTC</Description>
	</Topic>
</TopicSet>

Struktur: TopicSets, NewsEnvelope und Metadata Assignment

TopicSets sind Container für Topics - Themen aus der realen Welt.

Beispiel:

<NewsML>
	<Catalog>
		<Resource>
			<Urn>urn:newsml:iptc.org:20001006:IptcTopicTypes:1</Urn>
			<Url>http://www.iptc.org/NewsML/topicsets/iptc-topictypes.xml</Url>
			<DefaultVocabularyFor Context="TopicType"/>
		</Resource>
	</Catalog>
	<TopicSet FormalName="Event"/>
		<Topic Duid="event1">
			<TopicType FormalName="Event"/>
			<Desciption xml:lang="en-GB">Iran-Iraq war</Description>
		</Topic>
		<Topic Duid="person1" Details="whoswho.xml#tonyblair">
			<TopicType FormalName="Person"/>
			<Description>Tony Blair</Description>
		</Topic>
		<Topic Duid="company1">
			<TopicType FormalName="Company"/>
			<FormalName Scheme="RIC">DELL.O</FormalName>
			<FormalName Scheme="NASDAQ">DELL</FormalName>
			<Description Variant="Company Name">Dell Computer</Description>
		</Topic>
		<Topic Duid="company2">
			<TopicType FormalName="Company"/>
			<FormalName Scheme="RIC">RTRSY.O</FormalName>
			<FormalName Scheme="NASDAQ">RTRSY</FormalName>
			<Description Variant="Company Name">Reuters</Description>
		</Topic>
	</TopicSet>
</NewsML>

Noch Beispiel:

<TopicSet Duid="mysubjects" FormalName="SubjectMatter">
	<TopicSetRef TopicSet="urn:newsml:iptc.org:iptc:20001006:IptcSubjectCodes"/>
	<Topic Duid="mysubject1">
		<TopicType FormalName="SubjectMatter" Vocabulary="urn:iptc:20001006:IptcTopicTypes" Scheme="IptcTopicTypes"/>
		<FormalName Scheme="myscheme">BDES</FormalName>
		<FormalName Scheme="IptcSubjectCodes">01002000</FormalName>
		<Description xml:lang="en-GB" Variant="ShortDesc">Building Design</Description>
		<Description xml:lang="en-GB" Variant="FullDesc">The art and science of designing buildings</Description>
	</Topic>
</TopicSet>

Das NewsEnvelope-Element enthält Information darüber, wie das NewsML-Dokument im Business-Workflow oder im Verhältnis zwischen dem News-Provider und -Verbraucher benutzt wird, zumindest DateAndTime.

<Catalog>
	<Resource>
		<Urn>urn:newsml:mpc.com:20010101:MpcServices:1</Urn>
		<DefaultVocabularyFor Context="NewsService"/>
	</Resource>
	<Resource>
		<Urn>urn:newsml:mpc.com:20010101:MpcProducts:1</Urn>
		<DefaultVocabularyFor Context="NewsProduct"/>
	</Resource>
</Catalog>
<NewsEnvelope>
	<TramsmissionId Repeat="second attempt">abc123</TransmissionId>
	<SentFrom>
		<Party FormalName="MYCODE" Scheme="xyz" Vocabulary="urn:newsml:mycompany.com:20010101:MyCompanyCodes:1"/>
	</SentFrom>
	<DateAndTime>20001006T140000+0200</DateAndTime>
	<NewsService FormalName="SPORTS"/>
	<NewsService FormalName="GENERAL INTEREST"/>
	<NewsProduct FormalName="WebWire"/>
	<Priority FormalName="5" Vocabulary="urn:newsml:iptc.org:20001006:IptcPriority:1" Scheme="IptcPriority"></Priority>
</NewsEnvelope>

Beispiel zu Metadata Assignment

<NewsML>
	<Catalog>
		<Resource>
			<Urn>urn:newsml:iptc.org:20001006:IptcConfidence:1</Urn>
			<DefaultVocabularyFor Scheme="IptcConfidence" Context="@Confidence"/>
		</Resource>
		<Resource>
			<Url>http://www.brs.com/vocabularies/importance.xml</Url>
			<DefaultVocabularyFor Scheme="xyz" Context="@Importance"/>
		</Resource>
		<Resource>
			<Url>#LocalTopicSet</Url>
			<DefaultVocabularyFor Scheme="companycode" Context="@AssignedBy"/>
		</Resource>
	</Catalog>
	<TopicSet Duid="LocalTopicSet" FormalName="Company">
		<Topic Duid="company1">
			<TopicType FormalName="Company" Scheme="IptcTopicTypes" Vocabulary="urn:newsml:iptc.org:20001006:IptcTopicTypes:1"/>
			<FormalName Scheme="companycode">BRS</FormalName>
			<Description xml:lang="en-GB">Bloomsbury Review Service</Description>
		</Topic>
	</TopicSet>

 ...

	<DescriptiveMetadata AssignedBy="BRS" Importance="normal" Confidence="High" DateAndTime="20001231T1200+0000">
	...
	</DescriptiveMetadata>
 ...
</NewsML>

Struktur: NewsItem, NewsManagement, Property

Beispiel ohne Update:

<NewsIdentifier>
	<ProviderId>iptc.org</ProviderId>
	<DateId>20001006</DateId>
	<NewsItemId>NewsML Approved</NewsItemId>
	<RevisionId PreviousRevision="0" Update="N">1</RevisionId>
	<PublicIdentifier>urn:newsml:iptc.org:20001006:NewsML%20Approved:1</PublicIdentifier>
</NewsIdentifier>

Beispiel mit Update und Datum als RevisionId:

<NewsIdentifier>
	<ProviderId>iptc.org</ProviderId>
	<DateId>20001006</DateId>
	<NewsItemId>i123</NewsItemId>
	<RevisionId PreviousRevision="20001005" Update="U">20001023</RevisionId>
	<PublicIdentifier>urn:newsml:iptc.org:20001006:i123:20001023U</PublicIdentifier>
</NewsIdentifier>

Beispiel zu NewsManagement:

<NewsManagement>
	<NewsItemType FormalName="News" Vocabulary="urn:newsml:iptc.org:20001006:IptcNewsItemTypes:1" Scheme="IptcNewsItemTypes"/>
	<FirstCreated>20001006T1400+0200</FirstCreated>
	<ThisRevisionCreated>20001006T1615+0200</ThisRevisionCreated>
	<Status Vocabulary="urn:newsml:iptc.org:20001006:IptcStatus:1" Scheme="IptcStatus" FormalName="Embargoed"/>
	<Urgency Vocabulary="urn:newsml:iptc.org:20001006:IptcUrgency:1" Scheme="IptcUrgency" FormalName="1"/>
	<RevisionHistory Href="../history/rev_1376.log"/>
	<DerivedFrom NewsItem="urn:newsml:iptc.org:20001006:NewsML%201.0%20approved" >
		<Comment>Statement from the Chair of the NewsML Steering Committee.</Comment>
	</DerivedFrom>
	<AssociatedWith NewsItem="urn:newsml:iptc.org:20001006:NewsML%201.0%20approved" >
		<Comment>This is a sequel to the previous story.</Comment>
	</AssociatedWith>
	<Instruction FormalName="MostRecentStillUsable" Vocabulary="#MyInstructionCodes">
		<RevisionStatus Revision="1">
			<Status FormalName="Canceled"/>
		</RevisionSatus>
		<RevisionStatus Revision="2">
			<Status FormalName="Canceled"/>
		</RevisionSatus>
		<RevisionStatus Revision="3">
			<Status FormalName="Usable"/>
		</RevisionSatus>
	</Instruction>
</NewsManagement>

Beispiel zu StatusWillChange:

<Catalog>
	<Resource>
		<Urn>urn:newsml:iptc.org:20001006:IptcStatus:1</Urn>
		<DefaultVocabularyFor Scheme="IptcStatus" Context="Status|FutureStatus"/>
	</Resource>
</Catalog>
	...
	<NewsManagement>
		...
		<Status FormalName="Embargoed"/>
		<StatusWillChange>
			<FutureStatus FormalName="Usable"/>
			<DateAndTime>20000707T1200+0000</DateAndTime>
		</StatusWillChange>
	</NewsManagement>

Beispiel zu Property:

<Catalog>
	<Resource Duid="resource1">
		<Urn>urn:newsml:mydomain.com:20010101:Characteristics:3</Urn>
		<Url>www.mydomain.com/vocabs/characteristics.xml</Url>
		<DefaultVocabularyFor Context="Characteristics//Property"/>
	</Resource>
</Catalog>
	...
	<Characteristics>
		<Property FormalName="Width">
			<Property FormalName="Quantity" Value="7.5"/>
			<Property FormalName="Unit" ValueRef="urn:newsml:mydomain.com:20010101:Units:1#cm"/>
		</Property>
	</Characteristics>

Struktur: NewsComponent

Container für news objects: Texte, Fotos, Grafiken, komplette Nachrichten z.B. als Digest für eine Zeitperiode oder als Antwort auf eine Anfrage zu einem gewissen Thema.

<NewsItem>
	<Catalog>
		<Resource>
			<Url>http://www.mysite.com/MyRolesVocabulary.xml"</Url>
			<DefaultVocabularyFor Context="Role"/>
		</Resource>
 	</Catalog>
	...
	<NewsComponent EquivalentsList="yes">
		<BasisForChoice>./Role/@FormalName</BasisForChoice>
		<NewsComponent EquivalentsList="no">
			<Role FormalName="WEB"/>
			<NewsComponent EquivalentsList="yes">
				<Role FormalName="MAIN TEXT"/>
				<BasisForChoice>./Role/@FormalName</BasisForChoice>
				<ContentItem>...</ContentItem>
				<ContentItem>...</ContentItem>
				<ContentItem>...</ContentItem>
			</NewsComponent>
			<NewsComponent EquivalentsList="yes">
				<Role FormalName="PHOTO"/>
				<ContentItem>...</ContentItem>
				<ContentItem>...</ContentItem>
			</NewsComponent>
			<NewsComponent EquivalentsList="no">
				<Role FormalName="SIDE BAR"/>
				<NewsComponent EquivalentsList="yes" Essential="yes">
					<Role FormalName="TEXT"/>
					<ContentItem>...</ContentItem>
					<ContentItem>...</ContentItem>
					<ContentItem>...</ContentItem>
				</NewsComponent>
				<NewsComponent EquivalentsList="yes" Essential="yes">
					<Role FormalName="GRAPH"/>
					<BasisForChoice>./Role/@FormalName</BasisForChoice>
						<NewsComponent>
							<Role FormalName="PIE CHART"/>
							<ContentItem>...</ContentItem>
						</NewsComponent>
						<NewsComponent>
							<Role FormalName="BAR CHART"/>
							<ContentItem>...</ContentItem>
						</NewsComponent>
					</NewsComponent>
				</NewsComponent>
			</NewsComponent>
			<NewsComponent>
				<Role FormalName="TV"/>
					<NewsComponent EquivalentsList="yes">
						<Role FormalName="VIDEO"/>
						<ContentItem>...</ContentItem>
						<ContentItem>...</ContentItem>
					</NewsComponent>
				</NewsComponent>
				<NewsComponent>
					<Role FormalName="RADIO"/>
					<NewsComponent EquivalentsList="yes">
						<Role FormalName="AUDIO"/>
						<ContentItem>...</ContentItem>
						<ContentItem>...</ContentItem>
					</NewsComponent>
				</NewsComponent>
			</NewsComponent>
		</NewsComponent>
	</NewsComponent>
</NewsItem>

Noch Beispiel:

<Catalog>
	<Resource Duid="resource1">
		<Urn>urn:newsml:mydomain.com:20010101:Characteristics:3</Urn>
		<Url>www.mydomain.com/vocabs/characteristics.xml</Url>
		<DefaultVocabularyFor Context="Property"/>
	</Resource>
</Catalog>
...
<NewsComponent EquivalentsList="yes">
	<BasisForChoice>.//Property[@FormalName="PixelWidth"]/@Value</BasisForChoice>
	<ContentItem Href="pictures/4769w336.jpg">
		<MimeType FormalName="image/jpeg"/>
		<Characteristics>
			<SizeInBytes>22999</SizeInBytes>
			<Property FormalName="PixelWidth" Value="336"/>
			<Property FormalName="PixelHeight" Value="224"/>
		</Characteristics>
	</ContentItem>
	<ContentItem Href="pictures/4769w170.jpg">
		<MimeType FormalName="image/jpeg"/>
		<Characteristics>
			<SizeInBytes>8449</SizeInBytes>
			<Property FormalName="PixelWidth" Value="170"/>
			<Property FormalName="PixelHeight" Value="224"/>
		</Characteristics>
	</ContentItem>
</NewsComponent>

Noch Beispiel:

<NewsComponent EquivalentsList="yes">
	<BasisForChoice>@xml:lang</BasisForChoice>
	<NewsComponent xml:lang="en-US">
	...
	</NewsComponent>
	<NewsComponent xml:lang="fr-FR">
	...
	</NewsComponent>
</NewsComponent>

Struktur: ContentItem

Enthält oder referenziert darstellbaren Inhalt wie Text, Fotos, Audios usw.

MediaTypes in NewsML 1.0:

<ContentItem>
	<Encoding Notation="binhex">
		<Encoding Notation="zip">
			<DataContent>A873B6FE ...</DataContent>
		</Encoding>
	</Encoding>
</ContentItem>

Noch Beispiel:

<NewsML>
	<Catalog>
		<Resource>
			<Urn>urn:newsml:iptc.org:20001006:IptcMediaTypes.xml</Urn>
			<DefaultVocabularyFor Scheme="IptcMediaTypes" Context="MediaType"/>
		</Resource>
		<Resource>
			<Urn>urn:newsml:iptc.org:20001006:IptcFormats.xml</Urn>
			<DefaultVocabularyFor Scheme="IptcFormats" Context="Format"/>
		</Resource>
		<Resource>
			<Urn>urn:newsml:iptc.org:20001006:IptcMimeTypes.xml</Urn>
			<DefaultVocabularyFor Scheme="IptcMimeTypes" Context="MimeType"/>
		</Resource>
		<Resource>
			<Urn>urn:newsml:iptc.org:20001006:IptcNotations.xml</Urn>
			<DefaultVocabularyFor Scheme="IptcNotations" Context="Notation"/>
		</Resource>
		<Resource>
			<Urn>urn:newsml:mydomain.org:20010101:myproperties.xml</Urn>
			<DefaultVocabularyFor Scheme="Properties" Context="Property"/>
		</Resource>
	</Catalog>
	...
	<ContentItem Href="urn:newsml:iptc.org:20001006:NewsML%201.0%20approved:2#item2">
		<MediaType FormalName="Text"/>
		<Format FormalName="TTNITF"/>
		<MimeType FormalName="text/vnd.IPTC.NITF"/>
		<Notation FormalName="NITF"/>
		<Characteristics>
			<SizeInBytes>2736</SizeInBytes>
			<Property FormalName="WordCount" Value="450"/>
		</Characteristics>
	</ContentItem>
 ...
</NewsML>

Struktur: Metadata

AdministrativeMetadata:

<AdministrativeMetadata>
	<FileName>NewsmlStory.xml</FileName>
	<SystemIdentifier>http://www.mydomain.com/stories/NewsmlStory.xml</SystemIdentifier>
	<Provider>
		<Party FormalName="News Headlines International" Topic="#company1"/>
	</Provider>
	<Creator>
		<Party FormalName="Doe, John" Topic="#person1"/>
	</Creator>
	<Contributor>
		<Comment>Editorial review</Comment>
		<Party FormalName="Smith, Jane" Topic="#person2"/>
	</Contributor>
	<Contributor>
		<Comment>Quote</Comment>
		<Party FormalName="Dumas, Pierre" Topic="#person3"/>
	</Contributor>
</AdministrativeMetadata>

RightsMetadata:

<RightsMetadata>
	<Copyright>
		<CopyrightHolder><Origin Href="#organization1">International Press Telecomminications Council</Origin></CopyrightHolder>
		<CopyrightDate>2000</CopyrightDate>
	</Copyright>
	<UsageRights>
		<UsageType>Television</UsageType>
		<Geography><Origin Href="urn:newsml:iptc.org:20001006:Countries#isoc826">United Kingdom</Origin></Geography>
		<RightsHolder><Origin Href="#organization2">BBC</Origin></RightsHolder>
		<StartDate>July 2000</StartDate>
		<EndDate>December 2000</EndDate>
		<Limitations>Acknowledgement of <Origin Href="#organization1">IPTC</Origin> copyright must be made</Limitations>
	</UsageRights>
	<UsageRights>
		<UsageType>Television</UsageType>
		<Geography><Origin Href="#region1">North America</Origin></Geography>
		<RightsHolder><Origin Href="#company1">CNN</Origin></RightsHolder>
		<StartDate>July 2000</StartDate>
		<EndDate>none</EndDate>
		<Limitations>Acknowledgement of <Origin Href="#organization1">IPTC</Origin> copyright must be made</Limitations>
	</UsageRights>
</RightsMetadata>

DescriptiveMetadata:

<Catalog>
	<Resource>
		<Urn>urn:newsml:iptc.org:20001006:IptcTopicTypes</Urn>
		<DefaultVocabularyFor Scheme="IptcTopicTypes" Context="TopicType"/>
	</Resource>
	<Resource>
		<Urn>urn:newsml:iptc.org:20001006:Languages</Urn>
		<DefaultVocabularyFor Scheme="IsoLanguageCode" Context="Language"/>
	</Resource>
	<Resource>
		<Urn>urn:newsml:iptc.org:20001006:IptcGenre</Urn>
		<DefaultVocabularyFor Scheme="IptcGenre" Context="Genre"/>
	</Resource>
	<Resource>
		<Urn>urn:newsml:iptc.org:20001006:IptcSubjectCodes</Urn>
		<DefaultVocabularyFor Scheme="IptcSubjectCode" Context="Subject"/>
	</Resource>
	<Resource>
		<Urn>urn:newsml:iptc.org:20001006:IptcOfInterestTo</Urn>
		<DefaultVocabularyFor Scheme="IptcOfInterestTo" Context="OfInterestTo"/>
	</Resource>
	<Resource>
		<Urn>urn:newsml:iptc.org:20001006:IptcConfidence</Urn>
		<DefaultVocabularyFor Scheme="IptcConfidence" Context="@Confidence"/>
	</Resource>
	<Resource>
		<Urn>urn:newsml:iptc.org:20001006:IptcImportance</Urn>
		<DefaultVocabularyFor Scheme="IptcImportance" Context="@Importance"/>
	</Resource>
</Catalog>
<TopicSet FormalName="Person">
	<Topic Duid="person1" FormalName="Person">
		<TopicType FormalName="Person"/>
		<Description xml:lang="en-GB">President Clinton</Description>
	</Topic>
	<Topic Duid="person2">
		<TopicType FormalName="Person"/>
		<Description xml:lang="en-GB">Yasser Arafat</Description>
	</Topic>
	<Topic Duid="location1">
		<TopicType FormalName="Location"/>
		<Description xml:lang="en-GB">The White House Lawn</Description>
	</Topic>
</TopicSet>
<DescriptiveMetadata Confidence="High" Importance="5">
	<Language FormalName="en"/>
	<Genre FormalName="Current"/>
	<SubjectCode>
		<Subject FormalName="11000000"/>
	</SubjectCode>
	<TopicOccurrence Topic="#person1" HowPresent="Prominent"/>
	<TopicOccurrence Topic="#person2" HowPresent="RelatesTo"/>
	<TopicOccurrence Topic="#location1" HowPresent="Passing"/>
</DescriptiveMetadata>

Struktur: NewsLines und Update

NewsLines:

<TopicSet Duid="LocalTopicSet" FormalName="person">
	<Topic Duid="person1" Details=http://mydomain.com/staff.xml#jwilson">
		<TopicType FormalName="person" Vocabulary="http://www.iptc.org/NewsML/topicsets/iptc-topictypes.xml"/>
	</Topic>
	<Topic Duid="position1" Details=http://mydomain.com/positions.xml#staffreporter">
		<TopicType FormalName="position" Vocabulary="#LocalTopicSet"/>
	</Topic>
	<Topic Duid="newspaper1" Details=http://mydomain.com/papers.xml#dailyrecord">
		<TopicType FormalName="newspaper" Vocabulary="#LocalTopicSet"/>
	</Topic>
	<Topic Duid="newslinetype1">
		<TopicType FormalName="NewsLineType" Vocabulary="http://www.iptc.org/NewsML/topicsets/iptc-topictypes.xml "/>
		<FormalName>ImpactLine</FormalName>
		<Description xml:lang="en-GB">An indication of the significance of the event described</Description>
	</Topic>
	<Topic Duid="topictype1">
		<TopicType FormalName="TopicType" Vocabulary="http://www.iptc.org/NewsML/topicsets/iptc-topictypes.xml"/>
		<FormalName>position</FormalName>
		<Description xml:lang="en-GB">An job function performed by a person.</Description>
	</Topic>
	<Topic Duid="topictype2">
		<TopicType FormalName="TopicType" Vocabulary="http://www.iptc.org/NewsML/topicsets/iptc-topictypes.xml"/>
		<FormalName>newspaper</FormalName>
		<Description xml:lang="en-GB">A publication that carries news.</Description>
	</Topic>
</TopicSet>
...
<NewsLines>
	<HeadLine>Clinton Addresses Crowd</HeadLine>
	<SubHeadLine>New policies announced</SubHeadLine>
	<ByLine>By <Origin Href="#person1">James Wilson</Origin></ByLine>
	<CreditLine><Origin Href="#position1">Staff Reporter</Origin> of <Origin Href="newspaper1">The Daily Record</Origin></CreditLine>
	<NewsLine>
		<NewsLineType FormalName="ImpactLine" Vocabulary="#LocalTopicSet"/>
		<NewsLineText>Key pre-election rallying call</NewsLineText>
	</NewsLine>
</NewsLines>

Update:

<!ELEMENT Update (InsertBefore | InsertAfter | Replace | Delete )*>

Zusammenfassung, Stärken, Schwächen

Zusammenfassung

NewsML als Ansatz bei der Problemlösung in folgenden Bereichen:

Stärken:

Schwächen:

Fragen?

Open eBook

Was sind eBooks?

eBooks

Der Gemstar GEB 21050 eBook-Reader

Gemstar GEB 2150

Dokumentformate

(X)HTML als Standard?

Der Open eBook-Standard

Open eBook Forum

Aufbau eines Dokuments

OeB Package

Package File

Typischer Aufgau:

<?xml version="1.0"?>
<!DOCTYPE package
  PUBLIC "+//ISBN 0-9673008-1-9//DTD OEB 1.2 Package//EN"
  "http://openebook.org/dtds/oeb-1.2/oebpkg12.dtd">
<package unique-identifier="xyz">
  <metadata><!-- ... --></metadata>
  <manifest><!-- ... --></manifest>
  <spine><!-- ... --></spine>
  <tours><!-- ... --></tours>
  <guide><!-- ... --></guide>
</package>

Metadaten

<metadata>
  <dc-metadata xmlns:dc="http://purl.org/dc/elements/1.1/"
      xmlns:oebpackage=
        "http://openebook.org/namespaces/oeb-package/1.0/">
    <dc:Title>Alice in Wonderland</dc:Title>
    <dc:Language>en</dc:Language>
    <dc:Identifier id="xyz" scheme="ISBN">
      123456789X
    </dc:Identifier>
    <dc:Creator role="aut">Lewis Carroll</dc:Creator>
  </dc-metadata>
</metadata>

Die Elemente des dc-Namespaces werden durch den Dublin Core Standard festgelegt.

Manifest

<manifest>
   <item id="toc" href="contents.xml"
      media-type="text/x-oeb1-document" />
   <item id="c1" href="chapter-1.html"
      media-type="text/x-oeb1-document" />
   <!-- ... -->
   <item id="titlepic" href="title.png"
      media-type="image/png" />
   <item id="titlepic_tiff" href="titlepic.tiff"
      media-type="image/tiff" fallback="titlepic" />
</manifest>

Fallbacks müssen zu XHTML, JPEG, PNG oder CSS führen

Weitere Package-Bestandteile

<spine>

<tours>

<guide>

Vorteile und Probleme

Vorteile und Probleme

Vorteile

Probleme

Vermutung: OeB hat Zukunft als Austauschformat

Fragen?

DocBook

Was ist DocBook?

Beispiel: PHP-Manual

PHP-Manual: www.php.net

Screenshot von www.php.net (normale Version)

PHP-Manual: HTML-Download

Screenshot des PHP-Manuals (HTML-Download-Version)

PHP-Manual: PDF

Screenshot des PHP-Manuals (PDF-Version)

PHP-Manual: Windows Help

Screenshot des PHP-Manuals (Windows Help Version)

...außerdem: PalmPilot DOC und iSilo

PHP-Manual: Quelldatei

<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.34 $ -->
 <chapter id="introduction">
  <title>Introduction</title>

  <sect1 id="intro-whatis">
   <title>What is PHP?</title>
   <para>
    <acronym>PHP</acronym> (recursive acronym for "PHP: Hypertext
    Preprocessor") is a widely-used Open Source general-purpose
    scripting language that is especially suited for Web
    development and can be embedded into HTML.
   </para>
   <para>
    Simple answer, but what does that mean? An example:
   </para>
   <para>
    <example>
     <title>An introductory example</title>
     <programlisting role="php">
<![CDATA[
<html>
    <head>
        <title>Example</title>
    </head>
    <body>

        <?php 
        echo "Hi, I'm a PHP script!"; 
        ?>

    </body>
</html>
]]>
     </programlisting>
    </example>
   </para>
...

Der DocBook-Standard

Geschichte

Benutzt das jemand?

Syntax und Elemente

Hierarchie-Elemente

Metainformations-Elemente

"Information Pool"-Elemente

Beispiel: Ein Artikel

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<article lang="de">
  <title>Hello World mit DocBook</title>
  <articleinfo>
    <author>
      <firstname>Richard</firstname>
      <surname>Cyganiak</surname>
    </author>
  </articleinfo>
  <para>
    Hello, World!
  </para>
</article>

Beispiel: Ein Buch

<book lang="de">
  <bookinfo>
    <title>Ein Beispiel-Buch</title>
    <author>
      <firstname>Richard</firstname><surname>Cyganiak</surname>
    </author>
    <copyright>
      <year>2002</year><holder>Freie Universität Berlin</holder>
    </copyright>
  </bookinfo>
  <preface><title>Einleitung</title>
    <para>...</para>
  </preface>
  <chapter><title>Das erste Kapitel</title>
    <para>...</para>
  </chapter>
<!-- ... -->
  <appendix><title>Ein Anhang</title>
    <para>...</para>
  </appendix>
</book>

Technische Elemente I

Beispiel:

<para>
  Und wenn nichts mehr hilft, drücken Sie
  <keycombo action="simul">
    <keycap>Strg</keycap>
    <keycap>Alt</keycap>
    <keycap>Entf</keycap>
  </keycombo>.
</para>

Technische Elemente II

Beispiel:

<!--
public Wumpus getWumpus(int id)
        throws NoSuchWumpusException;
-->
<methodsynopsis>
  <modifier>public</modifier>
  <type>Wumpus</type>
  <methodname>getWumpus</methodname>
  <methodparam>
    <type>int</type><parameter>id</parameter>
  </methodparam>
  <exceptionname>NoSuchWumpusException</exceptionname>
</methodsynopsis>

Beispiel: UNIX man page

<refentry id="ls">
  <refmeta>
    <refentrytitle>ls</refentrytitle><manvolnum>1</manvolnum>
  </refmeta>
  <refnamediv>
    <refname>ls</refname>
    <refpurpose>list contents of a directory</refpurpose>
  </refnamediv>
  <refsynopsisdiv>
    <cmdsynopsis>
      <command>/usr/bin/ls</command>
      <arg choice="opt">
        <option>aAbcCdfFgilLmnopqrRstux1</option></arg>
      <arg choice="opt" rep="repeat">file</arg>
    </cmdsynopsis>
  </refsynopsisdiv>
  <refsect1><title>Description</title>
    <para>
      For each file that is a directory, <command>ls</command>
      lists the contents of the directory.
...

Tools

Übersicht

DocBook XML Publishing-Prozess

DocBook XML Publishing-Prozess

Editoren

Customizations

Customizations I

Erweiterungen

Teilmengen

Customizations II

Stärken, Schwächen, Alternativen

Stärken und Schwächen

Vorteile

Probleme

Alternativen

Fragen?