Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This is an annotated simple annotated ConventionalPrinting job to illustrate the differences and similarities of JDF and XJDF.

The XJDF was created automatically using the CIP4 JDF editor, which in turn uses utility classes which are available in the CIP4 open source Java Library - see: JDFLibJ.

XJDF

JDF

Remarks


 

XJDF Header

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<XJDF Category="MISCPS.Printing" CommentURL="http://www.example.com"
  DescriptiveName="MISCPS Golden Ticket Example Job - version: CIP4 JDF Writer Java 1.5 BLD 81"
  ID="n_000001" JobID="Job_000010" JobPartID="n_000001" MaxVersion="2.0"
  Types="InkZoneCalculation ConventionalPrinting" Version="2.0" xmlns="http://www.CIP4.org/JDFSchema_2_0">
  <AuditPool>
    <Created AgentName="CIP4 JDFEditor"
      AgentVersion="Build version CIP4 JDF Writer Java 1.5 BLD 81"
      ID="a_001024" TimeStamp="2014-11-20T12:04:15+08:00">
      <Employee DescriptiveName="XJDF Converter"/>
    </Created>
  </AuditPool>
 

JDF Header

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<JDF Category="MISCPS.Printing" CommentURL="http://www.example.com"
  DescriptiveName="MISCPS Golden Ticket Example Job - version: CIP4 JDF Writer Java 1.5 BLD 81"
  ID="n_000001" JobID="Job_000010" JobPartID="n_000001" MaxVersion="1.5"
  Status="Waiting" Type="ProcessGroup"
  Types="InkZoneCalculation ConventionalPrinting" Version="1.5"
  xmlns="http://www.CIP4.org/JDFSchema_1_1"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ProcessGroup">
  <AuditPool>
    <Created AgentName="CIP4 JDFEditor"
      AgentVersion="Build version CIP4 JDF Writer Java 1.5 BLD 81"
      ID="a_000002" TimeStamp="2014-11-20T12:03:45+08:00"/>
  </AuditPool>
    <ResourcePool>
...
    <ResourceLinkPool>
... 
 

The root tag, version information and schema are obviously different.

Whereas JDF allows for multiple JDF nodes, XJDF requires exactly one.

Audits have remained mostly unchanged.

ResourceLinkPool and ResourcePool have been removed. The ResourceSet elements reside directly in the only XJDF.

ColorantControl

Code Block
languagexml
  <ResourceSet ID="r_000003" Name="ColorantControl" Usage="Input">
    <Resource ID="r_000003.1" Status="Available">
      <ColorantControl ColorRef="r_000004"
        ColorantOrder="Black Cyan Magenta Yellow Spot1" ProcessColorModel="DeviceCMYK"/>
    </Resource>
  </ResourceSet>
 

ColorantControl

Code Block
languagexml
    <ColorantControl class="Parameter" ID="r_000003"
      ProcessColorModel="DeviceCMYK" Status="Available">
      <ColorPoolRef rRef="r_000004"/>
      <ColorantOrder>
        <SeparationSpec Name="Black"/>
        <SeparationSpec Name="Cyan"/>
        <SeparationSpec Name="Magenta"/>
        <SeparationSpec Name="Yellow"/>
        <SeparationSpec Name="My Color"/>
      </ColorantOrder>
    </ColorantControl>
...
    <ColorantControlLink Usage="Input" rRef="r_000003"/>

ColorantControlLink and ColorantControl have been merged into one ResourceSet.

Separations are referred to by attribute lists rather than SepaationSpec elements.

Color

Code Block
languagexml
  <ResourceSet ID="r_000004" Name="Color">
    <Resource ID="r_000004.1" Status="Unavailable">
      <Part Separation="Black"/>
      <Color ActualColorName="Black" CMYK="0 0 0 1"/>
    </Resource>
    <Resource ID="r_000004.2" Status="Unavailable">
      <Part Separation="Cyan"/>
      <Color ActualColorName="Cyan" CMYK="1 0 0 0"/>
    </Resource>
    <Resource ID="r_000004.3" Status="Unavailable">
      <Part Separation="Magenta"/>
      <Color ActualColorName="Magenta" CMYK="0 1 0 0"/>
    </Resource>
    <Resource ID="r_000004.4" >
      <Part Separation="Yellow"/>
      <Color ActualColorName="Yellow" CMYK="0 0 1 0" Status="Unavailable"/>
    </Resource>
    <Resource ID="r_000004.5" >
      <Part Separation="YellowSpot1"/>
      <Color ActualColorName="YellowMy Color" CMYK="0.4 0.4 10 0"/>
    </Resource>
  </ResourceSet>

 ColorPool

