Egzamin z przedmiotu Projektowanie języków XML 18.06.2013 Grupa A... imię i nazwisko. indeks Zadanie 1 2 3 4 5 6 7 Suma Punkty Max 6 5 5 6 6 6 6 40 Punkty Zadanie 1. Przyjrzyj się podanym dokumentom XML. Następnie wskaż poniżej które są poprawne, a które niepoprawne. W przypadku niepoprawnych podaj w kilku słowach jaki występuje błąd. Dokument 1 Dokument 2 <student plec="kobieta"> <cena> <imie>anna</imie> <waluta>złoty</waluta> <nazwisko>lewandowska</nazwisko> <data-wyst>12.03.2010</data-wyst> </student> <wystawiajacy>lexpsklep</wystawiajacy> <student plec="mężczyzna"> </cena> <imie>michał</imie> <nazwisko>raciak</nazwisko> </student> Dokument 3 Dokument 4 <biegi> <wynik> <zawodnik>jan Kowalski</zawodnik> <1bieg>10.4</1bieg> <2bieg>10.8</2bieg> </wynik> <wynik> <zawodnik>marcin Marcinkowski</zawodnik> <1bieg>9.1</1bieg> <2bieg>11.9</2bieg> </wynik> </biegi> 1 <produkty> <produkt id="a1"> <nazwa>pralka</nazwa> <firma>bosch</firma> <uzywany/><stan_dobry/> </produkt> <produkt id="c23"> <nazwa>laptop</nazwa> <firma>lenovo</firma> <uzywany> </uzywany> </produkt> </produkty> Dokument 5 Dokument 6 <rozmowa> <wyrazenie-arytmetyczne> <wpis uzytkownik="jasio"> <suma> Zdałem wczoraj egzamin z XML! <hahaha> <liczba>5</liczba> </wpis> <niewiadoma>x</niewiadoma> <wpis uzytkownik="ania"> <iloczyn> Nie wierzę! <lol> </suma> </wpis> <liczba>3</liczba> </rozmowa> <niewiadoma>4</niewiadoma> </iloczyn> </wyrazenie-arytmetyczne> Dokument 1:.. Dokument 2:.. Dokument 3:.. Dokument 4:.. Dokument 5:.. Dokument 6:..
Zadanie 2. Dla przedstawionego poniżej pliku DTD napisz poprawny i walidujący z nim plik XML o dowolnie uzupełnionych, ale niepustych danych. Kontakt.dtd <?xml version="1.0" encoding="utf-8"?> <!ENTITY % tel "tel-kom tel-stac"> <!ELEMENT kontakt (imie, nazwisko, (%tel;), adres, data-spotkania, data-spotkania+, strona*, gg?)> <!ELEMENT adres (ulica, nr-domu, miasto)> <!ELEMENT imie (#PCDATA)> <!ELEMENT nazwisko (#PCDATA)> <!ELEMENT tel-kom (#PCDATA)> <!ELEMENT tel-stac (#PCDATA)> <!ELEMENT ulica (#PCDATA)> <!ELEMENT nr-domu (#PCDATA)> <!ELEMENT miasto (#PCDATA)> <!ATTLIST miasto kod-pocztowy NMTOKEN #REQUIRED> <!ELEMENT data-spotkania (#PCDATA)> <!ELEMENT strona (#PCDATA)> <!ELEMENT gg (#PCDATA)> Kontakt.xml <!DOCTYPE kontakt SYSTEM "Kontakt.dtd"> 2
Zadanie 3. Uzupełnij tabelę wpisując w puste pola TAK jeśli napis u góry spełnia wzorzec po lewej stronie lub NIE jeśli nie spełnia. (już uzupełniona) napis wzorzec [a-ka-k][0-9][^abc] [a-ka-k]*[0-9]?. [a-k]+[a-k]+\d{1,3} ag88 CdK6 b35 A9a i7abc Zadanie 4. Dla podanych typów ze schematu XML zaznacz kółkiem, które elementy są z nim zgodne. Jest to test wielokrotnego wyboru (z czterech odpowiedzi poprawne mogą być cztery, trzy, dwie, jedna lub zero). <xsd:simpletype name="ocenytyp"> <xsd:list itemtype="xsd:decimal"/> <xsd:simpletype name="kodtyp"> <xsd:union> <xsd:simpletype> <xsd:restriction base="xsd:integer"> <xsd:mininclusive value="5"/> <xsd:maxinclusive value="18"/> </xsd:restriction> <xsd:simpletype> <xsd:restriction base="xsd:string"> <xsd:minlength value="5"/> <xsd:maxlength value="18"/> </xsd:restriction> </xsd:union> <xs:complextype name="osobatyp"> <xsd:choice> <xsd:element name="imie" type="xsd:string"/> <xsd:sequence> <xsd:element name="nazwisko" type="xsd:string"/> <xsd:element name="telefon" type="xsd:string"/> </xsd:sequence> </xsd:choice> </xs:complextype> a) <oceny>3 3.5 4 4.5 5</oceny> b) <oceny>dwa trzy cztery pięć<oceny> c) <oceny>5</oceny> d) <oceny>13.45 4.23</oceny> a) <kod>345</kod> b) <kod>17a</kod> c) <kod>6 abcd</kod> d) <kod>123456789123456789123</kod> a) <osoba> <imie>jan</imie> <nazwisko>kowalski</nazwisko> <telefon>123456789</telefon> b) <osoba> <nazwisko>kowalski</nazwisko> <telefon>123456789</telefon> c) <osoba> <imie>jan</imie> <nazwisko>kowalski</nazwisko> d) <osoba> <imie>jan</imie> 3
Zadadnie 5. Poniżej podano plik XML i plik XSLT transformujący go do prostej strony internetowej. Narysuj jak będzie wyglądała ta strona w przeglądarce. Uwzględnij to, jak będą przedstawione dane i jak będzie formatowany tekst. Plik XML <filmy> <film rok="1984"> <tytul>terminator</tytul> <rezyser>cameron</rezyser> <film rok="1999"> <tytul>matrix</tytul> <rezyser>wachowski</rezyser> <film rok="2009"> <tytul>avatar</tytul> <rezyser>cameron</rezyser> <film rok="1939"> <tytul>przeminęło z wiatrem</tytul> <rezyser>cukor, Wood</rezyser> </filmy> Plik XSLT <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="/"> <html> <body> <h2>filmy</h2> <table border="1"> <xsl:for-each select="filmy/film"> <xsl:sort select="tytul"/> <xsl:if test="@rok < 2000"> <tr> <td><u><xsl:value-of select="tytul"/></u></td> <td><i><xsl:value-of select="rezyser"/></i></td> </tr> </xsl:if> </table> </body> </html> </xsl:template> </xsl:stylesheet> Miejsce na rysunek (tekst i elementy graficzne): 4
Zadanie 6. Poniżej podano plik XML i plik XSLT transformujący go do prostego pliku tekstowego. Przedstaw zawartość tego pliku tekstowego. Plik XML <?xml version="1.0" encoding="iso-8859-1"?> <catalog> <cd year="1985"> <title>empire Burlesque</title> <artist>bob Dylan</artist> <country>usa</country> <company>columbia</company> <price>10.90</price> <cd year="1988"> <title>hide your heart</title> <artist>bonnie Tyler</artist> <country>uk</country> <company>cbs Records</company> <price>9.90</price> <cd year="1982"> <title>greatest Hits</title> <artist>dolly Parton</artist> <country>usa</country> <company>rca</company> <price>9.90</price> <cd year="1990"> <title>still got the blues</title> <artist>gary Moore</artist> <country>uk</country> <company>virgin records</company> <price>10.20</price> <cd year="1998"> <title>one night only</title> <artist>bee Gees</artist> <country>uk</country> <company>polydor</company> <price>10.90</price> </catalog> Plik XSLT <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="/"> <xsl:for-each select="catalog/cd"> <xsl:value-of select="artist[contains(string(),'ton')]"/> <xsl:for-each select="catalog/cd[@year > 1988]"> <xsl:value-of select="price"/> <xsl:for-each select="catalog/cd[position() mod 2 = 0]"> <xsl:value-of select="company"/> </xsl:template> </xsl:stylesheet> Miejsce na rozwiązanie (treść pliku): 5
Zadanie 7. Ilustrowanie danych specjalistycznych za pomocą XML. a) Poniżej przedstawiono dokument MathML z zakodowanym wzorem matematycznym. Napisz ten wzór po prawej stronie używając standardowej notacji matematycznej. <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" "http://www.w3.org/math/dtd/mathml2/mathml2.dtd"> <math xmlns="http://www.w3.org/1998/math/mathml"> <mrow> <msup><mi>a</mi><mi>n</mi></msup> <mo>=</mo><mn>1</mn><mo>+</mo> <mfrac> <mi>π</mi> <mrow> <mi>c</mi> <mo>-</mo> <mfrac> <mrow> <mi>a</mi> <mo>&invisibletimes;</mo> <mi>b</mi> </mrow> <msqrt> <mi>d</mi> </msqrt> </mfrac> </mrow> </mfrac> </mrow> </math> b) Poniżej przedstawiono dokument SVG z zakodowanym rysunkiem. Narysuj ten rysunek po prawej stronie starając się zachować proporcje. <?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/graphics/svg/1.1/dtd/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <circle cx="100" cy="90" r="40" stroke="black" stroke-width="2" fill="white"/> <circle cx="300" cy="90" r="40" stroke="black" stroke-width="2" fill="white"/> <line x1="100" y1="50" x2="300" y2="50" style="stroke:black;stroke-width:2"/> </svg> 6