Specifying Comparisons

 Table of Contents

To invoke a comparison you POST parameters to the specified pipeline, in either JSON or XML form.

Synchronous Comparison

Here is a simple synchronous example (asynchronous comparison is detailed on this page):

Request (XML)
<comparison>
  <inputA type="http">
    <uri>http://www.example.com/file1.xml</uri>
  </inputA>
  <inputB type="http">
    <uri>http://www.example.com/file2.xml</uri>
  </inputB>
  <configurationParameters>
    <configurationParameter type="boolean">
      <name>Preserve Whitespace</name>
      <value>false</value>
    </configurationParameter>
    <configurationParameter type="string">
	  <name>Output Type</name>
      <value>full-context</value>
    </configurationParameter>
  </configurationParameters>
</comparison>



Request (JSON)
{
  "inputA": {
    "type": "http",
    "uri": "http://www.example.com/file1.xml"
  },
  "inputB": {
    "type": "http",
    "uri": "http://www.example.com/file2.xml"
  },
  "configurationParameters": [
    {
      "name": "Word By Word",
      "value": true,
      "type": "boolean"
    },
    {
      "name": "Indent",
      "value": "yes",
      "type": "string"
    }
  ]
}

The request allows the pipeline parameters to be changed from their default values.

The response below indicates the comparison result, in this case an XML Delta describing the changes between the inputs specified in the request.  The ellipses would give the actual content.

Response
HTTP/1.1 201 Created
<root xmlns:deltaxml="http://deltaxml.com/ns/well-formed-delta-v1" deltaxml:deltaV2="A!=B">
  <child deltaxml:deltaV2="A=B">...</child>
  <child deltaxml:deltaV2="A!=B">...</child>
</root>

The example above shows how comparison inputs could be specified using a HTTP URL. The  inputA and inputB elements in the request can contain different types of children according to the types of data being processed. This is described in more detail in the I/O types page

Comparison Model

When specifying a comparison, these are the various available objects:

ObjectDescription

inputA

(required)

Input A to the comparison.

See this page for the various I/O types available. 

inputB

(required)

Input B to the comparison.

See this page for the various I/O types available. 

catalog

An OASIS XML Catalog.

See this page for the various I/O types available.

configurationParameterstype = "string"A name and string value, corresponding with a parameter in the DXP / DCP configuration.
type = "boolean"A name and boolean value, corresponding with a parameter in the DXP / DCP configuration.

async

output

Specification of where the comparison result will be written.

See this page for the various I/O types available. 

callback

URL that will be polled after the comparison is complete.

See Callbacks in Async for more information.

Form Input

In addition to requests in structured XML or JSON format, multipart/form-data can also be used.

For example:

Request
POST /api/xml-compare/v1/pipelines/delta HTTP/1.1
Content-Type: multipart/form-data; boundary=boundary-id
Content-Length: number_of_bytes_in_entire_request_body

--boundary-id
Content-Disposition: file; filename="file1.xml"
Content-Size: 98344
Content-Type: application/xml

... XML  ...
--boundary-id
Content-Disposition: file; filename="file2.xml"
Content-Size: 92224
Content-Type: application/xml

... XML  ...
--boundary-id

Content-Disposition: form-data; name="Word By Word"
true
--boundary-id
Content-Disposition: form-data; name="Indent"
yes
--boundary-id
Content-Disposition: form-data; name="async"
true
--boundary-id

The following table describes the parts that can make up the form-data:

ParameterDescription and example usage

A (required)

Input A

Can be specified in either a file path, a HTTP URI, or raw XML

B (required)

Input B

Can be specified in either a file path, a HTTP URI, or raw XML

output

An optional file path to write the output to

E.g. "/Users/exampleUser/Documents/test.xml"

async

Whether async comparison is used.

Default value if not specified: false

callback

Callback URL called after comparison is complete.

Note : only used with asynchronous comparisons. See this page.

catalog

An OASIS XML Catalog.

Can be specified in either a file path, a HTTP URI, or raw XML

Configuration Parameters are specified by using the name of the pipeline parameter as the name of the form data element.

For example, the example above sets two parameters - "Word By Word" and "Indent". Note each parameter is specified separately.

#content .code