Code Block
languagexml
    <ColorPool class="Parameter" ID="r_000004" Status="Unavailable">
      <Color CMYK="0 0 0 1" class="Parameter" Name="Black"/>
      <Color CMYK="1 0 0 0" class="Parameter" Name="Cyan"/>
      <Color CMYK="0 1 0 0" class="Parameter" Name="Magenta"/>
      <Color CMYK="0 0 1 0" class="Parameter" Name="Yellow"/>
    </ColorPool>

ColorPool is  a "standard" partitioned Color ResourceSet rather than a specific animal.

The name is a token that SHOULD be matched to an ActualColorName that is a string may contain blanks and other special characters.

This allows separations to be referenced as NMTOKENS lists rather than requiring expilcit SeparationSpec elements.

ConventionalPrintingParams

Code Block
languagexml
   <ResourceSet ID="r_000005" Name="ConventionalPrintingParams" Usage="Input">
    <Resource ID="r_000005.1" Status="Available">
      <ConventionalPrintingParams PrintingType="SheetFed" WorkStyle="Simplex"/>
    </Resource>
  </ResourceSet>
Code Block
languagexml
    <ConventionalPrintingParams class="Parameter" ID="r_000005"
      PrintingType="SheetFed" Status="Available" WorkStyle="Simplex"/>
...
    <ConventionalPrintingParamsLink Usage="Input" rRef="r_000005"/>

In JDF, a resource is only applicable to the JDF that contains a matching ResourceLink. In XJDF the two concepts have been combined into a "Set" entry that is always applicable. Thus you need no longer search for the matching resource to a ResourceLink.

Generic attributes such as Usage are defined in explicit elements which are the parent elements of the specific resources such as ConventionalPrintingParams.

Thus each table in the specification is self contained and does not require an implementor to follow the tree of inheritence in the specification.

Partitioned NodeInfo ParameterSet

Code Block
languagexml
  <ResourceSet ID="r_000011" Name="NodeInfo" Usage="Input">
    <Resource
      DescriptiveName="Printing forJDFAttributeMap: {(SheetName = Sheet1) (SignatureName = Sig1) "
      ID="r_000011.1" Status="Available">
      <Part SheetName="Sheet1" SignatureName="Sig1"/>
      <NodeInfo NodeStatus="Waiting">
        <Employee PersonalID="personalID1" Roles="CSR"/>
      </NodeInfo>
    </Resource>
  </ResourceSet>

Partitioned NodeInfo

Code Block
languagexml
    <NodeInfo class="Parameter" ID="r_000011" NodeStatus="Waiting"
      PartIDKeys="SignatureName SheetName Side Separation"
      PartUsage="Implicit" Status="Available">
      <Employee class="Implementation" PersonalID="personalID1" Roles="CSR"/>
      <NodeInfo SignatureName="Sig1">
        <NodeInfo
          DescriptiveName="Printing forJDFAttributeMap: {(SheetName = Sheet1) (SignatureName = Sig1) "
          NodeStatus="Waiting" SheetName="Sheet1"/>
      </NodeInfo>
    </NodeInfo>
...
    <NodeInfoLink Usage="Input" rRef="r_000011"/>

Partitioning always is written as a linear list with Part elements rather than a hierarchical structure.

 

CustomerInfo

Code Block
languagexml
  <ResourceSet ID="r_000012" Name="CustomerInfo" Usage="Input">
    <Resource ID="r_000012.1" Status="Available">
      <CustomerInfo ContactRef="r_000013.1" CustomerID="customerID"
        CustomerJobName="customer job name" CustomerOrderID="customerOrder_1"/>
    </Resource>
  </ResourceSet>

CustomerInfo

