Validate a DDX document using the web service API validate-a-ddx-document-using-theweb-service-api
Validate a DDX document by using the Assembler Service API (web service):
-
Include project files.
Create a Microsoft .NET project that uses MTOM. Ensure that you use the following WSDL definition:
http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1.note note NOTE Replace localhost with the IP address of the forms server. -
Create a PDF Assembler client.
-
Create an
AssemblerServiceClientobject by using its default constructor. -
Create an
AssemblerServiceClient.Endpoint.Addressobject by using theSystem.ServiceModel.EndpointAddressconstructor. Pass a string value that specifies the WSDL to the AEM Forms service (for example,http://localhost:8080/soap/services/AssemblerService?blob=mtom). You do not need to use thelc_versionattribute. This attribute is used when you create a service reference. -
Create a
System.ServiceModel.BasicHttpBindingobject by getting the value of theAssemblerServiceClient.Endpoint.Bindingfield. Cast the return value toBasicHttpBinding. -
Set the
System.ServiceModel.BasicHttpBindingobject’sMessageEncodingfield toWSMessageEncoding.Mtom. This value ensures that MTOM is used. -
Enable basic HTTP authentication by performing the following tasks:
- Assign the AEM forms user name to the field
AssemblerServiceClient.ClientCredentials.UserName.UserName. - Assign the corresponding password value to the field
AssemblerServiceClient.ClientCredentials.UserName.Password. - Assign the constant value
HttpClientCredentialType.Basicto the fieldBasicHttpBindingSecurity.Transport.ClientCredentialType. - Assign the constant value
BasicHttpSecurityMode.TransportCredentialOnlyto the fieldBasicHttpBindingSecurity.Security.Mode.
- Assign the AEM forms user name to the field
-
-
Reference an existing DDX document.
- Create a
BLOBobject by using its constructor. TheBLOBobject is used to store the DDX document. - Create a
System.IO.FileStreamobject by invoking its constructor and passing a string value that represents the file location of the DDX document and the mode to open the file in. - Create a byte array that stores the content of the
System.IO.FileStreamobject. You can determine the size of the byte array by getting theSystem.IO.FileStreamobject’sLengthproperty. - Populate the byte array with stream data by invoking the
System.IO.FileStreamobject’sReadmethod and passing the byte array, the starting position, and the stream length to read. - Populate the
BLOBobject by assigning itsMTOMproperty with the contents of the byte array.
- Create a
-
Set run-time options to validate the DDX document.
- Create an
AssemblerOptionSpecobject that stores run-time options by using its constructor. - Set the run-time option that instructs the Assembler service to validate the DDX document by assigning the value true to the
AssemblerOptionSpecobject’svalidateOnlydata member. - Set the amount of information that the Assembler service writes to the log file by assigning a string value to the
AssemblerOptionSpecobject’slogLeveldata member. method When validating a DDX document, you want more information written to the log file that will assist in the validation process. As a result, you can specify the valueFINEorFINER. For information about the run-time options that you can set, see theAssemblerOptionSpecclass reference in AEM Forms API Reference.
- Create an
-
Perform the validation.
Invoke the
AssemblerServiceClientobject’sinvokeDDXmethod and pass the following values:- A
BLOBobject that represents the DDX document. - The value
nullfor theMapobject that usually stores PDF documents. - An
AssemblerOptionSpecobject that specifies run-time options.
The
invokeDDXmethod returns anAssemblerResultobject that contains information that specifies whether the DDX document is valid. - A
-
Save the validation results in a log file.
- Create a
System.IO.FileStreamobject by invoking its constructor and passing a string value that represents the file location of the log file and the mode to open the file in. Ensure that the file name extension is .xml. - Create a
BLOBobject that stores log information by getting the value of theAssemblerResultobject’sjobLogdata member. - Create a byte array that stores the content of the
BLOBobject. Populate the byte array by getting the value of theBLOBobject’sMTOMfield. - Create a
System.IO.BinaryWriterobject by invoking its constructor and passing theSystem.IO.FileStreamobject. - Write the contents of the byte array to a PDF file by invoking the
System.IO.BinaryWriterobject’sWritemethod and passing the byte array.
note note NOTE If the DDX document is invalid, an OperationExceptionis thrown. Within the catch statement, you can get the value of theOperationExceptionobject’sjobLogmember. - Create a
See also