Grundlegendes zum Baustein „Data Dictionary“

Das Datenwörterbuch ist ein Katalog von Datenelementen und ihren Beschreibungen, die in einer Geschäftsdomäne mithilfe eines Geschäftsvokabulars verwendet werden. Das Datenwörterbuch enthält außerdem Metadaten zum Verwalten des Datenmodells, um Beschreibungen von Datenstrukturen und ihren dazugehörigen Attributen bereitzustellen. In der Regel müssen Geschäftsbenutzer keine Kenntnisse über Metadatendarstellungen wie XSD (XML-Schema), FML (Adobe Anwendungsmodelliersprache), Java-Klassen und ActionScript-Klassen, die von Entwicklern verwendet werden, haben. Sie müssen allerdings in der Regel Zugriff auf diese Datenstrukturen und Attribute haben, um Lösungen erstellen zu können. Der Baustein „Data Dictionary“ stellt eine unabhängige Darstellung von Metadaten und Back-End-Integration bereit. Geschäftsbenutzer, ohne Kenntnisse über Back-End-Systemintegration können diesen Baustein zum Erstellen und Verwenden von Modellen auf Lösungsebene nutzen. In LiveCycle können Geschäftsbenutzer Bedingungen ausdrücken oder Daten in Workflows der Lösung mithilfe des Datenwörterbuchs verwenden.

Tools

Zum Entwickeln einer Lösung, bei der ein Datenwörterbuch verwendet wird, werden für gewöhnlich die folgenden Tools eingesetzt:

  1. Datenwörterbücher. Die Benutzeroberfläche, die das Durchsuchen Erstellen, Bearbeiten und Exportieren von Datenwörterbüchern ermöglicht. Auf sie kann über die Seite „Elemente verwalten“ im Portal im Admin-Bereich zugegriffen werden.

  2. Datenwörterbucheditor. Die Benutzeroberfläche, auf der das Datenwörterbuch, das mit diesem Baustein bereitgestellt wird, erstellt und verwaltet werden kann.

    • Aktiviert zum Erstellen eines Datenwörterbuchs den Import des domänenspezifischen XSD-Schemas.

    • Ermöglicht das Hinzufügen/Löschen von Datenwörterbuchelementen (DDEs) über ein/aus einem Datenwörterbuch.

    • Ermöglicht die Zuordnung von Attributen auf Datenwörterbuchebene.

    • Ermöglicht die Zuordnung von Attributen auf DDE-Ebene.

    • Ermöglicht das Exportieren eines Datenwörterbuchs in mit Anmerkungen versehene FML-Dateien.

    • Ermöglicht das Importieren einer mit Anmerkungen versehenen FML-Datei, um ein Datenwörterbuch zu erstellen.

    • Ermöglicht die Erstellung von XML-Beispieldaten für ein Datenwörterbuch. Die XML-Beispieldatei kann ohne Back-End-Support zum schnellen Aktivieren der Nutzungsszenarien verwendet werden, die von der Datenwörterbuchinstanz abhängig sind.

  3. Java Development Tools:

    • IDE zum Erstellen von Java/Spring-Projekten

    • ANT-Erstellungstools

  4. LiveCycle-Tools

    • Adobe® LiveCycle® Designer

    • Adobe® Flash® Builder™

Weitere Informationen über die Dienste des Bausteins „Data Dictionary“ finden Sie in diesen Ressourcen:

Datenwörterbücher

Im Bereich „Datenwörterbücher“ können Sie Datenwörterbücher erstellen und verwalten. In diesem Bereich ist es möglich, bereits vorhandene Datenwörterbücher zu erstellen oder zu bearbeiten, indem Sie den Datenwörterbucheditor durch die Option „Neu“ oder „Bearbeiten“ starten.

Grafik in Originalgröße anzeigen
Bereich „Datenwörterbücher“

Datenwörterbucheditor

Der Datenwörterbucheditor wird zum Verwalten von Datenwörterbüchern und den zugehörigen Elementen verwendet. Ein Middleware-Entwickler kann Metadateneigenschaften sowohl für das Datenwörterbuch als auch dessen Elemente mithilfe des Datenwörterbucheditors erstellen, ändern und löschen.

Der Datenwörterbucheditor erzwingt Überprüfungen beim Erstellen oder Aktualisieren eines Datenwörterbuchs. Weitere Informationen zu Regeln zum Erstellen von DDEs für ein gültiges Schema finden Sie unter Elemente eines Datenwörterbuchs.