Code Block
languagexml
    <CustomerInfo class="Parameter" CustomerID="customerID"
      CustomerJobName="customer job name"
      CustomerOrderID="customerOrder_1" ID="r_000012"
      PartUsage="Implicit" Status="Available">
      <ContactRef rRef="r_000013"/>
    </CustomerInfo>
...
    <CustomerInfoLink CombinedProcessIndex="0 1" Usage="Input" rRef="r_000012"/>

References, if used at all, are simple ID-IDRef pairs rather than

 <ContactRef rRef="r_000013"/>

that may even contain additional partitioning data, requiring specific lookup functions.

Contact

Code Block
languagexml
  <ResourceSet ID="r_000013" Name="Contact">
    <Resource ID="r_000013.1" Status="Available">
      <Contact ContactTypes="Customer Administrator">
        <Person FamilyName="Töpfer" FirstName="Harald"/>
        <ComChannel ChannelType="Phone" Locator="tel:+666.42.123456"/>
        <ComChannel ChannelType="Fax" Locator="tel:+666.42.123455"/>
        <ComChannel ChannelType="Email" Locator="mailto:harald.topfer@thepits.net"/>
        <Company OrganizationName="The Pits"/>
      </Contact>
    </Resource>
  </ResourceSet>

Contact

Code Block
languagexml
   <Contact class="Parameter" ContactTypes="Customer Administrator"
      ID="r_000013" Status="Available">
      <Person class="Parameter" FamilyName="Töpfer" FirstName="Harald"/>
      <ComChannel ChannelType="Phone" class="Parameter" Locator="tel:+666.42.123456"/>
      <ComChannel ChannelType="Fax" class="Parameter" Locator="tel:+666.42.123455"/>
      <ComChannel ChannelType="Email" class="Parameter" Locator="mailto:harald.topfer@thepits.net"/>
      <Company class="Parameter" OrganizationName="The Pits"/>
    </Contact>

 

Preview

Code Block
languagexml
  <ResourceSet ID="r_000014" Name="Preview" Usage="Input">
    <Resource ID="r_000014.1" Status="Incomplete">
      <Part Separation="Black" SheetName="Sheet1" Side="Front" SignatureName="Sig1"/>
      <Preview PreviewFileType="PNG" PreviewUsage="Separation"/>
    </Resource>
    <Resource ID="r_000014.2" Status="Incomplete">
      <Part Separation="Cyan" SheetName="Sheet1" Side="Front" SignatureName="Sig1"/>
      <Preview PreviewFileType="PNG" PreviewUsage="Separation"/>
    </Resource>
    <Resource ID="r_000014.3" Status="Incomplete">
      <Part Separation="Magenta" SheetName="Sheet1" Side="Front" SignatureName="Sig1"/>
      <Preview PreviewFileType="PNG" PreviewUsage="Separation"/>
    </Resource>
    <Resource ID="r_000014.4" Status="Incomplete">
      <Part Separation="Yellow" SheetName="Sheet1" Side="Front" SignatureName="Sig1"/>
      <Preview PreviewFileType="PNG" PreviewUsage="Separation"/>
    </Resource>
    <Resource ID="r_000014.5" Status="Incomplete">
      <Part Separation="Black" SheetName="Sheet1" Side="Back" SignatureName="Sig1"/>
      <Preview PreviewFileType="PNG" PreviewUsage="Separation"/>
    </Resource>
    <Resource ID="r_000014.6" Status="Incomplete">
      <Part Separation="Cyan" SheetName="Sheet1" Side="Back" SignatureName="Sig1"/>
      <Preview PreviewFileType="PNG" PreviewUsage="Separation"/>
    </Resource>
    <Resource ID="r_000014.7" Status="Incomplete">
      <Part Separation="Magenta" SheetName="Sheet1" Side="Back" SignatureName="Sig1"/>
      <Preview PreviewFileType="PNG" PreviewUsage="Separation"/>
    </Resource>
    <Resource ID="r_000014.8" Status="Incomplete">
      <Part Separation="Yellow" SheetName="Sheet1" Side="Back" SignatureName="Sig1"/>
      <Preview PreviewFileType="PNG" PreviewUsage="Separation"/>
    </Resource>
  </ResourceSet>

Preview

