Skip to content

Instantly share code, notes, and snippets.

@mkf

mkf/NOTICE.md Secret

Last active February 27, 2020 03:10
Show Gist options
  • Save mkf/5ad36fb17a5340c095c7d25fc7eed002 to your computer and use it in GitHub Desktop.
Save mkf/5ad36fb17a5340c095c7d25fc7eed002 to your computer and use it in GitHub Desktop.
dwin_dtd
XML 
Exercises for the laboratory 
Design a data model for a library. A library contains a few storages.
Each storage contains shelves with books and magazines from a given
domain, eg. “Technology”, “Biology” or “Philosophy”. 
In the following exercises create an XML file with internal DTD. For
validation use eg.: https://www.xmlvalidation.com/ 
1. Declare the document root “library”. 
2. Make library contain one or more nodes “storage”. 
3. Make the “storage” node contain one or more nodes “shelf”. 
4. Declare an obligatory attribute “domain” of the node “shelf”. 
5. Design the nodes “book” and “magazine” with appropriate inner nodes,
such as title, author... 
Homework 
Design a data model for a shop. Shop has a few departments. Each
department has shelves with different merchandise, eg. “groceries”,
“clothes”. 
 
1. Design a data model similar to the library data model. (3 pkt) 
2. Design at least three types of products. (1 pkt) 
---
Treści zadań pochodzą ze strony dr Rafała Jaworskiego https://rjawor.home.amu.edu.pl
The tasks texts copied from the website of Dr Rafał Jaworski https://rjawor.home.amu.edu.pl
XML 
Ćwiczenia wykonywane podczas zajęć 
Zaprojektuj model danych, które mogą być przechowywane przez bibliotekę. Biblioteka posiada kilka magazynów. Każdy magazyn posiada półki z książkami i czasopismami z danej dziedziny,
np. “Technika”, “biologia”, “filozofia”. 
W poniższych zadaniach przygotuj plik XML z wewnętrznym schematem DTD.
Do walidacji możesz użyć np. usługi dostępnej pod adresem: https://www.xmlvalidation.com/ 
1. Zadeklaruj, że głównym elementem pliku powinien być węzeł “library”. 
2. Spraw, by węzeł “library” miał jeden lub więcej węzłów “storage”. 
3. Spraw, by węzeł “storage” posiadał jeden lub więcej węzłów “shelf”. 
4. Spraw,
by każdy węzeł “shelf” posiadał obowiązkowo atrybut “domain”. 
5. Zaprojektuj elementy “book” i “magazine”
z odpowiednimi węzłami wewnętrznymi (np. Tytuł, autor….) 
Zadania domowe 
Zaprojektuj model danych, które mogą być przechowywane przez sklep. Sklep posiada kilka działów. Każdy dział posiada półki z towarami innego typu,
np. “spożywcze”, “papiernicze”, “odzież”. 
 
1. Zaprojektuj model danych analogicznie, jak w przypadku biblioteki. (3
pkt) 
2. Zaprojektuj co najmniej trzy typy produktów. (1 pkt) 
---
Treści zadań pochodzą ze strony dr Rafała Jaworskiego https://rjawor.home.amu.edu.pl
The tasks texts copied from the website of Dr Rafał Jaworski https://rjawor.home.amu.edu.pl
<?xml version="1.0" ?>
<!DOCTYPE sklep [
<!ELEMENT sklep ((wlasciciel+) , (pracownik+) , (dzial+) ) >
<!ATTLIST sklep
nazwa CDATA #REQUIRED
adres CDATA #REQUIRED>
<!ELEMENT wlasciciel EMPTY>
<!ATTLIST wlasciciel
nazwisko CDATA #REQUIRED
hipoteka CDATA #IMPLIED >
<!ELEMENT pracownik EMPTY>
<!ATTLIST pracownik
stanowisko CDATA #REQUIRED
nazwisko CDATA #REQUIRED
nrPESEL CDATA #REQUIRED
dataUrodzenia CDATA #IMPLIED
pensja CDATA #IMPLIED >
<!ELEMENT dzial (polka+) >
<!ATTLIST dzial
nazwa CDATA #REQUIRED
numer CDATA #IMPLIED >
<!ELEMENT polka (zywnosc* | ubranie* | elektronika*) >
<!ATTLIST polka
opis CDATA #IMPLIED
wysokosc CDATA #REQUIRED
numer CDATA #IMPLIED >
<!ENTITY % towarattrs
'ean CDATA #REQUIRED
nazwa CDATA #REQUIRED
dostepnychJednostek CDATA #REQUIRED
krajPochodzenia CDATA #REQUIRED'>
<!ELEMENT ubranie (surowiec+) >
<!ATTLIST ubranie %towarattrs;
marka CDATA #IMPLIED >
<!ELEMENT surowiec EMPTY >
<!ATTLIST surowiec
nazwa CDATA #REQUIRED
zawartosc CDATA #IMPLIED >
<!ELEMENT zywnosc (skladnik+) >
<!ATTLIST zywnosc %towarattrs;
dataPrzydatnosciDS CDATA #REQUIRED>
<!ELEMENT skladnik (skladnik*) >
<!ATTLIST skladnik
nazwa CDATA #REQUIRED
zawartosc CDATA #IMPLIED
kodE CDATA #IMPLIED >
<!ELEMENT elektronika EMPTY >
<!ATTLIST elektronika %towarattrs;
numerSeryjny CDATA #REQUIRED
model CDATA #REQUIRED
producent CDATA #REQUIRED >
]>
<sklep nazwa="Osiedlowy" adres="Kowalskiego 2">
<wlasciciel nazwisko="Janusz Nowak"/>
<wlasciciel nazwisko="Halina Nowak-Paździoch" hipoteka="ING Bank Śląski"/>
<pracownik nazwisko="Brajan Nowak" stanowisko="kierownik" nrPESEL="95040112344" dataUrodzenia="1995-04-01"
pensja="1000"/>
<pracownik nazwisko="Olga Łęcka-Dorsey" stanowisko="SEO consultant" pensja="2000" nrPESEL="94123165431"/>
<dzial nazwa="ubrania">
<polka wysokosc="13">
<ubranie ean="5100156561" nazwa="kolczuga" krajPochodzenia="Troja" marka="Paris">
<surowiec nazwa="stal" zawartosc="99%">
<surowiec nazwa="węgiel" zawartosc="10%"/>
<surowiec nazwa="mithril" zawartosc="0.01%"/>
</surowiec>
</ubranie>
</polka>
</dzial>
<dzial nazwa="elektronika">
<polka wysokosc="133">
<elektronika ean="12345" nazwa="beacon NFC" krajPochodzenia="Chiny" producent="AprBrother" model="AprilBeacon"
numerSeryjny="4FAD-03AF"/>
</polka>
</dzial>
<dzial nazwa="zywnosc">
<polka wysokosc="5">
<zywnosc ean="5" nazwa="hummus" krajPochodzenia="Niemcy" dostepnychJednostek="5" dataPrzydatnosciDS="2023-02-02">
<skladnik nazwa="ciecierzyca"/>
<skladnik nazwa="olej z sezamu">
<skladnik nazwa="sezam" zawartosc="110%"/>
</skladnik>
</zywnosc>
</polka>
</dzial>
</sklep>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment