Kurs XML - Zadanie 5.

Treść

Sklep sprzedaje płyty DVD. Każda płyta ma swój tytuł i cenę. Płyty, które aktualnie są na wyprzedaży (i tylko takie) mają przypisany rabat w pewnej wysokości. Opis płyty przecenionej powinien wygladać tak:

<dvd>
        <title>Alternatywy 4</title>
        <price>10</price>
        <discount>5</discount>
</dvd>

Opis płyty nieprzecenionej powinien wygladać tak:

<dvd>
        <title>Zmiennicy</title>
        <price>10</price>
</dvd>

Zaproponuj odpowiednią regułę DTD opisującą zawartość elementu dvd, tak aby móc ją wykorzystać do walidowania plików o następującym formacie. Postaraj się wymusić jak największą zgodność ze wzorem. W razie problemów zaproponuj ew. modyfikacje formatu.

<shop>
	<ordinary>
		<!-- wyłącznie płyty nieprzecenione -->
		<dvd>
			<title>Zmiennicy</title>
			<price>10</price>
		</dvd>
		<!-- itd -->
	</ordinary>
	<onsale>
		<!-- wyłącznie płyty przecenione -->
		<dvd>
			<title>Alternatywy 4</title>
			<price>10</price>
			<discount>5</discount>
		</dvd>
		<!-- itd -->
	</onsale>
</shop>

Rozwiązanie

zadanie5.xml
<?xml version="1.0" ?>
<!DOCTYPE shop
[
        <!ELEMENT ordinary (dvd-ord)>
        <!ELEMENT onsale (dvd-sale)>
        <!ELEMENT dvd-ord (title, price)>
        <!ELEMENT dvd-sale (title, price, discount)>
        <!ELEMENT title (#PCDATA)>
        <!ELEMENT price (#PCDATA)>
        <!ELEMENT discount (#PCDATA)>
]>
 
 <shop>
         <ordinary>
                 <dvd-org>
                         <title>Zmiennicy</title>
                         <price>10</price>
                 </dvd-org>
         </ordinary>
         <onsale>
                 <dvd-sale>
                         <title>Alternatywy 4</title>
                         <price>10</price>
                         <discount>5</discount>
                 </dvd-sale>
         </onsale>
 </shop>
 
kurs_xml/10.zadanie05.txt · ostatnio zmienione: 2010/03/27 10:20 przez d
 
Wszystkie treści w tym wiki, którym nie przyporządkowano licencji, podlegają licencji:MIT License
Recent changes RSS feed