Code Block
languagexml
    <Preview class="Parameter" ID="r_000014"
      PartIDKeys="SignatureName SheetName Side Separation"
      PartUsage="Explicit" PreviewFileType="PNG"
      PreviewUsage="Separation" Status="Incomplete">
      <Preview SignatureName="Sig1">
        <Preview SheetName="Sheet1">
          <Preview Side="Front">
            <Preview Separation="Black" Status="Incomplete"/>
            <Preview Separation="Cyan" Status="Incomplete"/>
            <Preview Separation="Magenta" Status="Incomplete"/>
            <Preview Separation="Yellow" Status="Incomplete"/>
          </Preview>
          <Preview Side="Back">
            <Preview Separation="Black" Status="Incomplete"/>
            <Preview Separation="Cyan" Status="Incomplete"/>
            <Preview Separation="Magenta" Status="Incomplete"/>
            <Preview Separation="Yellow" Status="Incomplete"/>
          </Preview>
        </Preview>
      </Preview>
    </Preview>
...
    <PreviewLink CombinedProcessIndex="0 1" Usage="Input" rRef="r_000014"/>

 

Paper Media including consumption reporting

Code Block
languagexml
   <ResourceSet ID="r_000006" Name="Media" Usage="Input">
    <Resource DescriptiveName="the paper to print on" ID="r_000006.1"
      ProductID="paperID" Status="Unavailable">
      <Media Dimension="2891.33858268 1984.2519685" MediaType="Paper"
        Thickness="112.5" Weight="90"/>
      <AmountPool>
        <PartAmount Amount="1000" MaxAmount="1100">
          <Part Condition="Good" SheetName="Sheet1" SignatureName="Sig1"/>
        </PartAmount>
        <PartAmount MaxAmount="100">
          <Part Condition="Waste" SheetName="Sheet1" SignatureName="Sig1"/>
        </PartAmount>
      </AmountPool>
    </Resource>
  </ResourceSet>

Paper Media including consumption reporting

Code Block
languagexml
    <Media class="Consumable" DescriptiveName="the paper to print on"
      Dimension="2891.33858268 1984.2519685" ID="r_000006"
      MediaType="Paper" ProductID="paperID" Status="Unavailable"
      Thickness="112.5" Weight="90"/>
...
    <MediaLink Usage="Input" rRef="r_000006">
      <AmountPool>
        <PartAmount Amount="1000" MaxAmount="1100">
          <Part Condition="Good" SheetName="Sheet1" SignatureName="Sig1"/>
        </PartAmount>
        <PartAmount MaxAmount="100">
          <Part Condition="Waste" SheetName="Sheet1" SignatureName="Sig1"/>
        </PartAmount>
      </AmountPool>
    </MediaLink>

JDF allowes Amount definitions both in the resource and the ResourceLink. XJDF has only one container object, in our case it is the <Resource> that contains an AmountPool.

 

(warning) Amount handling - specifically waste handling is currently under discussion and may change(warning)

ExposedMedia (Plates)