Grafik in Originalgröße anzeigen
Elemente eines Datenwörterbuchs

Der Datenwörterbucheditor ermöglicht den Eigentümern eines Geschäftsprozesses Datenwörterbücher zu erstellen, indem diese aus einem gültigen XML-Schema oder einem FML-Modell importiert werden. Eigentümer von Geschäftsprozessen können ihre Datenwörterbücher auch in eine FML exportieren oder XML-Beispieldaten aus dem Datenwörterbucheditor generieren.

Wenn der Middleware-Entwickler versucht, ein Schema mit mehreren Elementen der obersten Ebene zu importieren, wird er vom Datenwörterbucheditor aufgefordert, ein einzelnes Element der obersten Ebene zu importieren. Der Entwickler wählt eines der Elemente der obersten Ebene für die Erstellung einer Baumstruktur des Datenwörterbuchs aus. Das Datenwörterbuch stellt eine zusammenhängende Instanz von Daten für einen gegebenen Kontext anstatt eines Satzes von unzusammenhängenden Daten dar. Eine XSD mit vielen Elementen stellt mehrere Baumstrukturen von Elementen dar, wobei jede Struktur ein unabhängiger Datensatz ist. Ein Datenwörterbuch wird über eine derartige Baumstruktur erstellt. Dabei ist das Importieren von mit Anmerkungen versehener FML-Dateien mit mehreren Entitäten der obersten Ebene nicht möglich. Geben Sie den Namen, Verweisnamen und Elementtyp für ein Datenwörterbuch/DDE ein, da dies erforderliche Parameter sind. Ein übergeordnetes DDE (Composite) darf nicht zwei untergeordnete DDE mit demselben Namen haben.

Überprüfungen des Datenwörterbucheditors

Der Datenwörterbucheditor erzwingt folgende Überprüfungen beim Erstellen oder Aktualisieren eines Datenwörterbuchs.

  • Nur der zusammengesetzte Typ ist als DDE der obersten Ebene in einem Datenwörterbuch zulässig.

  • Composite- und Collection-Elemente sind auf Blattebene nicht zulässig. Nur Primitive-Elemente (String, Date, Number, Boolean) sind auf Blattebene zulässig. Diese Überprüfung stellt sicher, dass es keine Composite- oder Collection-Elemente ohne untergeordnetes DDE gibt.

  • Beim Importieren von XSD-Dateien zum Erstellen eines Datenwörterbuchs werden Sie vom Datenwörterbucheditor aufgefordert, ein Element der obersten Ebene einzugeben, wenn mehrere dieser Elemente vorhanden sind.

  • Beim Importieren eines generischen FML-/LiveCycle-Datenmodells zum Erstellen eines Datenwörterbuchs werden Sie vom Datenwörterbucheditor aufgefordert, ein Element der obersten Ebene einzugeben, wenn mehrere dieser Elemente vorhanden sind.

  • Dabei ist das Importieren von mit Anmerkungen versehener FML-Dateien mit mehreren Entitäten der obersten Ebene nicht möglich.

  • Der Name ist der einzige erforderliche Parameter für ein Datenwörterbuch.

  • Ein übergeordnetes DDE (Composite) darf nicht zwei untergeordnete DDE mit demselben Namen haben.

  • Stellt sicher, dass ein DDE nur als „berechnet“ gekennzeichnet ist, wenn es sich nicht um einen erforderlichen Parameter handelt. Ein erforderliches Element kann nicht berechnet werden und ein berechnetes Element kann nicht erforderlich sein. Außerdem dürfen Collection- und Composite-Elemente keine berechneten Elemente sein.

  • Stellt sicher, dass ein DDE nur als „erforderlich“ gekennzeichnet ist, wenn es nicht berechnet wird. Außerdem wird sichergestellt, dass es sich nicht um das „collectionElement“ handelt, das den Typ von Collection (die einzigen untergeordneten Elemente eines Collection-Elements) angibt.

  • Leere oder duplizierte Schlüssel sind nicht in den extendedProperties für ein Datenwörterbuch oder ein DDE zulässig.

  • Verwenden Sie keinen Doppelpunkt (:) oder senkrechten Strich (|) im Schlüssel oder Wert einer erweiterten Eigenschaft. Es gibt keine Überprüfung für die Verwendung dieser nicht zulässigen Zeichen.

