Anna, Alvar, Urmas

From ICO wiki
Jump to navigationJump to search

Võrgurakendused II: hajussüsteemide ehitamine

Kodutöö leht


Rühma liikmed:

Anna Lütsepp Alvar Väinola Urmas Pill

XML

Faili kirjeldus

Võtsin xml tekitamise aluseks ühe majandustarkvarast pakutava demoandmetega kaupade tabeli. Sealt sai võetud mõned "huvitavamad" andmed ning lisatud ka setud tabelist kaupadega seotud dimensioonide vaikeväärtused. Tulemuseks on xml fail, mille nimeks on meie TeamFoundationi projektis Example1.xml

XML fail

<?xml version="1.0" encoding="utf-8" ?>
<ItemList>
  <TableID>27</TableID>
  <PageID>31</PageID>
  <DataTemplate>ITEM01</DataTemplate>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1000</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Bicycle</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">4000</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">350.594</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">0</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PRODUCTION</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">FINISHED</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>      
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1001</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Touring Bicycle</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">4000</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">350.594</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">0</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PRODUCTION</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">FINISHED</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1100</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Front Wheel</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">1000</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">129.671</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PRODUCTION</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">COMPONENT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>      
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1110</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Rim</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">0</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">1.05</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">200</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1120</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Spokes</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">0</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">2</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">5000</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1150</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Front Hub</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">500</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">12.441</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1151</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Axle Front Wheel</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">0</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">0.45</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1155</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Socket Front</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">0</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">0.77</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1160</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Tire</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">0</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">1.23</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1170</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Tube</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">0</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">1.75</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1200</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Back Wheel</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">1200</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">129.6815</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PRODUCTION</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">COMPONENT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1250</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Back Hub</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">1100</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">12.4515</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1251</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Axle Back Wheel</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">0</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">0.33</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1255</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Socket Back</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">0</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">0.9</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1300</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Chain Assy</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">800</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">13.1565</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PRODUCTION</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">COMPONENT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1310</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Chain</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">0</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">1.99</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1320</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Chain Wheel Front</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">0</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">4.66</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1330</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Chain Wheel Back</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">0</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">5.88</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1400</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Mudguard front</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">0</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">3.9</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1450</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Mudguard back</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">0</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">3.9</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1500</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Lamp</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">0</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">5.2</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1600</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Bell</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">0</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">2.7</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1700</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Brake</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">600</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">9.765</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1710</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Hand rear wheel Brake</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">0</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">4.5</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1720</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Hand front wheel Brake</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">0</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">4.8</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1800</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Handlebars</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">0</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">2.12</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
  <Item>
    <No ValidateField="1" ProcessingOrder="1">1850</No>
    <No2 ValidateField="1" ProcessingOrder="2"></No2>
    <Description ValidateField="1" ProcessingOrder="3">Saddle</Description>
    <Description2 ValidateField="1" ProcessingOrder="5"></Description2>
    <BaseUnitofMeasure ValidateField="1" ProcessingOrder="6">PCS</BaseUnitofMeasure>
    <UnitPrice ValidateField="1" ProcessingOrder="14">0</UnitPrice>
    <UnitCost ValidateField="1" ProcessingOrder="18">7.2</UnitCost>
    <ReorderPoint ValidateField="1" ProcessingOrder="27">100</ReorderPoint>
    <GrossWeight ValidateField="1" ProcessingOrder="34">0</GrossWeight>
    <NetWeight ValidateField="1" ProcessingOrder="35">0</NetWeight>
    <UnitVolume ValidateField="1" ProcessingOrder="37">0</UnitVolume>
    <TariffNo ValidateField="1" ProcessingOrder="40"></TariffNo>
    <DefaultDimensions>
      <Dimension GlobalDimension="1" DimensionCode="PROJECT">C800</Dimension>
      <Dimension GlobalDimension="2" DimensionCode="DEPARTMENT">PURCHASE</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="CATEGORY">RAWMAT</Dimension>
      <Dimension GlobalDimension="0" DimensionCode="PRODGROUP">BIKES</Dimension>
    </DefaultDimensions>
  </Item>
</ItemList>


XML schema (XSD)

