DDXドキュメントの検証

このドキュメントのサンプルと例は、JEE上のAEM Forms環境に限られています。

Assemblerサービスで使用されるDDXドキュメントをプログラムで検証できます。 つまり、AssemblerサービスAPIを使用して、DDXドキュメントが有効かどうかを判断できます。 例えば、以前のAEM Formsバージョンからアップグレードした場合に、DDXドキュメントが有効であることを確認するには、AssemblerサービスAPIを使用して検証できます。

メモ

Assemblerサービスについて詳しくは、『AEM Forms🔗向けサービスリファレンス』を参照してください。

メモ

DDXドキュメントについて詳しくは、『AssemblerサービスとDDXリファレンス』を参照してください。

手順の概要

DDXドキュメントを検証するには、次のタスクを実行します。

  1. プロジェクトファイルを含めます。
  2. Assemblerクライアントを作成します。
  3. 既存のDDXドキュメントの参照
  4. DDXドキュメントを検証するための実行時オプションを設定します。
  5. 検証を実行します。
  6. 検証結果をログファイルに保存します。

プロジェクトファイルを含める

必要なファイルを開発プロジェクトに含めます。 Javaを使用してクライアントアプリケーションを作成する場合は、必要なJARファイルを含めます。 Webサービスを使用する場合は、プロキシファイルを必ず含めてください。

次のJARファイルをプロジェクトのクラスパスに追加する必要があります。

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-assembler-client.jar
  • adobe-utilities.jar(AEM FormsをJBossにデプロイする場合に必要)
  • jbossall-client.jar(AEM FormsをJBossにデプロイする場合に必要)

AEM FormsがJBoss以外のサポート対象のJ2EEアプリケーションサーバーにデプロイされている場合は、adobe-utilities.jarファイルとjbossall-client.jarファイルを、AEM FormsがデプロイされているJ2EEアプリケーションサーバーに固有のJARファイルに置き換える必要があります。

PDFアセンブラークライアントの作成

プログラムでAssembler操作を実行する前に、Assemblerサービスクライアントを作成する必要があります。

既存のDDXドキュメントの参照

DDXドキュメントを検証するには、既存のDDXドキュメントを参照する必要があります。

DDXドキュメントを検証するための実行時オプションの設定

DDXドキュメントを検証する場合は、DDXドキュメントを実行するのではなく、DDXドキュメントを検証するようにAssemblerサービスに指示する特定の実行時オプションを設定する必要があります。 また、Assemblerサービスがログファイルに書き込む情報の量を増やすこともできます。

検証の実行

Assemblerサービスクライアントを作成し、DDXドキュメントを参照し、実行時オプションを設定した後、invokeDDX操作を呼び出してDDXドキュメントを検証できます。 DDXドキュメントを検証する際に、nullをmapパラメーターとして渡すことができます(通常、このパラメーターには、DDXドキュメントで指定された操作をAssemblerが実行するために必要なPDFドキュメントが格納されます)。

検証が失敗すると、例外がスローされ、OperationExceptionインスタンスからDDXドキュメントが無効な理由を取得できる理由をログファイルに示します。 基本的なXML解析とスキーマチェックを経たら、DDX仕様に対する検証が実行されます。 DDXドキュメント内のすべてのエラーがログに記録されます。

検証結果をログファイルに保存する

Assemblerサービスは、XMLログファイルに書き込むことができる検証結果を返します。 Assemblerサービスがログファイルに書き込む詳細の量は、設定した実行時オプションによって異なります。

関連トピック

Java APIを使用したDDXドキュメントの検証

WebサービスAPIを使用したDDXドキュメントの検証

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

PDFドキュメントのプログラムによるアセンブリ

Java APIを使用したDDXドキュメントの検証