Überprüfungen, die auf Datenwörterbuchebene angewendet werden
  • Der Name des Datenwörterbuchs darf nicht null sein.

  • Der Name des Datenwörterbuchs darf nur alphanumerische Zeichen enthalten.

  • Die Liste der untergeordneten Elemente im Datenwörterbuch darf nicht null oder leer sein.

  • Das Datenwörterbuch darf nicht mehr als ein Element der obersten Ebene enthalten.

  • Nur der Composite-Typ ist als DDE der obersten Ebene in einem Datenwörterbuch zulässig.

Überprüfungen, die auf Datenwörterbuchelementebene angewendet werden
  • Alle Namen des DDE dürfen nicht null sein.

  • Alle DDEs müssen über einen Elementtyp „nicht null“ verfügen.

  • Alle Verweisnamen des DDE dürfen nicht null sein.

  • Alle Verweisnamen des DDE müssen eindeutig sein.

  • Alle DDE-Verweise dürfen nur alphanumerische Zeichen und „_“ enthalten.

  • Alle DDE-Anzeigenamen dürfen nur alphanumerische Zeichen und „_“ enthalten.

  • Composite- und Collection-Elemente sind auf Blattebene nicht zulässig. Nur Primitive-Elemente (String, Date, Number, Boolean) sind auf Blattebene zulässig. Diese Überprüfung stellt sicher, dass es keine Composite- oder Collection-Elemente ohne untergeordnetes DDE gibt.

  • Ein übergeordnetes Composite-DDE darf nicht zwei untergeordnete Elemente mit demselben Namen enthalten.

  • Der ENUM-Subtyp wird nur für String- und Number-Elemente verwendet.

  • Collection- und Composite-Elemente können nicht berechnet werden.

  • Ein DDE darf nicht gleichzeitig berechnet und erforderlich sein.

  • Berechnete DDEs müssen einen gültigen Ausdruck enthalten.

  • Berechnete DDEs dürfen keine XML-Bindung haben.

  • Ein DDE, das den Typ für ein Collection-DDE angibt, kann nicht berechnet oder erforderlich sein.

  • DDEs des Subtyps ENUM dürfen keine null- oder leeren Wertesätze enthalten.

  • Die XML-Bindung eines Collection-DDE darf nicht einem Attribut zugeordnet sein.

  • Die XML-Bindungssysntax muss gültig sein, z. B. darf nur ein @-Zeichen erscheinen. Dieses Zeichen ist nur zulässig, wenn danach ein Attributname usw. steht.

Datenwörterbucheditor-Definitionsbereich

Der Datenwörterbucheditor-Definitionsbereich ist die Benutzeroberfläche zum Erstellen von DDEs, die in einer Baumstruktur angezeigt werden. Im Bereich Datenwörterbuchstruktur wird die Liste der DDEs angezeigt. Im Bereich Feld- und Variablenliste wird die Liste der Eigenschaften des ausgewählten DDE angezeigt. Ein Datenelement kann auch eingegeben werden, indem mit der rechten Maustaste auf das Element geklickt wird.

Grafik in Originalgröße anzeigen
Bereich „Datenelemente“

Dienste des Datenwörterbuchs

Die Dienste des Bausteins „Data Dictionary“ werden als OSGi-Dienste bereitgestellt. Im Folgenden ist die Liste mit Diensten aufgeführt, die im Baustein „Data Dictionary“ bereitgestellt sind:

Name

Beschreibung

DataDictonaryRegistryService

Bietet Vorgänge zum Erstellen, Abrufen, Aktualisieren und Löschen (CRUD-Vorgänge) für ein Datenwörterbuch

DataDictionaryUtilService

Bietet Datenwörterbuchdienstprogrammfunktionen für Folgendes:

  • Importieren einer XSD zum Erstellen eines Datenwörterbuchs

  • Importieren/Exportieren eines Datenwörterbuchs als mit Anmerkungen versehene FML

  • Importieren einer generischen FML (LiveCycle-Datenmodell) zum Erstellen eines Datenwörterbuchs

  • Erstellen eines Datenwörterbuchobjekts aus XSD/FML. Das Datenwörterbuchobjekt kann dann über die APIs in DataDictionaryRegistryService gespeichert werden.

  • Erstellen einer XML-Beispieldatei

  • Serialisieren einer DDI in XML

  • Erstellen einer DDI aus XML/Java-Objekt

Standardendpunkte

