MyCoRe-Anwendung selbst gebaut

Slides:



Advertisements
Ähnliche Präsentationen
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Advertisements

Abstrakte Klassen HS Merseburg (FH) WS 06/07.
FH-Hof Einbindung von JavaScript Anweisungen
DOM (Document Object Model)
Interface bzw. Schnittstelle anschaulich: Hüllenklasse
XINDICE The Apache XML Project Name: Jacqueline Langhorst
XHTML 1.1 C. Nimz Abstrakte Module XHTML 1.1 C. Nimz Was ist ein abstraktes Modul? Definition eines XHTML-Moduls in spezieller leichter.
Speicherung von XML- Dokumenten als Large Objects.
Christian Kästner Modellgetriebene Softwareentwicklung Eclipse Modelling Framework.
Hauptseminar XML-Technologie: Resource Description Framework (RDF) Michael Kranz Betreuer: Roland Haratsch.
Programmieren mit JAVA
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
DVG Klassen und Objekte
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Abschlusspräsentation Semesteraufgabe 2007
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Informatik 1 Letzte Übung.
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Tutorium PG Verbesserung Blatt 5 Beim instanziieren eines Fahrrades muss es möglich sein, alle benötigten Attribute dem Konstruktor zu übergeben.
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Dissertationsserver mit miless / MyCoRe: Workflow und Funktionalität
Dublin Core IT-Zertifikat Daten- und Metadatenstandards.
DUBLIN CORE METADATA INITIATIV
Java-Kurs - 3. Übung Hausaufgabe Arrays For-Schleifen.
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Java-Kurs Übung Besprechung der Hausaufgabe
Greenstone. Theoretischer Teil Entstehung: Entwickelt vom New Zealand Digital Library Project an der Universität von Waikato Kooperation mit der UNESCO.
Enterprise-IT-Praktikum Hibernate-Einführung Institut für Telematik Universität zu Lübeck Wintersmester 2012/13 Dennis Boldt David Gregorczyk.
Objektorientierte Programmierung (OOP)
Internetseiten prima selbstgemacht. Überblick Meta-Tags –Warum Meta-Tags? Funktionsweise, Anwendung –Katalogisierung nach Dublin Core –Zeichensätze.
Vererbung. Klassen - Vererbung  Eine Klasse kann von einer Basisklasse abgeleitet werden  Die abgeleitete Klasse erbt die Eigenschaften und Methoden.
© Raphael Volz 2001 Slide 1 Zope Grundlagen Seminar – Praktikum Knowledge Portals Raphael Volz.
Key-Value Paare (KVP) - Metadaten für Kanäle speichern und nach MDF4 exportieren PM (V1.0)
Tutorium Software-Engineering SS14 Florian Manghofer.
Anforderungen an die neue Datenstruktur
Anforderungen an die neue Datenstruktur
Schnittstellen.
Validierung vom XML mit XML Schema
Alles wird gut! Suche im MyCoRe Jens Kupferschmidt
AURIS-MM Spezifikation
Raphael Fischer Informatik II - Übung 06 Raphael Fischer
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
Titellayout Untertitel.
Methodische Grundlagen des Software-Engineering
Arrays in Java Ein Array ist eine Variable, die aus einer An-zahl von Elementen des gleichen Datentyps besteht, die aufeinanderfolgend im Speicher liegen.
1. Die rekursive Datenstruktur Liste 1.3 Rekursive Funktionen
Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein.
1. Die rekursive Datenstruktur Liste 1
Titel mit Bildlayout Untertitel.
Datenstrukturen und Softwareentwicklung
Übersicht und Benutzung von Sphinx
9. Vererbung und Polymorphie
Titellayout Untertitel.
Titellayout Untertitel.
Implementieren von Klassen
Wissenschaftliches Projekt
1. Die rekursive Datenstruktur Liste 1.6 Die Datenstruktur Stapel
Titellayout Untertitel.
Objektorientierte Programmierung
Informatik Softwareentwicklung – 4.3 Entwurfsmuster
Titellayout Untertitel.
Titellayout Untertitel.
Titellayout Untertitel.
Titellayout Untertitel.
Titellayout Untertitel.
 Präsentation transkript:

MyCoRe-Anwendung selbst gebaut von Johannes Bühler und Kathleen Krebs kathleen.krebs@rrz.uni-hamburg.de johannes.buehler@uni-greifswald.de MyCoRe Workshop am 19.02.2004 Hamburg

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

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

Dokumentenmodell des MyCoRe-Sample (1)

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

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>

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

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“)

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   

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

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

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

„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]

Konfigurationsdatei erstellen <!-- 02 - 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> <!-- 03 - 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" />

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

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"/>

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   

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"/>

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

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   

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

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

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

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 

Quellen Dokumentation zum Papyri-Projekt http://www.mycore.de/repository/cgi-bin/viewcvs.cgi/~checkout~/papyri/ documentations/Papyri_Konzept.pdf?rev=1.6 [Zugriff: 19.02.2004] MyCoRe-Users Guide http://www.mycore.de/repository/documentation/mycore/pdf/UserGuide.pdf [Zugriff: 19.02.2004]