Code Block
languagexml
  <ResourceSet ID="r_000007" Name="ExposedMedia" ProcessUsage="Plate" Usage="Input">
    <Resource ID="r_000007.1" Status="Unavailable">
      <Part Separation="Black" SheetName="Sheet1" Side="Front" SignatureName="Sig1"/>
      <ExposedMedia MediaRef="r_000008.1"/>
    </Resource>
    <Resource ID="r_000007.2" Status="Unavailable">
      <Part Separation="Cyan" SheetName="Sheet1" Side="Front" SignatureName="Sig1"/>
      <ExposedMedia MediaRef="r_000008.1"/>
    </Resource>
    <Resource ID="r_000007.3" Status="Unavailable">
      <Part Separation="Magenta" SheetName="Sheet1" Side="Front" SignatureName="Sig1"/>
      <ExposedMedia MediaRef="r_000008.1"/>
    </Resource>
    <Resource ID="r_000007.4" Status="Unavailable">
      <Part Separation="Yellow" SheetName="Sheet1" Side="Front" SignatureName="Sig1"/>
      <ExposedMedia MediaRef="r_000008.1"/>
    </Resource>
    <Resource ID="r_000007.5" Status="Unavailable">
      <Part Separation="Black" SheetName="Sheet1" Side="Back" SignatureName="Sig1"/>
      <ExposedMedia MediaRef="r_000008.1"/>
    </Resource>
    <Resource ID="r_000007.6" Status="Unavailable">
      <Part Separation="Cyan" SheetName="Sheet1" Side="Back" SignatureName="Sig1"/>
      <ExposedMedia MediaRef="r_000008.1"/>
    </Resource>
    <Resource ID="r_000007.7" Status="Unavailable">
      <Part Separation="Magenta" SheetName="Sheet1" Side="Back" SignatureName="Sig1"/>
      <ExposedMedia MediaRef="r_000008.1"/>
    </Resource>
    <Resource ID="r_000007.8" Status="Unavailable">
      <Part Separation="Yellow" SheetName="Sheet1" Side="Back" SignatureName="Sig1"/>
      <ExposedMedia MediaRef="r_000008.1"/>
    </Resource>
  </ResourceSet>
  <ResourceSet ID="r_000008" Name="Media">
    <Resource DescriptiveName="the plates to use" ID="r_000008.1" Status="Available">
      <Media Dimension="2919.68503937 2012.5984252" MediaType="Plate"/>
    </Resource>
  </ResourceSet>

ExposedMedia (Plates)

Code Block
languagexml
    <ExposedMedia class="Handling" ID="r_000007"
      PartIDKeys="SignatureName SheetName Side Separation"
      PartUsage="Explicit" Status="Unavailable">
      <MediaRef rRef="r_000008"/>
      <ExposedMedia SignatureName="Sig1">
        <ExposedMedia SheetName="Sheet1">
          <ExposedMedia Side="Front">
            <ExposedMedia Separation="Black"/>
            <ExposedMedia Separation="Cyan"/>
            <ExposedMedia Separation="Magenta"/>
            <ExposedMedia Separation="Yellow"/>
          </ExposedMedia>
          <ExposedMedia Side="Back">
            <ExposedMedia Separation="Black"/>
            <ExposedMedia Separation="Cyan"/>
            <ExposedMedia Separation="Magenta"/>
            <ExposedMedia Separation="Yellow"/>
          </ExposedMedia>
        </ExposedMedia>
      </ExposedMedia>
    </ExposedMedia>
    <Media class="Consumable" DescriptiveName="the plates to use"
      Dimension="2919.68503937 2012.5984252" ID="r_000008"
      MediaType="Plate" PartUsage="Implicit" Status="Available"/>
...
    <ExposedMediaLink ProcessUsage="Plate" Usage="Input" rRef="r_000007"/>

 

Output Component

Code Block
languagexml
  <ResourceSet ID="r_000009" Name="Component" Usage="Output">
    <Resource DescriptiveName="Description for Component part# 0"
      ID="r_000009.1" Status="Unavailable">
      <Part SheetName="Sheet1" SignatureName="Sig1"/>
      <AmountPool>
        <PartAmount Amount="1000">
          <Part Condition="Good" SheetName="Sheet1" SignatureName="Sig1"/>
        </PartAmount>
      </AmountPool>
      <Component ComponentType=" Sheet" Dimensions="2891.33858268 1984.2519685 0"/>
    </Resource>
  </ResourceSet>

Output Component

Code Block
languagexml
    <Component class="Quantity" ComponentType="FinalProduct Sheet"
      Dimensions="2891.33858268 1984.2519685 0" ID="r_000009"
      PartIDKeys="SignatureName SheetName" ProductType="Unknown" Status="Unavailable">
      <Component SignatureName="Sig1">
        <Component DescriptiveName="Description for Component part# 0" SheetName="Sheet1"/>
      </Component>
    </Component>
...
    <ComponentLink Usage="Output" rRef="r_000009">
      <AmountPool>
        <PartAmount Amount="1000">
          <Part Condition="Good" SheetName="Sheet1" SignatureName="Sig1"/>
        </PartAmount>
      </AmountPool>
    </ComponentLink>

 

End of File

Code Block
languagexml
</XJDF>

End of File

Code Block
languagexml
  </ResourcePool>
...
  </ResourceLinkPool>
</JDF>