Anna, Alvar, Urmas: Difference between revisions
Line 572: | Line 572: | ||
==XML schema (XSD)== | ==XML schema (XSD)== | ||
Schema on | 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. | ||
<source lang="xml"> | <source lang="xml"> | ||
Line 757: | Line 757: | ||
</xs:schema> | </xs:schema> | ||
</source> | </source> | ||
==Style Sheet 1== | ==Style Sheet 1== |
Revision as of 09:56, 6 May 2013
Võrgurakendused II: hajussüsteemide ehitamine
Kodutöö leht
Rühma liikmed:
Anna Lütsepp Alvar Väinola Urmas Pill
XML
TeamFoundation projekt (urmas.visualstudio.com): [1]
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 tavaliseks 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 konstruktsiooni 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>