Seminář 1 - XML
Zdroje
- Text dr. Krajči k semináři
- Doprovodné zdrojové kódy k textu. S úpravami.
- Simple API for XML
- Streaming API for XML
- Document Object Model
Úkol č. 1
- Vyřešené úkoly zašlete do 27.2.2023 17:00 CET na email tomas.urbanec@upol.cz s předmětem: JJ2-1.
- Zasílejte pouze zdrojové kódy.
- Pokud chcete zdrojové kódy poslat zkomprimované, použijte buď formát zip nebo kombinaci tar+gz.
- Uvažujme následující typ XML souboru:
<?xml version="1.0" ?>
receipt total="1642">
<name>ACME corp.</name>
<itin>CZ12345678</itin>
<items>
<item amount="50" unitPrice="24">
<
Nitroglycerinitem>
</item amount="4" unitPrice="100">
<
Jet Propelled Pogo Stickitem>
</item amount="1" unitPrice="42">
<
Hen Grenadeitem>
</items>
</receipt> </
- Navrhněte třídu
Receipt
, do které bude možné uložit všechna data z daného XML souboru, přečíst hodnoty a vypsat je.
- Uvažujme rozhraní:
public interface ReceiptReaderWriter {
/**
* Nacte ze streamu XML soubor a dle nej vytvori
* prislusny objekt reprezentujici uctenku
*/
public Receipt loadReceipt(InputStream input)
throws Exception;
/**
* Ulozi do prislusneho streamu XML soubor
* predstavujici danou uctenku
*/
public void storeReceipt(OutputStream output,
)
Receipt receiptthrows Exception;
}
- Implementujte příslušné rozhraní jako třídy:
- DOMReceiptReaderWriter - aby využívalo DOM API
- SAXReceiptReaderWriter - aby využívalo SAX API (pokus o zápis v tomto případě skončí vždy výjimkou)
- StAXReceiptReaderWriter - aby využívalo StAX API