In diesem Abschnitt wird der Syntax der Definitionsdatei für eigene Metadatenmodelle nach dem MyCoRe-Datamodell-Prinzip vorgestellt. Weiterhin folgt eine Beschreibung der Integration in den Maven-Build-Prozess.
In der Definition des eigenen Datenmodells müssen nur noch Teile definiert werden, welche sich im Tag
metadata
befinden. Alle anderen Teile werden automatisch gebaut. Die Definition geht weiterhin davon aus, dass die
äußeren Tag-Namen entsprechend mit
def.
erweiterbar sind.
Um auch alte Datenmodelle über die neue Datenmodelldefinition beschreiben zu können, wurde im Element
element
das Attribut
wrapper
eingeführt. Für ältere Definitionen des Datenmodell, welche nicht das Attribut
required
nutzen,
ist weiterhin folgende implizite Annahme gültig und wird umgesetzt:
minOccurs="0"
wird dieses für das äußere Tag gesetzt, das innere Tag hat kein
minOccurs
und steht damit per default auf 1.
Weiterhin gilt:
maxOccurs
wird immer im äußeren Tag nicht angegeben und steht per default auf 1.
minOccurs
nicht angegeben, wird es im inneren Tag auf 1 per default gesetzt.
required="false"
angegeben, wird
minOccurs
im äußeren Tag auf 0 gesetzt.
maxOccurs
nicht angegeben wird für das innere Tag implizit per default 1 angenommen.
required
-Attribut sollte zur besseren Lesbarkeit der Konfiguration mit angegben werden.
|
|
name
in der Objekt beschreibenden Zeile ist der gewünschte MyCoRe-ObjectID-Typ.
isChild
spezifiziert, ob das Objekt ein Kind-Objekt ist.
isParent
spezifiziert, ob das Objekt ein Eltern-Objekt ist.
hasDerivates
spezifiziert, ob das Objekt Derivate-Objekte haben darf.
name
im Element beschreibt den Tagnamen des inneren Elementes. Der Äußere wird daraufhin gebildet als
def.{name}
.
required
legt fest, ob das Element ein Pflichtfeld ist. Mögliche Werte sind true
und false
. Ist nichts angegeben,
wird true
angenommen bzw. es wird
minOcurrs
ausgewertet.
minOccurs
beschreibt die minimale Anzahl der Wiederholungen des inneren Tags. Ist nichts angegeben, wird 1 angenommen.
maxOccurs
beschreibt die maximale Anzahl der Wiederholungen des inneren Tags. Ist nichts angegeben, wird 1 angenommen.
element
kann um das Attribut
wrapper
erweitert werden, wenn das äußere Tag nicht den Namen
def.{name}
haben soll.
element
kann um das Attribut
heritable
(true
|false
)
erweitert werden, wenn alle inneren Tags vererbbar sein sollen und in den Daten das
heritable
Attribut auf
true
stehen soll. Ist nichts angegeben, wird false
angenommen.
element
kann um das Attribut
notinherited
(true
|false
)
erweitert werden, wenn die inneren Tags eines übergeordneten Objekts nicht geerbt werden dürfen und in den Daten das
notinherited
Attribut auf
true
stehen soll. Ist nichts angegeben, wird false
angenommen.
classification
bescheibt über das Attribut
id
den Klassifikationsnamen.
target
gibt über das Attribut
type
den MCRObjectType des Link-Ziels an.
type -Attribute | MyCoRe-Datenmodellklasse |
---|---|
text | MCRMetaLangText |
datetext | MCRMetaDateLangText |
boolean | MCRMetaBoolean |
classification | MCRMetaClassification |
link | MCRMetaLinkID |
href | MCRMetaLink |
derlink | MCRMetaDerivateLink |
date | MCRMetaISO8601Date |
number | MCRMetaNumber |
xml | MCRMetaXML |
historydate | MCRMetaHistoryDate |
address | MCRMetaAdress |
personname | MCRMetaPersonName |
Um eine XML-Schema-Datei der eigenen Metadatendefinition, innerhalb eines zu bauenden *.jar-Files während des
Build-Prozesses, zu bauen und mit zu integrieren, muss die Datenmodell-Datei innerhalb des Maven-Modules unter
{maven-modul}/src/main/datamodel/def/{xyz}.xml
stehen.
|
|
Weiterführende Informationen: