Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

MyCoRe-Anwendung selbst gebaut

Ähnliche Präsentationen


Präsentation zum Thema: "MyCoRe-Anwendung selbst gebaut"—  Präsentation transkript:

1 MyCoRe-Anwendung selbst gebaut
von Johannes Bühler und Kathleen Krebs MyCoRe Workshop am Hamburg

2 Gliederung Einführung Überblick Meine erste eigene MyCoRe-Anwendung
Erweiterung bestehender Datentyps Erstellen eines eigenen Datentyps Fazit und Diskussion

3 Einführung Dokumentenmodell des MyCoRe-Sample XML-Strukturen
MyCoRe-Datentypen und Dublin Core

4 Dokumentenmodell des MyCoRe-Sample (1)

5 Dokumentenmodell des MyCoRe-Sample (2)
<xml> Klassifikation 0..* 0..* LegalEntity Dokument Derivat 1..* 0..* 1..1 0..* <xml> <xml> <xml>

6 MyCoRe-Sample XML-Datenstruktur eines Dokumentes
<mycoreobject ID = "MyCoReDemoDC_document_1" label = "doc1" > <structure/> <metadata xml:lang = "de" > <titles class = "MCRMetaLangText" textsearch = "true" > <title xml:lang = "de" type = "Haupttitel" > Das ist der Titel des Buches. </title> <title xml:lang = "en" type = "Maintitle" > This is the title of the book. </title> </titles> [ ] </metadata> <service> </service> </mycoreobject>

7 Sample-Datenmodell und Dublin Core (Auszug)
Bezeichner Typ bzw. zugeh. Javaklasse DC Entsprechung Title MCRMetaLangText DC.TITLE Creator MCRMetaLink DC.CREATOR Subject MCRMetaClass DC.SUBJECT Date MCRMetaDate DC.DATE Address MCRMetaAddress - Corporation MCRMetaCorporation

8 Meine erste eigene MyCoRe-Anwendung
Die ersten MyCoRe-unabhängigen Schritte: wie sieht das Datenmodell aus (z.B. ER-Diagramm) Datentypen (String, Link, Integer, etc.) Abbildung auf MyCoRe (siehe „Papyri-Tabelle“)

9 Konfig.-datei für XML-Schema
Überblick MyCoRe-Anwendung Konfig.-datei für XML-Schema Templates und Types erstellen Javaklasse implementieren mit MyCoRe-Datentypen - - mit erweiterten MyCoRe- Datentypen mit eigenen Datentypen

10 XML-Schema und MyCoRe für jede Entität wird ein XML Schema erstellt (z.B. MyCoReDemoDC_Document.xsd für document) ist die Grammatik für die XML-Dateien gewährleistet, dass keine syntaktisch falschen Daten im MyCoRe-Backend abgelegt werden wird mit Hilfe von XML Stylesheets generiert

11 Konfigurationsdatei der (MyCoReDemoDC_Document.xml)
Schema erzeugen mycore.properties MCR.persistence_config_document = MyCoReDemoDC_Document.xml build.xml <param name="metadata.schema" value="${MCR.persistence_config_document}" Konfigurationsdatei der MetaMetadatenTypen (MyCoReDemoDC_Document.xml) Beschreiben die Struktur (enthält Datentyp, Länge, etc.) der Metadaten d. Anwendung build.sh schema MCRMetadataSchema.xsl Regelwerk zur Erstellung der Schemadatei für Metadaten MCRMetadataCoreTemplates.xsl MCRMetadataCoreTypes.xsl XML-Schemadatei Grammatik für die konkreten XML-Dateien MCRMetadataTemplates.xsl MCRMetadataTypes.xsl Für eigene Anwendung target match = mcrmetamylangtext

12 Dissertationen der Staatsbibliothek in Hamburg
Klassifikation 0..* 0..* LegalEntity Dissertation Derivat 1..* 0..* 1..1 0..* Dokumentenart Verfasser Originaltitel [...]

13 „Papyri-Tabelle“ des Datenmodells
Feld Bezeichnung für XML-Schema Pflicht Wdh. Suche Metadatentyp Dokumentart DC.Type Ja Nein Param. MCRMetaClass Originaltitel der Arbeit DC.Title Param./ Freitext MCRMetaLangText Übersetzter Titel der Arbeit DC.Title.Translated Verfasser DC.Creator. PersonalName MCRMetaPerson -> Legal Entity [Auszug]

14 Konfigurationsdatei erstellen
<! DC Titel --> <!-- Originaltitel der Arbeit --> <element name="titles" minOccurs='1' maxOccurs='1‚ parasearch="true" textsearch="true"> <label xml:lang="de">Titel</label> <label xml:lang="en">title</label> <mcrmetalangtext name="title" class="MCRMetaLangText" minOccurs='1' maxOccurs='unbounded' datatype="string" length="250" /> </element> <! DC Creator --> <!-- Verfasser --> <element name="creators" minOccurs='1' maxOccurs='1' <label xml:lang="de">Verfasser</label> <label xml:lang="en">creator</label> <mcrmetalinkid name="creator" class="MCRMetaLinkID" minOccurs='1' maxOccurs='unbounded' datatype="link" />