Die Dienste des Bausteins „Data Dictionary“ werden standardmäßig über Flex-Remoting und Spring-HTTP bereitgestellt.

Abhängigkeit des Bausteins „Data Dictionary“ im Expression Evaluator-Dienst (EXM)

Der Expression Evaluator-Dienst wird als Baustein bereitgestellt. Der Baustein „Data Dictionary“ ist vom EXM, der eine austauschbare Komponente ist, abhängig. Der Expression Evaluator unterstützt JSP-EL-Auswertung. Der Expression Evaluator-Dienst wird zur Auswertung berechneter DDEs für das Datenwörterbuch verwendet. Im Folgenden werden die DDE-Auswertungsfunktionen aufgelistet, die vom Baustein „Data Dictionary“ mithilfe des EXM unterstützt werden.

  1. Ein DDE kann als „berechnet“ gekennzeichnet werden und der zugehörige JSP-EL-Ausdruck kann über die Benutzeroberfläche des Datenwörterbucheditors bereitgestellt werden.

  2. Der Berechnungsausdruck für ein DDE kann auf den Werten anderer DDEs basieren. Beispielsweise kann ein DDE mit dem Namen „fullName“ einen Ausdruck ${firstName}$ {lastName} beinhalten, der den vollständigen Namen als Verkettung von Vor- und Nachnamen auswertet.

    Hinweis: „firstName“ und „lastName“ sind die Verweisnamen der jeweiligen DDEs.
  3. Der Baustein „Data Dictionary“ unterstützt keine Verschachtelung von berechneten Ausdrücken. Ein Operand im Ausdruck kann kein weiterer berechneter Ausdruck sein. Die berechnete DDE-Auswertung wird bei der Erstellung einer DDI serverseitig durchgeführt.

  4. Die berechneten DDEs werden als „nicht erforderlich“ berechnet, d. h., dass Null-Werte in einer DDI zugelassen sind.

Workflow der Datenwörterbuchlaufzeit

Die Datenwörterbuchlaufzeit ist für die Rückgabe der Datenwörterbuchinstanzen (DDI), die zu einem Datenwörterbuch gehören, verantwortlich. Die Datenwörterbuchlaufzeit unterstützt nur die Erstellung einer DDI aus XML-Eingabedaten. Die Lösung verfügt über eine einleitende XML-Eingabedatei zur Ausführung ihrer Prozesse. Beispiel: Ein Brieferstellungsprozess, der durch eine XML-Eingabedatei mit allen relevanten Details ausgelöst wird. Die XML-Eingabedatei muss das Schema der XSD, aus dem ein Datenwörterbuch erstellt wurde, bestätigen.

Wenn ein Datenwörterbuch manuell erstellt wurde, gibt es kein XSD-Standardschema. Wenn ein Datenwörterbuch aus einem XSD-Schema erstellt wird und der Import geändert wurde, kann die Struktur mit dem anfänglichen XSD-Schema entkoppelt werden. Um diese Fehler zu vermeiden, stellt der Baustein „Data Dictionary“ ein Tool zum Generieren einer XML-Beispieldatei bereit, die dem Datenwörterbuch entspricht. Das steuernde System stellt sicher, dass XML-Eingabedaten dem System in einem mit der XML-Beispieldatei konsistenten Format bereitgestellt werden. Die Datenwörterbuchlaufzeit erstellt eine DDI aus der XML-Eingabedatei basierend auf einem gegebenen Datenwörterbuchverweis. Die DDI kann dann zum Eingeben der Werte in die Anwendung verwendet werden. Das Zurückschreiben von Datenwörterbuchinstanzen in das System wird nicht unterstützt. Allerdings kann eine Datenwörterbuchinstanz serialisiert werden und an die Workflows übergeben werden.

End-to-End-Ablaufdefinition

Das folgende Diagramm zeigt die End-to-End-Datenwörterbuchdefinition. Es beinhaltet den Integrationsprozess einschließlich der involvierten Benutzer, verwendeten Tools, Metadatenspeicherung und Zugriff zur Laufzeit.

