<?xml version="1.0" encoding="UTF-8"?>
<as:CAM xmlns:as="http://www.oasis-open.org/committees/cam" CAMlevel="1" version="1.0">
  <as:Header>
    <as:Description>Sample CAM template for W3C Purchase Order</as:Description>
    <as:Owner>CAM Example</as:Owner>
    <as:Version>0.1</as:Version>
    <as:DateTime>2007-03-06T09:48:00</as:DateTime>
    <as:Parameters>
      <as:Parameter name="QuickBooks" values="'true'|'false'" default="false" use="local" />
    </as:Parameters>
  </as:Header>
  <as:AssemblyStructure>
    <as:Structure ID="W3C-PO" taxonomy="XML" reference="">
      <PurchaseOrder orderDate="%1999-05-20%">
        <shipTo type="%US%">
          <name>%Alice Smith%</name>
          <street>%123 Maple Street%</street>
          <city>%Mill Valley%</city>
          <state>%CA%</state>
          <zip>%90952%</zip>
        </shipTo>
        <shipDate>%1999-05-25%</shipDate>
        <comment>%Put optional comment text here%</comment>
        <Items>
          <Item pno="%333-333%">
            <productName>%Lawnmower, model BUZZ-1%</productName>
            <quantity>%1%</quantity>
            <price>%148.95%</price>
            <comment>%Please confirm this is the electric model%</comment>
          </Item>
        </Items>
      </PurchaseOrder>
    </as:Structure>
  </as:AssemblyStructure>
  <as:BusinessUseContext>
    <as:Rules>
      <as:default>
        <as:context>
          <as:constraint action="makeRepeatable(//Items/Item)" />
          <as:constraint action="makeOptional(//Item/comment)" />
          <as:constraint action="setLength(//shipTo/state,2)" />
          <as:constraint action="setDateMask(//PurchaseOrder/shipDate,YYYY-MM-DD)" />
          <as:constraint action="makeOptional(//PurchaseOrder/comment)" />
          <as:constraint action="restrictValues(//shipTo/@type,'US'|     'CA'|     'MX', US)" />
          <as:constraint action="setDateMask(//PurchaseOrder/@orderDate,YYYY-MM-DD)" />
          <as:constraint action="setNumberMask(//Item/@pno,###-###)" />
          <as:constraint action="setNumberMask(//Item/quantity,###)" />
          <as:constraint action="setNumberMask(//Item/price,####.##)" />
          <as:constraint condition="//Item/@pno = '123-678'" action="restrictValues(//shipTo/state,'WA')">
            <as:annotation>
              <as:documentation type="documentation">Can only ship item 123-678 to Washington State</as:documentation>
            </as:annotation>
          </as:constraint>
          <as:constraint condition="$QuickBooks = true" action="excludeElement(//Item/comment)" />
        </as:context>
      </as:default>
    </as:Rules>
  </as:BusinessUseContext>
</as:CAM>