15 Anpassen der Skripte In config/mycore.properties die entsprechenden Variablen an neue Dateinamen anpassen # MCR.persistence_config_document = MyCoReDemoDC_Document.xml MCR.persistence_config_dissertation = MyCoReStabiDC_Dissertation.xml Variablen finden sich in build.xml wieder <!-- Translate *.xml to *.xsd using MCRMetadataSchema.xsl --> <antcall target="do.transform"> <param name="metadata.schema„ value="${MCR.persistence_config_dissertation}" /> </antcall> Aufruf von bin/build.sh schema

16 Generierte Schemadatei
<xsd:element maxOccurs="1" minOccurs="1" name="titles"> <xsd:complexType> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="1" name="title"> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute type="mcrdefaulttype" use="optional" name="type"/> <xsd:attribute type="xsd:integer" use="optional„ name="inherited"/> <xsd:attribute ref="xml:lang"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> </xsd:sequence> <xsd:attribute fixed="MCRMetaLangText" use="required" type="xsd:string" name="class"/> <xsd:attribute use="optional" type="xsd:boolean" name="heritable"/> <xsd:attribute use="optional" type="xsd:boolean" name="notinherit"/> <xsd:attribute use="optional" type="xsd:boolean" name="parasearch"/> <xsd:attribute fixed="true" use="required" type="xsd:boolean" name="textsearch"/>

17 Konfig.-datei für XML-Schema
Überblick MyCoRe-Anwendung Konfig.-datei für XML-Schema Templates und Types erstellen Javaklasse implementieren mit MyCoRe-Datentypen - - mit erweiterten MyCoRe- Datentypen mit eigenen Datentypen

18 Was ist ein erweiterter Datentyp?
MCRMetaLinkID type href title label from to MCRHUPMetaLinkID HUP benötigt Attribut für den Hauptautor <xsd:attribute name="main" type="xsd:int" use="optional"/>

19 Bestehenden Datentyp erweitern
Element um neues Attribut ergänzen dazu MCRMetadataTemplates.xsl um ein neues Element erweitert werden (Kopie des zu erweiternden Elementes aus MCRMetadataCoreTemplates.xsl + Ergänzung) Implementation einer neuen Javaklassen IST nötig! Allgemeine Implementation des Datentypes org.mycore.datamodel.MCRMetaMyAppLangText.java final public class MCRMetaMyAppLangText extends MCRMetaLangText Spezielle Klassen für das Backend (z.B. CM8) org.mycore.backend.MCRCM8MetaMyAppLangText.java

20 Konfig.-datei für XML-Schema
Überblick MyCoRe-Anwendung Konfig.-datei für XML-Schema Templates und Types erstellen Javaklasse implementieren mit MyCoRe-Datentypen - - mit erweiterten MyCoRe- Datentypen mit eigenen Datentypen

21 Aus XML wird Java (1) <element name="titles">
<mcrmetalangtext name="title" class="MCRMetaLangText" datatype="string" length="250" /> </element>

22 Aus XML wird Java (2) > load object from file content/documents/demo_dc_doc_01.xml Parsen der XML-Datei und prüfen gegen das Schema Erstellen eines JDOM-Objektes Extrahieren der Metadaten: getMetadata():MCRObjectMetadata Enthält Liste der TAGs mit deren Attributen TAG (z.B. titles) Array of MCRMetaElement SUBTAG (z.B. title) MCRMetaInterface MCRMetaElement getElement():MCRMetaInterface Wird an konkrete Implementation weitergeleitet z.B.: MCRMetaLangText

23 Wozu das Ganze? JDOM-Objekt aus XML erstellen
Extrahieren der einzelnen Elemente (TAGs) und deren Attribute durch die Javaklassen Hinzufügen oder umwandeln versch. Parameter (z.B. default_lang) Verarbeitung ist abhängig vom verwendeten Store (CM8, eXist, etc.) Anzugeben in mycore.properties Erweitertes und Angepasstes JDOM- Objekt wird im Backend gespeichert

24 Konfig.-datei für XML-Schema
Fazit MyCoRe-Anwendung Konfig.-datei für XML-Schema Templates und Types erstellen Javaklasse implementieren mit MyCoRe-Datentypen - - mit erweiterten MyCoRe- Datentypen Kopieren und ergänzen bestehender Datentypen Erbt von existierendem MyCoRe-Datentyp mit eigenen Datentypen Schema und XML-Datentypen neu definieren Neue Klasse erbt von MCRMetaDefault, implementiert MRCMeta Interface

25 Quellen Dokumentation zum Papyri-Projekt documentations/Papyri_Konzept.pdf?rev=1.6 [Zugriff: ] MyCoRe-Users Guide [Zugriff: ]


Herunterladen ppt "MyCoRe-Anwendung selbst gebaut"

Ähnliche Präsentationen


Google-Anzeigen