Exemplos de processamento de solicitações em um arquivo XML

Este tópico contém exemplos de arquivos XML de entrada, expressões XPath, folhas de estilo XSLT e arquivos de substituição do RICOH ProcessDirector produzidos pelas folhas de estilo XSLT. Estes exemplos funcionam com o cenário de utilização para processamento de solicitações em um arquivo XML.

Arquivo de entrada XML

<?xml version="1.0" encoding="utf-8"?>
<seller id="000364">
  <order number="00060310">
      <customername>Metropolis Real Estate</customername>
      <shipto>
           <address1>100 Main St</address1>
           <address2>></address2>
           <city>Metropolis</city>
           <state>OH</state>
           <zip_code>45416</zip_code>
      </shipto>
      <item number="001">
            <printfile>http://www.metropolishomeexperts.com/brochures/br096.pdf</printfile>
            <quantity>10</quantity>
      </item>
      <item number="002">
            <printfile>http://www.metropolishomeexperts.com/posters/po014.pdf</printfile>
            <quantity>5</quantity>
      </item>
      <item number="003">
            <stock number="mug036"></stock>
            <quantity>5</quantity>
      </item>
  </order>
  <order number="00060311">
      <customername>Town Point Realty</customername>
      <shipto>
           <address1>450 Broadway</address1>
           <address2>Suite 12</address2>
           <city>Parkview</city>
           <state>IL</state>
           <zip_code>60404</zip_code>
      </shipto>
      <item number="001">
           <printfile>http://http://www.townpointrealty.com/print/0196.pdf</printfile>
           <quantity>20</quantity>
      </item>
      <item number="002">
            <stock number="cap0342"></stock>
            <quantity>10</quantity>
      </item>
  </order>
</seller>

Obs.: Para evitar que o arquivos XML ed amostra de entrada cause erros na etapa DownloadFile, substitua os URLs da amostra pelos URLs dos arquivos de impressão do seu site.

Primeira expressão Xpath

/seller/order

Arquivos XML criados para as tarefas

Número do pedido 00060310
<?xml version="1.0" encoding="UTF-8"?>
<order number="00060310">
      <customername>Metropolis Real Estate</customername>
      <shipto>
           <address1>100 Main St</address1>
           <address2>></address2>
           <city>Metropolis</city>
           <state>OH</state>
           <zip_code>45416</zip_code>
      </shipto>
      <item number="001">
            <printfile>http://www.metropolishomeexperts.com/brochures/br096.pdf</printfile>
            <quantity>10</quantity>
      </item>
      <item number="002">
            <printfile>http://www.metropolishomeexperts.com/posters/po014.pdf</printfile>
            <quantity>5</quantity>
      </item>
      <item number="003">
            <stock number="mug036"/>
            <quantity>5</quantity>
      </item>
  </order>
Número do pedido 00060311
<?xml version="1.0" encoding="UTF-8"?>
<order number="00060311">
      <customername>Town Point Realty</customername>
      <shipto>
           <address1>450 Broadway</address1>
           <address2>Suite 12</address2>
           <city>Parkview</city>
           <state>IL</state>
           <zip_code>60404</zip_code>
      </shipto>
      <item number="001">
           <printfile>http://www.impactonthenet.com/buildsales.pdf</printfile>
           <quantity>20</quantity>
      </item>
      <item number="002">
            <stock number="cap0342"/>
            <quantity>10</quantity>
      </item>
  </order>

Folha de estilo XSLT para a primeira etala ApplyXSLTransform

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0">
    <xsl:output method="text" encoding="UTF-8"/>
    <xsl:template match="/">
        <xsl:variable name="var1_initial" select="."/>
        <xsl:for-each select="order">
            <xsl:variable name="var2_current" select="."/>
            <xsl:value-of select="concat('Job.Info.Attr1=', @number, '
', 'Job.CustomerName=', customername)"/>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

Arquivos de substituição criados pela primeira etapa ApplyXSLTransform

Número do pedido 00060310
Job.Info.Attr1=00060310Job.CustomerName=Metropolis Real Estate
Número do pedido 00060311
Job.Info.Attr1=00060311Job.CustomerName=Town Point Realty

Segunda expressão XPath

/order/item/printfile/ancestor::item

Arquivos XML criados para as tarefas de item de impressão

Quando o arquivo XML de entrada contém o número do pedido 00060310, o RICOH ProcessDirector cria estes arquivos XML.

Item 001
<?xml version="1.0" encoding="utf-8"?>
<item number="001">
     <printfile>http://www.metropolishomeexperts.com/brochures/br096.pdf</printfile>
     <quantity>10</quantity>
</item>
Item 002
<?xml version="1.0" encoding="utf-8"?>
<item number="002">
     <printfile>http://www.metropolishomeexperts.com/posters/po014.pdf</printfile>
     <quantity>5</quantity>
</item>

Terceira expressão XPath

/order/item/stock/ancestor::item

Arquivo XML criado para a tarefa de item promocional

Quando o arquivo XML de entrada contém o número do pedido 00060310, o RICOH ProcessDirector cria este arquivo XML.

<?xml version="1.0" encoding="utf-8"?>
<item number="003">
     <stock number="mug036"/>
     <quantity>5</quantity>
</item>

Folha de estilo XSLT para a segunda etapa ApplyXSLTransform (itens de impressão)

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0">
    <xsl:output method="text" encoding="UTF-8"/>
    <xsl:template match="/">
        <xsl:variable name="var1_initial" select="."/>
        <xsl:for-each select="item">
            <xsl:variable name="var2_current" select="."/>
            <xsl:value-of select="concat('Job.DownloadFile=', printfile, '
', 'Job.Copies=', quantity)"/>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

Arquivos de substituição criados pela segunda etapa ApplyXSLTransform

Item 001
Job.DownloadFile=http://www.metropolishomeexperts.com/brochures/br096.pdfJob.Copies=10
Item 002
Job.DownloadFile=http://www.metropolishomeexperts.com/posters/po014.pdfJob.Copies=5

Folha de estilo XSLT para a terceira etapa ApplyXSLTransform (itens promocionais)

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0">
    <xsl:output method="text" encoding="UTF-8"/>
    <xsl:template match="/">
        <xsl:variable name="var1_initial" select="."/>
        <xsl:for-each select="item">
            <xsl:variable name="var2_current" select="."/>
            <xsl:value-of select="concat('Job.Info.Attr2=', stock/@number, '
', 'Job.Copies=', quantity)"/>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

Arquivo de substituição criado pela terceira etapa ApplyXSLTransform

Job.Info.Attr2=mug036Job.Copies=5