AssemblerサービスAPI(Java)を使用してDDXドキュメントを検証します。

  1. プロジェクトファイルを含めます。

    Javaプロジェクトのクラスパスに、adobe-assembler-client.jarなどのクライアントJARファイルを含めます。

  2. PDFアセンブラークライアントを作成します。

    • 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。
    • コンストラクターを使用してAssemblerServiceClientオブジェクトを渡し、ServiceClientFactoryオブジェクトを作成します。
  3. 既存のDDXドキュメントの参照

    • コンストラクターを使用し、DDXファイルの場所を指定する文字列値を渡して、DDXドキュメントを表すjava.io.FileInputStreamオブジェクトを作成します。
    • コンストラクタを使用して com.adobe.idp.Document オブジェクトを渡すことによって、java.io.FileInputStream オブジェクトを作成します。
  4. DDXドキュメントを検証するための実行時オプションを設定します。

    • コンストラクターを使用して、実行時オプションを格納するAssemblerOptionSpecオブジェクトを作成します。
    • AssemblerOptionSpecオブジェクトのsetValidateOnlyメソッドを呼び出してtrueを渡すことで、DDXドキュメントを検証するようAssemblerサービスに指示する実行時オプションを設定します。
    • AssemblerOptionSpecオブジェクトのgetLogLevelメソッドを呼び出し、必要に応じて文字列値を渡すことで、Assemblerサービスがログファイルに書き込む情報の量を設定します。 DDXドキュメントを検証する場合、検証プロセスに役立つ詳細情報をログファイルに書き込む必要があります。 その結果、値FINEまたはFINERを渡すことができます。
  5. 検証を実行します。

    AssemblerServiceClientオブジェクトのinvokeDDXメソッドを呼び出し、次の値を渡します。

    • DDXドキュメントを表すcom.adobe.idp.Documentオブジェクト。
    • 通常PDFドキュメントを格納するjava.io.Mapオブジェクトの値null
    • 実行時オプションを指定するcom.adobe.livecycle.assembler.client.AssemblerOptionSpecオブジェクト。

    invokeDDXメソッドは、DDXドキュメントが有効かどうかを指定する情報を含むAssemblerResultオブジェクトを返します。

  6. 検証結果をログファイルに保存します。

    • java.io.Fileオブジェクトを作成し、ファイル名の拡張子が.xmlであることを確認します。
    • AssemblerResultオブジェクトのgetJobLogメソッドを呼び出します。 このメソッドは、検証情報を含むcom.adobe.idp.Documentインスタンスを返します。
    • com.adobe.idp.DocumentオブジェクトのcopyToFileメソッドを呼び出して、com.adobe.idp.Documentオブジェクトの内容をファイルにコピーします。
    メモ

    DDXドキュメントが無効な場合は、OperationExceptionがスローされます。 catchステートメント内で、OperationExceptionオブジェクトのgetJobLogメソッドを呼び出すことができます。

関連トピック

DDXドキュメントの検証

クイックスタート(SOAPモード):Java API (SOAPモード)を使用したDDXドキュメントの検証

AEM Forms Java ライブラリファイルを含める

接続プロパティの設定

WebサービスAPIを使用したDDXドキュメントの検証

