Příklad jednoho z možných řešení úkolu 13
Toto řešení je silně zjednodušené, pro implementaci v praxi by vyžadovalo zahrnout do modelů mnohem větší počet prvků.
Zadání 3 - Katalog produktů
Katalog produktů tvoří údaje o produktech uspořádaných do kategorií a o producentovi těchto produktů, který katalog publikuje. Každý katalog obsahuje jeden název a jednu sadu údajů o producentovi, které tvoří jméno a kontaktní údaje. Katalog musí obsahovat alespoň jednu kategorii,
počet kategorií není omezen (každá kategorie se může dále členit na
podkategorie). V každé kategorii musí být alespoň jeden produkt, počet
produktů v kategorii není omezen. Produkt se zařazuje vždy jen do jedné
kategorie nebo podkategorie. Údaje o produktu se uvádějí vždy v tomto
pořadí: 1. kód, 2. název produktu, 3. foto, 4. parametr, 5. cena. Každý produkt
charakterizuje alespoň jeden parametr, počet parametrů není omezen.
Model stromové struktury
DTD - varianta s elementy | DTD - varianta s atributy | |
<! DOCTYPE katalog produktů [ <! ELEMENT katalog produktů (název katalogu, producent, kategorie produktů+)> <! ELEMENT název katalogu (#PCDATA)> <! ELEMENT producent (jméno, kontakt)> <! ELEMENT jméno (#PCDATA)> <! ELEMENT kontakt (#PCDATA)> <! ELEMENT kategorie produktů (#PCDATA|kategorie produktů*|produkt+)> <! ELEMENT produkt (kód, název produktu, foto, parametr+, cena)> <! ELEMENT kód (#CDATA)> <! ELEMENT název produktu (#PCDATA)> <! ELEMENT foto EMPTY> <! ELEMENT cena (#CDATA)> <! ELEMENT parametr (název parametru, hodnota parametru)> <! ELEMENT název parametru (#PCDATA)> <! ELEMENT hodnota parametru (#PCDATA)> ] > |
|
<! DOCTYPE katalog produktů [ <! ELEMENT katalog produktů (producent, kategorie produktů+)> <! ELEMENT producent (#PCDATA)> <! ELEMENT kategorie produktů (#PCDATA|kategorie produktů*|produkt+)> <! ELEMENT produkt (parametr+)> <! ELEMENT parametr (#PCDATA)> <! ATTLIST katalog produktů název katalogu #PCDATA> <! ATTLIST producent jméno #PCDATA> kontakt #PCDATA> <! ATTLIST produkt kód #CDATA název produktu #PCDATA foto EMPTY cena #CDATA> <! ATTLIST parametr název parametru #PCDATA hodnota parametru #PCDATA> ] > |
UML diagram tříd