Grafik in Originalgröße anzeigen
Datenwörterbuchdefinition
  1. Der Eigentümer des Geschäftsprozesses kann zur manuellen Erstellung eines Datenwörterbuchs den Datenwörterbucheditor verwenden. Weitere Informationen zur Erstellung des Datenwörterbuchs mit dem Datenwörterbucheditor finden Sie unter Datenwörterbuch erstellen.

  2. Der Eigentümer des Geschäftsprozesses kann den Datenwörterbucheditor auch verwenden, um ein Datenwörterbuch durch Importieren eines Schemas zu erstellen.

  3. Beim Speichern des Datenwörterbuchs wird die Datenwörterbuchmetadatendefinition im Back-End, d. h. im Inhalts-Repository, gespeichert.

  4. Der Eigentümer des Geschäftsprozesses kann das Datenwörterbuch mithilfe des Datenwörterbucheditors in Form eines mit Anmerkungen versehenen FML-Modells exportieren. Dieses mit Anmerkungen versehene Modell kann dann importiert werden, um ein Datenwörterbuch zu erstellen.

  5. Ein Entwickler kann die Domäne-XSD zum Erstellen des Datenwörterbuchs und der Artefakte wie Formulare für die Anwendung verwenden. Designer kann zum Importieren einer XSD und zum Erstellen von relevanten Formularen daraus verwendet werden.

  6. Der Lösungsentwickler erstellt die Lösung hinsichtlich der Artefakte wie Formulare, die von der Anwendung erforderlich sind, entsprechende Java-Klassen, Flex-Komponenten usw.

  7. Der Lösungsentwickler führt sie in einem Archiv zusammen, das bereitgestellt werden kann. Die Lösung wird dann bereitgestellt. Die Lösung kann mithilfe der Funktion zum Generieren von XML-Daten des Beispieldatenwörterbuchs, die über den Datenwörterbucheditor bereitgestellt wird, getestet werden.

  8. Die bereitgestellte Kundenlösung greift auf die Datenwörterbuchmetadaten und -laufzeit zu, um die Abläufe durchzuführen. Beispielsweise greift eine Dokumentcomposeranwendung auf ein Briefdatenwörterbuch zu, um die erforderlichen Felder zu rendern.

  9. Die Datenwörterbuchlaufzeit greift auf die Datenwörterbuchmetadaten zu, um die Datenwörterbuchinstanzen (DDI) zu erstellen. Weitere Informationen zur Datenwörterbuchlaufzeit finden Sie unter Workflow der Datenwörterbuchlaufzeit.

  10. Die Datenwörterbuchlaufzeit integriert nicht direkt mit älteren Back-End-Systemen.

Datenwörterbuchelemente dem XML-Schema zuordnen

Der Baustein „Data Dictionary“ lässt die Erstellung von Datenwörterbüchern aus einem XML-Schema oder direkt aus der Datenwörterbuch-Benutzeroberfläche zu. Alle Datenwörterbuchelemente innerhalb eines Datenwörterbuchs verfügen über ein XML-Bindungsfeld, um die Bindung des DDE an ein Element im XML-Schema zu speichern. Die Bindung in jedem DDE ist relativ zum übergeordneten DDE.

Im Folgenden sind Beispielmodelle und Codebeispiele aufgelistet, die Implementierungsdetails für den Baustein „Data Dictionary“ zeigen.

Simple (Primitive-)Elemente zuordnen

Ein Primitive-DDE stellt ein Feld oder ein Attribut dar, das atomisch ist. Primitive-DDEs, die außerhalb eines komplexen Typs (Composite-DDE) definiert werden, oder wiederholte Elemente (Collection-DDE) können an einem beliebigen Speicherort im XML-Schema gespeichert werden. Der Speicherort der Daten, die einem Primitive-DDE entsprechen, hängt nicht von der Zuordnung seines übergeordneten DDE ab. Ein Primitive-DDE verwendet Zuordnungsinformationen aus dem XML-Bindungsfeld, um seinen Wert zu bestimmen, und die Zuordnungen können eins der Folgenden sein:

  • ein Attribut

  • ein Element

  • ein Textkontext

  • nichts (ein ignoriertes DDE)

Das nachstehende Beispiel zeigt ein einfaches Schema.

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
  <xs:element name='age' type='integer'/> 
  <xs:element name='price' type='decimal'/> 
</xs:schema>

Datenwörterbuchelement

XML-Standardbindung

age

/age

price

/price

Composite-Elemente zuordnen