Assembler Service API(Webサービス)を使用してDDXドキュメントを検証します。

  1. プロジェクトファイルを含めます。

    MTOMを使用するMicrosoft .NETプロジェクトを作成します。 次のWSDL定義を使用していることを確認します。http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1.

    メモ

    localhostをformsサーバーのIPアドレスに置き換えます。

  2. PDFアセンブラークライアントを作成します。

    • デフォルトのコンストラクターを使用してAssemblerServiceClientオブジェクトを作成します。

    • System.ServiceModel.EndpointAddressコンストラクターを使用してAssemblerServiceClient.Endpoint.Addressオブジェクトを作成します。 AEM FormsサービスにWSDLを指定するstring値を渡します(例:http://localhost:8080/soap/services/AssemblerService?blob=mtom)。 lc_version属性を使用する必要はありません。 この属性は、サービス参照を作成する際に使用されます。

    • AssemblerServiceClient.Endpoint.Bindingフィールドの値を取得してSystem.ServiceModel.BasicHttpBindingオブジェクトを作成します。 戻り値を BasicHttpBinding にキャストします。

    • System.ServiceModel.BasicHttpBindingオブジェクトのMessageEncodingフィールドをWSMessageEncoding.Mtomに設定します。 この値は、MTOMが使用されるようにします。

    • 次のタスクを実行して、基本的なHTTP認証を有効にします。

      • フィールドAssemblerServiceClient.ClientCredentials.UserName.UserNameにAEM formsユーザー名を割り当てます。
      • 対応するパスワード値をフィールドAssemblerServiceClient.ClientCredentials.UserName.Passwordに割り当てます。
      • フィールドBasicHttpBindingSecurity.Transport.ClientCredentialTypeに定数値HttpClientCredentialType.Basicを割り当てます。
      • フィールドBasicHttpBindingSecurity.Security.Modeに定数値BasicHttpSecurityMode.TransportCredentialOnlyを割り当てます。
  3. 既存のDDXドキュメントの参照

    • コンストラクタを使用して BLOB オブジェクトを作成します。BLOBオブジェクトは、DDXドキュメントの格納に使用されます。
    • コンストラクターを呼び出し、DDXドキュメントのファイルの場所とファイルを開くモードを表すstring値を渡して、System.IO.FileStreamオブジェクトを作成します。
    • System.IO.FileStreamオブジェクトの内容を格納するバイト配列を作成します。 System.IO.FileStreamオブジェクトのLengthプロパティを取得することで、バイト配列のサイズを判断できます。
    • System.IO.FileStreamオブジェクトのReadメソッドを呼び出し、読み取るバイト配列、開始位置、ストリーム長を渡すことによって、バイト配列にストリームデータを入力します。
    • BLOBオブジェクトのMTOMプロパティにバイト配列の内容を割り当てて、オブジェクトを設定します。
  4. DDXドキュメントを検証するための実行時オプションを設定します。

    • コンストラクターを使用して、実行時オプションを格納するAssemblerOptionSpecオブジェクトを作成します。
    • 値trueをAssemblerOptionSpecオブジェクトのvalidateOnlyデータメンバーに割り当てて、DDXドキュメントを検証するようAssemblerサービスに指示する実行時オプションを設定します。
    • AssemblerOptionSpecオブジェクトのlogLevelデータメンバーに文字列値を割り当てて、Assemblerサービスがログファイルに書き込む情報の量を設定します。 メソッドを使用してDDXドキュメントを検証する場合、検証プロセスに役立つ詳細情報をログファイルに書き込む必要があります。 その結果、値FINEまたはFINERを指定できます。 設定できる実行時オプションについて詳しくは、『AEM Forms APIリファレンス』のAssemblerOptionSpecクラス参照を参照してください。
  5. 検証を実行します。

    AssemblerServiceClientオブジェクトのinvokeDDXメソッドを呼び出し、次の値を渡します。

    • DDXドキュメントを表すBLOBオブジェクト。
    • 通常PDFドキュメントを格納するMapオブジェクトの値nullです。
    • 実行時オプションを指定するAssemblerOptionSpecオブジェクト。

    invokeDDXメソッドは、DDXドキュメントが有効かどうかを指定する情報を含むAssemblerResultオブジェクトを返します。

  6. 検証結果をログファイルに保存します。

    • コンストラクターを呼び出し、ログファイルのファイルの場所とファイルを開くモードを表すstring値を渡して、System.IO.FileStreamオブジェクトを作成します。 ファイル名の拡張子が.xmlであることを確認します。
    • AssemblerResultオブジェクトのjobLogデータメンバーの値を取得して、ログ情報を格納するBLOBオブジェクトを作成します。
    • BLOBオブジェクトの内容を格納するバイト配列を作成します。 BLOBオブジェクトのMTOMフィールドの値を取得して、バイト配列を設定します。
    • コンストラクターを呼び出し、System.IO.FileStreamオブジェクトを渡して、System.IO.BinaryWriterオブジェクトを作成します。
    • System.IO.BinaryWriterオブジェクトのWriteメソッドを呼び出し、バイト配列を渡すことにより、バイト配列の内容をPDFファイルに書き込みます。
    メモ

    DDXドキュメントが無効な場合は、OperationExceptionがスローされます。 catchステートメント内で、OperationExceptionオブジェクトのjobLogメンバの値を取得できます。

関連トピック

DDXドキュメントの検証

MTOMを使用したAEM Formsの呼び出し

このページ