Validieren von DDX-Dokumenten validating-ddx-documents
Die Beispiele in diesem Dokument gelten nur für eine AEM Forms on JEE-Umgebung.
Sie können ein DDX-Dokumen, das vom Assembler-Service verwendet wird, programmgesteuert validieren. Mit der Assembler-Service-API können Sie also feststellen, ob ein DDX-Dokument gültig ist. Wenn Sie beispielsweise ein Upgrade von einer früheren AEM Forms-Version durchgeführt haben und sicherstellen möchten, dass Ihr DDX-Dokument gültig ist, können Sie es mithilfe der Assembler-Service-API überprüfen.
Zusammenfassung der Schritte summary-of-steps
Führen Sie die folgenden Aufgaben aus, um ein DDX-Dokument zu validieren:
- Schließen Sie Projektdateien ein.
- Erstellen Sie einen Assembler-Client.
- Referenzieren Sie ein vorhandenes DDX-Dokument.
- Legen Sie Laufzeitoptionen fest, um das DDX-Dokument zu validieren.
- Führen Sie die Überprüfung durch.
- Speichern Sie die Validierungsergebnisse in einer Protokolldatei.
Projektdateien einbeziehen
Schließen Sie die erforderlichen Dateien in Ihr Entwicklungsprojekt ein. Wenn Sie eine Clientanwendung mit Java erstellen, schließen Sie die erforderlichen JAR-Dateien ein. Wenn Sie Webdienste verwenden, stellen Sie sicher, dass Sie die Proxy-Dateien einschließen.
Die folgenden JAR-Dateien müssen zum Klassenpfad Ihres Projekts hinzugefügt werden:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-assembler-client.jar
- adobe-utilities.jar (erforderlich, wenn AEM Forms auf JBoss bereitgestellt wird)
- jbossall-client.jar (erforderlich, wenn AEM Forms auf JBoss bereitgestellt wird)
Wenn AEM Forms auf einem anderen unterstützten J2EE-Anwendungsserver als JBoss bereitgestellt wird, müssen Sie die Dateien adobe-utilities.jar- und jbossall-client.jar-Dateien durch JAR-Dateien ersetzen, die für den J2EE-Anwendungsserver spezifisch sind, auf dem AEM Forms bereitgestellt wird.
PDF Assembler-Client erstellen
Bevor Sie einen Assembler-Vorgang programmgesteuert ausführen können, müssen Sie einen Assembler-Dienst-Client erstellen.
Vorhandenes DDX-Dokument referenzieren
Um ein DDX-Dokument zu validieren, müssen Sie auf ein vorhandenes DDX-Dokument verweisen.
Laufzeitoptionen zum Validieren des DDX-Dokuments festlegen
Wenn Sie ein DDX-Dokument validieren möchten, müssen Sie bestimmte Laufzeitoptionen festlegen, die den Assembler-Service anweisen, das DDX-Dokument zu validieren, anstatt es auszuführen. Außerdem können Sie die Informationsmenge erhöhen, die der Assembler-Service in die Protokolldatei schreibt.
Validierung durchführen
Nachdem Sie den Assembler-Service-Client erstellt, auf das DDX-Dokument verwiesen und Laufzeitoptionen festgelegt haben, können Sie den invokeDDX
-Vorgang zum Überprüfen des DDX-Dokuments aufrufen. Bei der Validierung des DDX-Dokuments können Sie null
als map-Parameter übergeben (dieser Parameter speichert in der Regel PDF-Dokumente, die der Assembler benötigt, um die im DDX-Dokument angegebenen Vorgänge auszuführen).
Wenn die Validierung fehlschlägt, wird eine Ausnahme ausgelöst und die Protokolldatei enthält Details, die erklären, warum das DDX-Dokument ungültig ist. Diese Details können Sie von der OperationException
-Instanz abgerufen werden. Nach der grundlegenden XML-Analyse und Schemaprüfung wird die Validierung anhand der DDX-Spezifikation durchgeführt. Alle im DDX-Dokument enthaltenen Fehler werden im Protokoll angegeben.
Speichern der Prüfergebnisse in einer Protokolldatei
Der Assembler-Dienst gibt die Validierungsergebnisse zurück, die Sie in eine XML-Protokolldatei schreiben können. Die Menge der Details, die der Assembler-Service in die Protokolldatei schreibt, hängt von der von Ihnen festgelegten Laufzeitoption ab.
Siehe auch
Überprüfen eines DDX-Dokuments mit der Java-API
Validieren eines DDX-Dokuments mithilfe der Webservice-API
Einbeziehung von AEM Forms Java-Bibliotheksdateien
Überprüfen eines DDX-Dokuments mit der Java-API validate-a-ddx-document-using-the-java-api
Validieren Sie ein DDX-Dokument mithilfe der Assembler Service-API (Java):
-
Schließen Sie Projektdateien ein.
Fügen Sie Client-JAR-Dateien wie „adobe-assembler-client.jar“ in den Klassenpfad Ihres Java-Projekts ein.
-
Erstellen Sie einen PDF Assembler-Client.
- Erstellen Sie ein
ServiceClientFactory
-Objekt, das Verbindungseigenschaften enthält. - Erstellen Sie ein
AssemblerServiceClient
-Objekt, indem Sie seinen Konstruktor verwenden und dasServiceClientFactory
-Objekt übergeben.
- Erstellen Sie ein
-
Referenzieren Sie ein vorhandenes DDX-Dokument.
- Erstellen Sie ein
java.io.FileInputStream
-Objekt, das das DDX-Dokument darstellt, indem Sie seinen Konstruktor verwenden und einen Zeichenfolgenwert übergeben, der den Speicherort der DDX-Datei angibt. - Erstellen Sie ein
com.adobe.idp.Document
-Objekt, indem Sie seinen Konstruktor verwenden und dasjava.io.FileInputStream
-Objekt übergeben.
- Erstellen Sie ein
-
Legen Sie Laufzeitoptionen fest, um das DDX-Dokument zu validieren.
- Erstellen Sie eine
AssemblerOptionSpec
-Objekt, das Laufzeitoptionen mithilfe seines Konstruktors speichert. - Legen Sie die Laufzeitoption fest, mit der der Assembler-Service angewiesen wird, das DDX-Dokument zu validieren, indem Sie die setValidateOnly-Methode des
AssemblerOptionSpec
-Objekts aufrufen undtrue
übergeben. - Legen Sie die Menge an Informationen fest, die der Assembler-Service in die Protokolldatei schreibt, indem Sie der
getLogLevel
-Methode desAssemblerOptionSpec
-Objekts und den Zeichenfolgenwert übergeben, der Ihre Anforderungen erfüllt. Beim Validieren eines DDX-Dokuments sollten weitere Informationen in die Protokolldatei geschrieben werden, die für den Validierungsprozess hilfreich sind. Folglich können Sie den WertFINE
oderFINER
übergeben.
- Erstellen Sie eine
-
Führen Sie die Überprüfung durch.
Rufen Sie die Methode
invokeDDX
desAssemblerServiceClient
-Objekts auf und übergeben Sie die folgenden Werte:- Ein
com.adobe.idp.Document
-Objekt, das das DDX-Dokument darstellt. - Der Wert
null
für das java.io.Map-Objekt, das normalerweise PDF-Dokumente speichert. - Ein
com.adobe.livecycle.assembler.client.AssemblerOptionSpec
-Objekt, das die Laufzeitoptionen angibt.
Die Methode
invokeDDX
gibt einAssemblerResult
-Objekt zurück, das Informationen darüber enthält, ob das DDX-Dokument gültig ist. - Ein
-
Speichern Sie die Validierungsergebnisse in einer Protokolldatei.
- Erstellen Sie ein
java.io.File
-Objekt und stellen Sie sicher, dass die Dateinamenerweiterung .xml lautet. - Rufen Sie die Methode
getJobLog
desAssemblerResult
-Objekts auf. Diese Methode gibt einecom.adobe.idp.Document
-Instanz zurück, die Validierungsinformationen enthält. - Rufen Sie die Methode
copyToFile
descom.adobe.idp.Document
-Objekts auf, um den Inhalt descom.adobe.idp.Document
-Objekts in die Datei zu kopieren.
note note NOTE Wenn das DDX-Dokument ungültig ist, wird eine OperationException
ausgelöst. Innerhalb der catch-Anweisung können Sie die MethodegetJobLog
desOperationException
-Objekts aufrufen. - Erstellen Sie ein
Siehe auch
Kurzanleitung (SOAP-Modus): Validieren von DDX-Dokumenten mithilfe der Java-API (SOAP-Modus)
Validieren eines DDX-Dokuments mithilfe der Webservice-API validate-a-ddx-document-using-the-web-service-api
So validieren Sie ein DDX-Dokument mithilfe der Assembler Service-API (Webservice):
-
Schließen Sie Projektdateien ein.
Erstellen Sie ein Microsoft .NET-Projekt, das MTOM verwendet. Stellen Sie sicher, dass Sie die folgende WSDL-Definition verwenden:
http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1
.note note NOTE Ersetzen Sie „localhost“ durch die IP-Adresse des Formular-Servers. -
Erstellen Sie einen PDF Assembler-Client.
-
Erstellen Sie ein
AssemblerServiceClient
-Objekt, indem Sie seinen standardmäßigen Konstruktor verwenden. -
Erstellen Sie ein
AssemblerServiceClient.Endpoint.Address
-Objekt mithilfe desSystem.ServiceModel.EndpointAddress
-Konstruktors. Übergeben Sie einen Zeichenfolgenwert mit der WSDL an den AEM Forms-Service (z. B.http://localhost:8080/soap/services/AssemblerService?blob=mtom
). Sie müssen daslc_version
-Attribut nicht verwenden. Dieses Attribut wird verwendet, wenn Sie einen Service-Verweis erstellen. -
Erstellen Sie ein
System.ServiceModel.BasicHttpBinding
-Objekr, indem Sie den Wert des FeldsAssemblerServiceClient.Endpoint.Binding
abrufen. Wandeln Sie den Rückgabewert inBasicHttpBinding
um. -
Legen Sie das
MessageEncoding
-Feld desSystem.ServiceModel.BasicHttpBinding
-Objekts aufWSMessageEncoding.Mtom
fest. Dieser Wert stellt sicher, dass MTOM verwendet wird. -
Aktivieren Sie die einfache HTTP-Authentifizierung, indem Sie die folgenden Schritte ausführen:
- Weisen Sie dem Feld
AssemblerServiceClient.ClientCredentials.UserName.UserName
den AEM Forms-Benutzernamen zu. - Weisen Sie dem Feld
AssemblerServiceClient.ClientCredentials.UserName.Password
den entsprechenden Passwortwert zu. - Weisen Sie dem Feld
BasicHttpBindingSecurity.Transport.ClientCredentialType
den konstanten WertHttpClientCredentialType.Basic
zu. - Weisen Sie dem Feld
BasicHttpBindingSecurity.Security.Mode
den KonstantenwertBasicHttpSecurityMode.TransportCredentialOnly
zu.
- Weisen Sie dem Feld
-
-
Referenzieren Sie ein vorhandenes DDX-Dokument.
- Erstellen Sie ein Objekt
BLOB
, indem Sie den Konstruktor verwenden. DasBLOB
-Objekt wird zum Speichern des DDX-Dokuments verwendet. - Erstellen Sie ein Objekt
System.IO.FileStream
, indem Sie den Konstruktor aufrufen und einen String-Wert übergeben, der den Dateispeicherort des DDX-Dokuments und den Modus, in dem die Datei geöffnet werden soll, repräsentiert. - Erstellen Sie ein Byte-Array, das den Inhalt des
System.IO.FileStream
-Objekts speichert. Sie können die Größe des Byte-Arrays bestimmen, indem Sie dieLength
-Eigenschaft desSystem.IO.FileStream
-Objekts abrufen. - Füllen Sie das Byte-Array mit Stream-Daten, indem Sie die
Read
-Methode desSystem.IO.FileStream
-Objekts aufrufen und das Byte-Array, die Startposition und die zu lesende Stream-Länge übergeben. - Füllen Sie das
BLOB
-Objekt, indem Sie seinerMTOM
-Eigenschaft den Inhalt des Byte-Arrays zuweisen.
- Erstellen Sie ein Objekt
-
Legen Sie Laufzeitoptionen fest, um das DDX-Dokument zu validieren.
- Erstellen Sie ein
AssemblerOptionSpec
-Objekt, das Laufzeitoptionen speichert, indem Sie seinen Konstruktor verwenden. - Legen Sie die Laufzeitoption fest, die den Assembler-Service anweist, das DDX-Dokument zu validieren, indem Sie dem Datenelement
validateOnly
desAssemblerOptionSpec
-Objekts den Wert „true“ zuweisen. - Legen Sie die Menge der Informationen fest, die der Assembler-Service in die Protokolldatei schreibt, indem Sie dem Datenelement
logLevel
desAssemblerOptionSpec
-Objekts einen Zeichenfolgenwert zuweisen. Bei der Validierung eines DDX-Dokuments sollten mehr Informationen in die Protokolldatei geschrieben werden, um den Validierungsprozess zu unterstützen. Daher können Sie den WertFINE
oderFINER
angeben. Weitere Informationen zu den Laufzeitoptionen, die Sie festlegen können, finden Sie in derAssemblerOptionSpec
-Klassenreferenz in der AEM Forms-API-Referenz.
- Erstellen Sie ein
-
Führen Sie die Überprüfung durch.
Rufen Sie die Methode
invokeDDX
desAssemblerServiceClient
-Objekts auf und übergeben Sie die folgenden Werte:- Ein
BLOB
-Objekt, das das DDX-Dokument darstellt. - Der Wert
null
für dasMap
-Objekt, das normalerweise PDF-Dokumente speichert. - Ein
AssemblerOptionSpec
-Objekt, das Laufzeitoptionen angibt.
Die
invokeDDX
-Methode gibt einAssemblerResult
-Objekt zurück, das Informationen enthält, die angeben, ob das DDX-Dokument gültig ist. - Ein
-
Speichern Sie die Validierungsergebnisse in einer Protokolldatei.
- Erstellen Sie ein
System.IO.FileStream
-Objekt, indem Sie seinen Konstruktor aufrufen und ihm einen Zeichenfolgenwert übergeben, der den Dateispeicherort der Protokolldatei und den Modus zum Öffnen der Datei darstellt. Stellen Sie sicher, dass die Dateinamenerweiterung .xml lautet. - Erstellen Sie ein
BLOB
-Objekt, das Protokollinformationen speichert, indem Sie den Wert desjobLog
-Datenelements desAssemblerResult
-Objekts abrufen. - Erstellen Sie ein Byte-Array, in dem der Inhalt des
BLOB
-Objekts gespeichert wird. Füllen Sie das Byte-Array, indem Sie den Wert aus demMTOM
-Feld desBLOB
-Objekts abrufen. - Erstellen Sie ein
System.IO.BinaryWriter
-Objekt, indem Sie seinen Konstruktor verwenden und dasSystem.IO.FileStream
-Objekt übergeben. - Schreiben Sie den Inhalt des Byte-Arrays in eine PDF-Datei, indem Sie die
Write
-Methode desSystem.IO.BinaryWriter
-Objekts aufrufen und ihr das Byte-Array übergeben.
note note NOTE Wenn das DDX-Dokument ungültig ist, wird eine OperationException
ausgelöst. Innerhalb der catch-Anweisung können Sie den Wert desjobLog
-Elements desOperationException
-Objekts abrufen. - Erstellen Sie ein
Siehe auch
AEM Forms mithilfe von MTOM aufrufen