Bindung wird nicht für Composite-Elemente unterstützt. Wenn Bindung bereitgestellt wird, wird sie ignoriert. Die Bindung für alle untergeordneten DDEs des Primitive-Typs muss absolut sein. Die Zulassung absoluter Zuordnung für untergeordnete Elemente eines Composite-DDE bietet mehr Flexibilität hinsichtlich derXPath-Bindung. Die Zuordnung eines Composite-DDE zu einem komplexen Elementtyp im XML-Schema schränkt den Bereich der Bindung für die untergeordneten Elemente ein.

Im folgenden Beispiel wird das Schema für eine Anmerkung gezeigt.

<xs:element name="note"> 
    <xs:complexType> 
        <xs:sequence> 
            <xs:element name="to" type="xs:string"/> 
            <xs:element name="from" type="xs:string"/> 
            <xs:element name="heading" type="xs:string"/> 
            <xs:element name="body" type="xs:string"/> 
        </xs:sequence> 
    </xs:complexType> 
</xs:element> 

Datenwörterbuchelement

XML-Standardbindung

note

empty(null)

to

/note/to

from

/note/from

heading

/note/heading

body

/note/body

Collection-Elemente zuordnen

Ein Collection-Element wird nur einem anderen Collection-Element zugeordnet, das eine Kardinalität von > 1 aufweist. Die untergeordneten DDEs eines Collection-DDE verfügen über relative (lokale) XML-Bindung in Bezug auf ihre übergeordnete XML-Bindung. Da die untergeordneten DDEs eines Collection-Elements dieselbe Kardinalität wie die übergeordneten Elemente aufweisen müssen, ist die relative Bindung vorgeschrieben, um sicherzustellen, dass die Kardinalitätseinschränkungen derart sind, dass die untergeordneten DDEs nicht auf ein nicht wiederholtes XML-Schemaelement verweisen. Im nachfolgenden Beispiel muss die Kardinalität von „TokenID“ dieselbe sein wie „Token“, die die übergeordnete Collection DDE ist.

Beim Zuordnen eines Collection DDE zu einem XML-Schema muss Folgendes beachtet werden:
  • Die Bindung für das DDE, das dem Collection-Element entspricht, muss der absoulute XPfad sein.

  • Es darf keine Bindung für das DDE, das den Typ des Collection-Elements darstellt, bereitgestellt werden. Wenn eine Bindung bereitgestellt wird, wird sie ignoriert.

  • Die Bindung für alle untergeordneten DDEs muss relativ zum übergeordneten Collection-Element sein.

Im folgenden XML-Schema wird ein Element mit den Namen „Tokens“ und ein Attribut „maxOccurs“ mit „unbounded“ gezeigt. Daher ist „Tokens“ ein Collection-Element.

<?xml version="1.0" encoding="utf-8"?> 
<Root> 
  <Tokens> 
    <TokenID>string</TokenID> 
    <TokenText> 
      <TextHeading>string</TextHeading> 
      <TextBody>string</TextBody> 
    </TokenText> 
  </Tokens> 
  <Tokens> 
    <TokenID>string</TokenID> 
    <TokenText> 
      <TextHeading>string</TextHeading> 
      <TextBody>string</TextBody> 
    </TokenText> 
  </Tokens> 
  <Tokens> 
    <TokenID>string</TokenID> 
    <TokenText> 
      <TextHeading>string</TextHeading> 
      <TextBody>string</TextBody> 
    </TokenText> 
  </Tokens> 
</Root> 
Die mit diesem Beispiel verknüpfte „Token.xsd“, lautet wie folgt:
<xs:element name="Root"> 
  <xs:complexType> 
    <xs:sequence> 
      <xs:element name="Tokens" type="TokenType" maxOccurs="unbounded"/> 
    </xs:sequence> 
  </xs:complexType> 
</xs:element> 
  
<xs:complexType name="TokenType"> 
  <xs:sequence> 
    <xs:element name="TokenID" type="xs:string"/> 
    <xs:element name="TokenText"> 
      <xs:complexType> 
        <xs:sequence> 
          <xs:element name="TextHeading" type="xs:string"/> 
          <xs:element name="TextBody" type="xs:string"/> 
        </xs:sequence> 
      </xs:complexType> 
    </xs:element> 
  </xs:sequence> 
</xs:complexType>

Datenwörterbuchelement

XML-Standardbindung

Root

empty(null)

Tokens

/Root/Tokens

Composite

empty(null)

TokenID

TokenID

TokenText

empty(null)

TokenHeading

TokenText/TextHeading

TokenBody

TokenText/TextBody

Beispiele

Im Folgenden sind Codebeispiele aufgelistet, die Implementierungsdetails für den Baustein „Data Dictionary“ zeigen.

