DDXドキュメントを検証中

このドキュメントのサンプルと例は、JEE環境上のAEM Formsに対してのみ提供されています。

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

メモ

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

メモ

DDXドキュメントについて詳しくは、「Assembler Service and DDX Reference」を参照してください。

手順の概要

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

検証の実行

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

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

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

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

関連トピック

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

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

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

接続プロパティの設定

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

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

Assembler Service 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サービスに指示する実行時オプションを設定します。
    • Assemblerサービスがログファイルに書き込む情報の量を設定するには、AssemblerOptionSpecオブジェクトのgetLogLevelメソッドを呼び出し、必要に応じて文字列値を渡します。 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オブジェクトを作成します。 WSDLをAEM Formsサービスに指定する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認証を有効にします。

      • AEM formsユーザー名をフィールドAssemblerServiceClient.ClientCredentials.UserName.UserNameに割り当てます。
      • 対応するパスワード値をフィールドAssemblerServiceClient.ClientCredentials.UserName.Passwordに割り当てます。
      • 定数値HttpClientCredentialType.BasicをフィールドBasicHttpBindingSecurity.Transport.ClientCredentialTypeに割り当てます。
      • 定数値BasicHttpSecurityMode.TransportCredentialOnlyをフィールドBasicHttpBindingSecurity.Security.Modeに割り当てます。
  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オブジェクトを作成します。
    • AssemblerOptionSpecオブジェクトのvalidateOnlyデータメンバーに値trueを割り当てることで、DDXドキュメントの検証をAssemblerサービスに指示する実行時オプションを設定します。
    • Assemblerサービスがログファイルに書き込む情報の量を設定するには、AssemblerOptionSpecオブジェクトのlogLevelデータメンバーに文字列値を割り当てます。 DDXドキュメントを検証する場合は、検証プロセスに役立つ詳細情報をログファイルに書き込む必要があります。 その結果、FINEまたはFINERの値を指定できます。 設定できる実行時オプションについて詳しくは、AEM FormsAPIリファレンス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の呼び出し

このページ