Implementierungsvorschlag für OpenOffice.org
Das Dateiformat, in dem ein solches Dokument gespeichert ist, muss entsprechend unseres Vorschlags dem Umstand Rechnung tragen, dass die Layout-Struktur zukünftig durch eine semantische Struktur überlagert wird. Diese referenziert die in die Layout-Struktur eingebetteten Inhalte zusätzlich.
Es ist angezeigt, diese Strukturen nicht zu mixen, sondern diese in getrennten DOM-Bäumen abzubilden.

Für den Fall von OpenOffice.org könnte die bereits bestehende meta.xml Verwendung finden.





Auf Basis dieser Überlegungen bieten wir als Vorschlag an, dass die semantisch zu strukturierenden Inhalte automatisch z.B. mit Hilfe von bookmarks innerhalb der Layout-Struktur (content.xml) markiert werden. Alternativ könnten die die Inhalte tragenden XML-Elemente ein entsprechendes Index-Attribut tragen (metaindex="1234"). Jeder Markierung wäre in beiden Fällen jeweils ein eindeutiger Index zugeordnet.
Über diese Indizes werden die Inhalte aus der semantischen XML-Struktur (meta.xml) heraus referenziert.

Die beiden kompletten Dateien sind hier einzusehen:
meta.xml
content.xml.





Da innerhalb der meta.xml keine Inhalte sondern nur Referenzen enthalten wären, ginge die Prüfbarkeit der referenzierten Inhalte in Hinblick auf ihren Datentyp als wichtige Validierungsfunktion verloren.
Dieser Nachteil könnte dadurch korrigiert werden, dass man über eine entsprechende XSLT-Transformation ein temporäres Dokument (merged.xml) erzeugte, in dem die Referenzen der meta.xml durch die referenzierten Inhalte aus der content.xml ersetzt werden. Dieses temporäre Dokument wäre dann vollständig validierbar.





merged.xml :