Beispielschema, das in ein Datenwörterbuch importiert werden kann

Im folgenden Beispiel wird das Schema für ein Unternehmen gezeigt.

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema xmlns="DCT" targetNamespace="DCT" xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  elementFormDefault="qualified" attributeFormDefault="unqualified"> 
  <xs:element name="Company"> 
    <xs:complexType> 
      <xs:sequence> 
        <xs:element name="Name" type="xs:string"/> 
        <xs:element name="Type" type="xs:anySimpleType"/> 
        <xs:element name="HeadOfficeAddress" type="Address"/> 
        <xs:element name="SalesOfficeAddress" type="Address" minOccurs="0"/> 
        <xs:element name="HeadCount" type="xs:integer"/> 
        <xs:element name="CEO" type="Employee"/> 
        <xs:element name="Workers" type="Employee" maxOccurs="unbounded"/> 
      </xs:sequence> 
    </xs:complexType> 
  </xs:element> 
  <xs:complexType name="Employee"> 
    <xs:complexContent> 
      <xs:extension  base="Person"> 
        <xs:sequence> 
          <xs:element name="CurrAddress" type="Address"/> 
          <xs:element name="DOJ" type="xs:date"/> 
          <xs:element name="Phone" type="xs:integer"/> 
        </xs:sequence> 
      </xs:extension> 
    </xs:complexContent> 
  </xs:complexType> 
  <xs:complexType name="Person"> 
    <xs:sequence> 
      <xs:element name="PersonName" type="Name"/> 
      <xs:element name="DOB" type="xs:dateTime"/> 
    </xs:sequence> 
  </xs:complexType> 
  <xs:complexType name="Name"> 
    <xs:sequence> 
      <xs:element name="FirstName" type="xs:string"/> 
      <xs:element name="MiddleName" type="xs:string"/> 
      <xs:element name="LastName" type="xs:string"/> 
    </xs:sequence> 
  </xs:complexType> 
  <xs:complexType name="Address"> 
    <xs:sequence> 
      <xs:element name="Street" type="xs:string"/> 
      <xs:element name="City" type="xs:string"/> 
      <xs:element name="State" type="xs:string"/> 
      <xs:element name="Zip" type="xs:string"/> 
    </xs:sequence> 
  </xs:complexType> 
</xs:schema>

Beispieldatenmodell

Das folgende Codebeispiel zeigt den FML-Export eines Datenwörterbuchs eines Unternehmens, wobei die Datenwörterbuchanmerkungen die DDS-Anmerkungen verwenden. Dieses Beispiel enthält außerdem zwei Anmerkungsgruppen: „Allgemein“ und „XmlBinding“. Die Beschreibung und XPath sind zwei entsprechende Anmerkungen, die als Teil dieser zwei Anmerkungsgruppen erfasst werden.