Schema on põõtud teha võimalikult täpseks - automaatselt tekitatud failile on lisatud vajalikud tüübikirjeldused ning vastavalt ka ära muudetud andmete tüübid.

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:simpleType name="Code20">
    <xs:restriction base="xs:string">
      <xs:maxLength value="20"/>
      <xs:pattern value="([A-Z0-9])+"/>    
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="Code20B">
    <xs:restriction base="xs:string">
      <xs:maxLength value="20"/>
      <xs:pattern value="([A-Z0-9])*"/>    
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="Code10">
    <xs:restriction base="xs:string">
      <xs:maxLength value="10"/>
      <xs:pattern value="([A-Z0-9])+"/>    
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="Text50">
    <xs:restriction base="xs:string">
      <xs:maxLength value="50"/>
    </xs:restriction>
  </xs:simpleType>
  
  <xs:element name="ItemList">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="TableID" type="xs:unsignedInt" />
        <xs:element name="PageID" type="xs:unsignedInt" />
        <xs:element name="DataTemplate" type="xs:string" />
        <xs:element maxOccurs="unbounded" name="Item">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="No" minOccurs="1" maxOccurs="1">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="Code20">
                      <xs:attribute name="ValidateField" type="xs:boolean" />
                      <xs:attribute name="ProcessingOrder" type="xs:unsignedShort" />
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="No2" maxOccurs="1">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="Code20B">                    
                      <xs:attribute name="ValidateField" type="xs:boolean" />
                      <xs:attribute name="ProcessingOrder" type="xs:unsignedShort" />
                    </xs:extension>
                  </xs:simpleContent>                      
                </xs:complexType>
              </xs:element>
              <xs:element name="Description" maxOccurs="1">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="Text50">
                      <xs:attribute name="ValidateField" type="xs:boolean" />
                      <xs:attribute name="ProcessingOrder" type="xs:unsignedShort" />
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="Description2" maxOccurs="1">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="Text50">
                      <xs:attribute name="ValidateField" type="xs:boolean" />
                      <xs:attribute name="ProcessingOrder" type="xs:unsignedShort" />
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="BaseUnitofMeasure" minOccurs="1" maxOccurs="1">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="Code10">
                      <xs:attribute name="ValidateField" type="xs:boolean" />
                      <xs:attribute name="ProcessingOrder" type="xs:unsignedShort" />
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="UnitPrice" maxOccurs="1">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:decimal">
                      <xs:attribute name="ValidateField" type="xs:boolean" />
                      <xs:attribute name="ProcessingOrder" type="xs:unsignedShort" />
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="UnitCost" maxOccurs="1">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:decimal">
                      <xs:attribute name="ValidateField" type="xs:boolean" />
                      <xs:attribute name="ProcessingOrder" type="xs:unsignedShort" />
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="ReorderPoint">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:decimal">
                      <xs:attribute name="ValidateField" type="xs:boolean" />
                      <xs:attribute name="ProcessingOrder" type="xs:unsignedShort" />
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="GrossWeight">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:decimal">
                      <xs:attribute name="ValidateField" type="xs:boolean" />
                      <xs:attribute name="ProcessingOrder" type="xs:unsignedShort" />
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="NetWeight">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:decimal">
                      <xs:attribute name="ValidateField" type="xs:boolean" />
                      <xs:attribute name="ProcessingOrder" type="xs:unsignedShort" />
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="UnitVolume">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:decimal">
                      <xs:attribute name="ValidateField" type="xs:boolean" />
                      <xs:attribute name="ProcessingOrder" type="xs:unsignedShort" />
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="TariffNo">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="Code20B">
                      <xs:attribute name="ValidateField" type="xs:boolean" />
                      <xs:attribute name="ProcessingOrder" type="xs:unsignedShort" />
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="DefaultDimensions">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="Dimension">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="Code20B">
                            <xs:attribute name="GlobalDimension" type="xs:unsignedByte" use="required" />
                            <xs:attribute name="DimensionCode" type="xs:string" use="required" />
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>


Style Sheet 1

Lihtne stiilileht, mis konverteerib Example XML-i tavalisseks tabeliks. Natuke erilisemaks teeb see, et ka kaks dimensiooni kaasatakse tavalisse tabelisse Failinimi Team Foundation-is on Items 1.xslt