<?xml version="1.0" encoding="UTF-8"?>
<!--edited with XMLSPY v5 rel. 2 (http://www.xmlspy.com) by Ursula Bartels, MSK GESELLSCHAFT FUER AUTOMATISIERUNG MBH, 2003-03-04-->

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:ed="http://www.1dok.org/schemas#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/"
xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.1dok.org/schemas#
http://www.1dok.org/schemas/XML/eng/Invoice.xsd">

<rdf:Description xsi:type="ed:Invoice">
<ed:documentClass>Invoice</ed:documentClass>
<ed:einDokVersion>version 0.1</ed:einDokVersion>
<ed:accessibility>WAI Priority 1</ed:accessibility>
<dc:creator xsi:type="ed:DCDescription">
<rdf:Description xsi:type="ed:CreatorRefinement">
<vCard:fn>Ursula Bartels</vCard:fn>
</rdf:Description>
</dc:creator>
<dcterms:created>2003-05-27</dcterms:created>
<ed:sender>
<rdf:Description xsi:type="ed:AdressRefinement">
<ed:einDokURL>ed://www.mskgmbh.com</ed:einDokURL>
<vCard:org xsi:type="ed:OrgProperty">
<rdf:Description xsi:type="ed:OrgRefinement">
<vCard:orgname>MSK GESELLSCHAFT FUER AUTOMATISIERUNG MBH</vCard:orgname>
</rdf:Description>
</vCard:org>
<vCard:adr xsi:type="ed:AdrProperty">
<rdf:Description xsi:type="ed:AdrRefinement">
<vCard:street>Friedrich-Ebert-Allee 33</vCard:street>
<vCard:pcode>22869</vCard:pcode>
<vCard:locality>Schenefeld</vCard:locality>
<vCard:country>Germany</vCard:country>
</rdf:Description>
</vCard:adr>
</rdf:Description>
</ed:sender>
<ed:recipient>
<rdf:Description xsi:type="ed:AdressRefinement">
<ed:einDokURL>ed://www.client.com</ed:einDokURL>
<vCard:org xsi:type="ed:OrgProperty">
<rdf:Description xsi:type="ed:OrgRefinement">
<vCard:orgname>Client of MSK</vCard:orgname>
</rdf:Description>
</vCard:org>
<vCard:adr xsi:type="ed:AdrProperty">
<rdf:Description xsi:type="ed:AdrRefinement">
<vCard:street>Sample Street 1</vCard:street>
<vCard:pcode>10000</vCard:pcode>
<vCard:locality>Sample Town</vCard:locality>
<vCard:country>Germany</vCard:country>
</rdf:Description>
</vCard:adr>
</rdf:Description>
</ed:recipient>
<ed:subjectLine/>
<ed:referenceLine/>
<ed:bankAccounts>
<rdf:Description xsi:type="ed:BankAccountsRefinement">
<ed:accountHolder>MSK GMBH</ed:accountHolder>
<ed:accountNumber>1234567890</ed:accountNumber>
<ed:bankCodeNumber>10203040</ed:bankCodeNumber>
<ed:bank>Sample Bank</ed:bank>
</rdf:Description>
</ed:bankAccounts>
<ed:media>
<rdf:Description xsi:type="ed:MediaRefinement">
<ed:telephone>040-8392860</ed:telephone>
<ed:mobile/>
</rdf:Description>
</ed:media>
<ed:businessPremises/>
<ed:signatur/>
<ed:invoiceNo>0A6U67P</ed:invoiceNo>
<ed:invoiceItem>
<rdf:Description xsi:type="ed:InvoiceItemRefinement">
<ed:itemNo>1</ed:itemNo>
<ed:descriptionOfService>Printer</ed:descriptionOfService>
<ed:price>596</ed:price>
</rdf:Description>
</ed:invoiceItem>
<ed:invoiceItem>
<rdf:Description xsi:type="ed:InvoiceItemRefinement">
<ed:itemNo>2</ed:itemNo>
<ed:descriptionOfService>Printer Cartridge</ed:descriptionOfService>
<ed:price>21</ed:price>
</rdf:Description>
</ed:invoiceItem>
<ed:invoiceItem>
<rdf:Description xsi:type="ed:InvoiceItemRefinement">
<ed:itemNo>3</ed:itemNo>
<ed:descriptionOfService>Personal Computer</ed:descriptionOfService>
<ed:price>1399</ed:price>
</rdf:Description>
</ed:invoiceItem>
<ed:extraCharges>10</ed:extraCharges>
<ed:totalAmount>2016</ed:totalAmount>
<ed:valueAddedTaxRate>16%</ed:valueAddedTaxRate>
<ed:invoiceTotal>2338,56</ed:invoiceTotal>
<ed:termsOfPayment>7 DAYS</ed:termsOfPayment>
</rdf:Description>
</rdf:RDF>

Begriffsbestimmungen:

Wir unterscheiden 3 Kategorien von Inhalten. Die Angabe einer klaren Abgrenzung zwischen diesen Kategorien in einem allgemeingültigen Ansatz ist nicht möglich, sondern muss im jeweiligen Anwendungsfall erfolgen.

klassifizierende Inhalte

Klassifizierende Inhalte beschreiben ein Dokument eindeutig und ermöglichen damit die Einordnung und das Wiederauffinden eines Dokuments in einem System von Dokumenten.
Z.B wären dies diejenigen Informationen, die zum assoziativen Speichern von Dokumenten notwendig wären.

Im Falle einer Rechnung wären z.B. folgende Informationen klassifizierend:

Dokumentenklasse (Rechnung)
Absender
Rechnungsdatum (Erstellungsdatum)
Rechnungsnummer

semantisch strukturierte Inhalte

Inhaltsbeschreibende Inhalte umfassen neben den klassifizierenden Inhalten auch alle Inhalte die nicht klassifizierend sind, aber dennoch durch eine interpretierende Software identifizierbar sein müssen.

Im Falle einer Rechnung wären dies z.B.:

Rechnungspositionen
Rechnungsbetrag
Mehrwertsteuerbetrag

Der Rechnungsbetrag wäre z.B. zur geordneten Ablage des Dokuments nicht relevant, muss aber zur automatisierten Fakturierung der Rechnung ausgelesen werden können.

semantisch unstrukturierte Inhalte

Semantisch unstrukturierte Inhalte sind alle Inhalte, die nicht für eine automatische Verarbeitung vorgesehen sind. Dies können z.B. Beschriftungen von Eingabefeldern und andere gestalterische Texte sein. Im Falle unserer Rechnung wären dies z.B. die Überschriften der Rechnungspositionstabelle.
top
copyright 1dok.org 2002 | home |