<model xmlns="http://ns.adobe.com/Fiber/1.0"> 
  <annotation name="DDS"> 
    <item name="name">Company</item> 
    <item name="displayName">Company</item> 
    <item name="version">1.0</item> 
    <item name="type">NONSYSTEM</item> 
    <item name="extended_k1">v1</item> 
    <item name="extended_k2">v2</item> 
  </annotation> 
  <annotation name="General"> 
    <item name="description"/> 
  </annotation> 
  <entity name="Company"> 
    <annotation name="DDS"> 
      <item name="setAsTopLevelWithName">Company</item> 
      <item name="displayName">Company</item> 
      <item name="extended_k3">v3</item> 
      <item name="extended_k4">v4</item> 
    </annotation> 
    <annotation name="General"> 
      <item name="description"/> 
    </annotation> 
    <annotation name="XMLBinding"> 
      <item name="xpath">/Company</item> 
    </annotation> 
    <annotation name="LiveCycleES"> 
      <item name="generate_type">true</item> 
    </annotation> 
    <property name="Name" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">Name</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/Name</item> 
      </annotation> 
    </property> 
    <property name="Type" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">Type</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/Type</item> 
      </annotation> 
    </property> 
    <property cardinality="one-to-one" name="HeadOfficeAddress" required="true" type="Address"> 
      <annotation name="DDS"> 
        <item name="displayName">HeadOfficeAddress</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/HeadOfficeAddress</item> 
      </annotation> 
    </property> 
    <property cardinality="one-to-one" name="SalesOfficeAddress" required="false" type="Address"> 
      <annotation name="DDS"> 
        <item name="displayName">SalesOfficeAddress</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/SalesOfficeAddress</item> 
      </annotation> 
    </property> 
    <property name="HeadCount" required="true" type="double"> 
      <annotation name="DDS"> 
        <item name="displayName">HeadCount</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/HeadCount</item> 
      </annotation> 
    </property> 
    <property cardinality="one-to-one" name="CEO" required="true" type="Employee"> 
      <annotation name="DDS"> 
        <item name="displayName">CEO</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/CEO</item> 
      </annotation> 
    </property> 
    <property cardinality="one-to-many" name="Workers" required="true" type="Employee[]"> 
      <annotation name="DDS"> 
        <item name="displayName">Workers</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/Workers</item> 
      </annotation> 
    </property> 
  </entity> 
  <entity name="Address"> 
    <annotation name="LiveCycleES"> 
      <item name="generate_type">true</item> 
    </annotation> 
    <property name="Street" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">Street</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/Street</item> 
      </annotation> 
    </property> 
    <property name="City" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">City</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/City</item> 
      </annotation> 
    </property> 
    <property name="State" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">State</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/State</item> 
      </annotation> 
    </property> 
    <property name="Zip" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">Zip</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/Zip</item> 
      </annotation> 
    </property> 
  </entity> 
  <entity name="Employee"> 
    <annotation name="LiveCycleES"> 
      <item name="generate_type">true</item> 
    </annotation> 
    <property cardinality="one-to-one" name="PersonName" required="true" type="Name"> 
      <annotation name="DDS"> 
        <item name="displayName">PersonName</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/PersonName</item> 
      </annotation> 
    </property> 
    <property name="DOB" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">DOB</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/DOB</item> 
      </annotation> 
    </property> 
    <property cardinality="one-to-one" name="CurrAddress" required="true" type="Address"> 
      <annotation name="DDS"> 
        <item name="displayName">CurrAddress</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/CurrAddress</item> 
      </annotation> 
    </property> 
    <property name="DOJ" required="true" type="date"> 
      <annotation name="DDS"> 
        <item name="displayName">DOJ</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/DOJ</item> 
      </annotation> 
    </property> 
    <property name="Phone" required="true" type="double"> 
      <annotation name="DDS"> 
        <item name="displayName">Phone</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/Phone</item> 
      </annotation> 
    </property> 
  </entity> 
  <entity name="Name"> 
    <annotation name="LiveCycleES"> 
      <item name="generate_type">true</item> 
    </annotation> 
    <property name="FirstName" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">FirstName</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/FirstName</item> 
      </annotation> 
    </property> 
    <property name="MiddleName" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">MiddleName</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/MiddleName</item> 
      </annotation> 
    </property> 
    <property name="LastName" required="true" type="string"> 
      <annotation name="DDS"> 
        <item name="displayName">LastName</item> 
      </annotation> 
      <annotation name="General"> 
        <item name="description"/> 
      </annotation> 
      <annotation name="XMLBinding"> 
        <item name="xpath">/LastName</item> 
      </annotation> 
    </property> 
  </entity> 
</model>

Datenwörterbuch-APIs über den Flex-Client starten

Um dieses Beispiel zu verwenden, fügen Sie adobe-dct-flex-services.swc dem Klassenpfad Ihres Flex-Projekts hinzu.

Rufen Sie die Singleton-Instanz des Datenwörterbuchdienstes auf.

 DataDictionaryUtilServiceImpl ddUtilService = DataDictionaryUtilServiceImpl.getInstance();

Starten Sie den Datenwörterbuch-Util-Dienst und übergeben Sie die Datenwörterbuch-ID als Parameter, um ein Datenwörterbuch als mit Anmerkungen versehene FML zu exportieren.

/** 
 *  Exporting Data Dictionary 
 */ 
private function exportAsFML(event:*):void 
{ 
  var ddId:String = //The id of an existing data dictionary. 
  ddUtilService.exportDataDictionaryAsFML(ddId, handleSuccess, handleFault); 
} 
/* Success Handler */ 
private function handleSuccess(event:DCTServiceEvent):void 
{ 
   var ddFML:String = event.data as String;         
} 
/* Fault Handler */ 
private function handleFaultevent:FaultEvent):void 
{ 
   trace("Error exporting DataDictionary"+ (event.message as ErrorMessage).faultCode );                  
}