Example1.xml ja Items 1.xslt koostöö on nähtav siin

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">

  <xsl:output method="html" indent="yes"/>

  <xsl:template match="/">
    <html>
      <head>
        <title>Just item list</title>
      </head>
      <body>
        <p>
          <h1>
            Item list
          </h1>
        </p>
        <table border="0">
          <tr>
            <th>Item No.</th>    
            <th>Description</th>          
            <th>UOM</th>                
            <th>Unit Price</th>                
            <th>Unit Cost</th>                      
            <th>Reorder Point</th>
            <th>Category</th>      
            <th>Product Group</th>      
          </tr>
          <xsl:for-each select="ItemList/Item">
            <tr>
              <td><xsl:value-of select="No"/></td>      
              <td><xsl:value-of select="Description"/></td>
              <td><xsl:value-of select="BaseUnitofMeasure"/></td>
              <td><xsl:value-of select="UnitPrice"/></td>      
              <td><xsl:value-of select="UnitCost"/></td>
              <td><xsl:value-of select="ReorderPoint"/></td>
              <xsl:for-each select="DefaultDimensions/Dimension">
                <xsl:if test="@DimensionCode='CATEGORY'">
                  <td><xsl:value-of select="."/></td>                        
                </xsl:if>          
              </xsl:for-each>  
              <xsl:for-each select="DefaultDimensions/Dimension">
                <xsl:if test="@DimensionCode='PRODGROUP'">
                  <td><xsl:value-of select="."/></td>                        
                </xsl:if>          
              </xsl:for-each>  
            </tr>      
          </xsl:for-each>
        </table>
     </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

Style Sheet 2

Sellega sai "natuke" vaeva nähtud. Unikaalsete rühma liikmete (antud faili puhul siis kategooriate) leidmine ilma Xpath 2.0-ita ja ilma igasuguse teadmiseta KEY konstrktsiooni kasutamisest oli tegelikult paras pähkel. Aga noh - tulemuseks on see, et nüüd ma saan vist enam-vähem aru kuidas "key"-d kasutatakse. Tõenäoliselt saaks siinseid päringud veel elegantsemaks teha, aga kui asja tööle sain, siis ei hoolinud enam suurt ;-) Ka siin pole html lehe enda kaunidusele suurt tähelepanu pööratud - pidasin andmete kättesaamist olulisemaks. Failinimi Team Foundation-is on Items 2.xslt

Selle stiililehe töö tulemus on näha siin

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
  <xsl:output method="html" indent="yes"/>
  <xsl:key name="Category" match="/ItemList/Item/DefaultDimensions/Dimension/text()" use="."/>
  <xsl:template match="/">
    <html>
      <head>
        <title>Items by Category</title>
      </head>
      <body>
        <p>
          <h1>
            Items by Category
          </h1>
        </p>		
        <!-- gather categories-->
        <xsl:for-each select="ItemList/Item/DefaultDimensions/Dimension[@DimensionCode='CATEGORY']/.">
          <xsl:sort select="." order="ascending"/>
          <xsl:variable name="CurrentCategory" select="."></xsl:variable>		  
          <xsl:if test="generate-id(key('Category', $CurrentCategory)[1]) = generate-id(text())">
            <p>
              <xsl:value-of select="text()"/>
            </p>
            <table border="0">
              <tr>
                <th>Item No.</th>
                <th>Description</th>
                <th>UOM</th>
                <th>Unit Price</th>
                <th>Unit Cost</th>
                <th>Reorder Point</th>
                <th>Product Group</th>
              </tr>
              <xsl:for-each select="/ItemList/Item">
                <xsl:if test="DefaultDimensions/Dimension[@DimensionCode='CATEGORY']/.=$CurrentCategory">
                  <tr>
                    <td>
                      <xsl:value-of select="No"/>
                    </td>
                    <td>
                      <xsl:value-of select="Description"/>
                    </td>
                    <td>
                      <xsl:value-of select="BaseUnitofMeasure"/>
                    </td>
                    <td>
                      <xsl:value-of select="UnitPrice"/>
                    </td>
                    <td>
                      <xsl:value-of select="UnitCost"/>
                    </td>
                    <td>
                      <xsl:value-of select="ReorderPoint"/>
                    </td>
                    <xsl:for-each select="DefaultDimensions/Dimension">
                      <xsl:if test="@DimensionCode='PRODGROUP'">
                        <td>
                          <xsl:value-of select="."/>
                        </td>
                      </xsl:if>
                    </xsl:for-each>
                  </tr>
                  <p></p>
                </xsl:if>
              </xsl:for-each>
            </table>
            <p></p>
          </xsl:if>
        </xsl:for-each>		  
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>