Toidutracker

From ICO wiki
Revision as of 22:31, 25 March 2015 by Troja (talk | contribs) (→‎XSD)
Jump to navigationJump to search

Meeskond

  • Triin Oja
  • Julia Kraam
  • Alari Talvar

Veebiteenuse analüüs

XML

<?xml version="1.0" encoding="utf-8" ?>
<toidutracker>
 <toidukord toidukordID="1" submitted="2015-03-24">
  <toit toitID="1" submitter="kasutaja1" toitnimi="Imelik salat" tootja="kasutaja1">
  <koostisosad>
     <toiduaine nimi="tomat" kategooria="köögivili">
        <kogus yhik="g">100</kogus>
        <toiteväärtus>
          <kalorsus yhik="kcal">18</kalorsus>
          <rasvad yhik="g">0,2</rasvad>
          <valgud yhik="g">0,9</valgud>
          <süsivesikud yhik="g">3,9</süsivesikud>
        </toiteväärtus>
      </toiduaine>
      
      <toiduaine nimi="sibul" kategooria="köögivili">
        <kogus yhik="g">50</kogus>
        <toiteväärtus>
          <kalorsus yhik="kcal">21</kalorsus>
          <rasvad yhik="g">0,1</rasvad>
          <valgud yhik="g">0,5</valgud>
          <süsivesikud yhik="g">5,1</süsivesikud>
        </toiteväärtus>
      </toiduaine>
      
      <toiduaine nimi="õun" kategooria="puuvili">
        <kogus yhik="g">100</kogus>
        <toiteväärtus>
          <kalorsus yhik="kcal">52</kalorsus>
          <rasvad yhik="g">0,2</rasvad>
          <valgud yhik="g">0,3</valgud>
          <süsivesikud yhik="g">13,8</süsivesikud>
        </toiteväärtus>
      </toiduaine>
      
      <toiduaine nimi="cheddar juust" kategooria="piimatoode">
        <kogus yhik="g">50</kogus>
        <toiteväärtus>
          <kalorsus yhik="kcal">202</kalorsus>
          <rasvad yhik="g">16,6</rasvad>
          <valgud yhik="g">12,5</valgud>
          <süsivesikud yhik="g">0,6</süsivesikud>
        </toiteväärtus>
      </toiduaine>
    </koostisosad>
    
     <toiteväärtuskokku>
      <kaloridkokku yhik="kcal">293</kaloridkokku>
      <rasvadkokku yhik="g">17,1</rasvadkokku>
      <valgudkokku yhik="g">14,2</valgudkokku>
      <süsivesikudkokku yhik="g">23,4</süsivesikudkokku>
    </toiteväärtuskokku>
</toit>

<toit toitID="2" submitter="kasutaja2" toitnimi="Kana rinnafilee" tootja="Tallegg"> 
  <koostisosad>
  <toiduaine nimi="Kana rinnafilee" kategooria="Liha">
    <kogus yhik="g">100</kogus>
    <toiteväärtus>
      <kalorsus yhik="kcal">165</kalorsus>
      <rasvad yhik="g">3,6</rasvad>
      <valgud yhik="g">31</valgud>
      <süsivesikud yhik="g">0</süsivesikud>
    </toiteväärtus>
  </toiduaine>
  </koostisosad>

  <toiteväärtuskokku>
    <kaloridkokku yhik="kcal">165</kaloridkokku>
    <rasvadkokku yhik="g">3,6</rasvadkokku>
    <valgudkokku yhik="g">31</valgudkokku>
    <süsivesikudkokku yhik="g">0</süsivesikudkokku>
  </toiteväärtuskokku>
</toit>
    </toidukord>
</toidutracker>

XSD

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="toidutracker">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="toidukord">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="toit">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="koostisosad">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded" name="toiduaine">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="kogus">
                                  <xs:complexType>
                                    <xs:simpleContent>
                                      <xs:extension base="xs:positiveInteger">
                                        <xs:attribute name="yhik" type="xs:string" use="required" />
                                      </xs:extension>
                                    </xs:simpleContent>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element name="toiteväärtus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="kalorsus">
                                        <xs:complexType>
                                          <xs:simpleContent>
                                            <xs:extension base="xs:nonNegativeInteger">
                                              <xs:attribute name="yhik" type="xs:string" use="required" />
                                            </xs:extension>
                                          </xs:simpleContent>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="rasvad">
                                        <xs:complexType>
                                          <xs:simpleContent>
                                            <xs:extension base="xs:decimal">
                                              <xs:attribute name="yhik" type="xs:string" use="required" />
                                            </xs:extension>
                                          </xs:simpleContent>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="valgud">
                                        <xs:complexType>
                                          <xs:simpleContent>
                                            <xs:extension base="xs:decimal">
                                              <xs:attribute name="yhik" type="xs:string" use="required" />
                                            </xs:extension>
                                          </xs:simpleContent>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="süsivesikud">
                                        <xs:complexType>
                                          <xs:simpleContent>
                                            <xs:extension base="xs:decimal">
                                              <xs:attribute name="yhik" type="xs:string" use="required" />
                                            </xs:extension>
                                          </xs:simpleContent>
                                        </xs:complexType>
                                      </xs:element>
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                              <xs:attribute name="nimi" type="xs:string" use="required" />
                              <xs:attribute name="kategooria" type="xs:string" use="required" />
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="toiteväärtuskokku">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="kaloridkokku">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:nonNegativeInteger">
                                  <xs:attribute name="yhik" type="xs:string" use="required" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="rasvadkokku">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:decimal">
                                  <xs:attribute name="yhik" type="xs:string" use="required" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="valgudkokku">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:decimal">
                                  <xs:attribute name="yhik" type="xs:string" use="required" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="süsivesikudkokku">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:decimal">
                                  <xs:attribute name="yhik" type="xs:string" use="required" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="toitID" type="xs:unsignedInt" use="required" />
                  <xs:attribute name="submitter" type="xs:string" use="required" />
                  <xs:attribute name="toitnimi" type="xs:string" use="required" />
                  <xs:attribute name="tootja" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="toidukordID" type="xs:unsignedInt" use="required" />
            <xs:attribute name="submitted" type="xs:date" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XSLT