hih kolo kolo2 07 id 709394 Nieznany

background image

- 1 -

(arkusz dodatkowy: ostateczne odpowiedzi należy zakreślić w odpowiednich kratkach na formularzu głównym)

I.

Przeanalizuj zawartość podanych plików stock.xml, stock.dtd oraz stock.xsd. Plik stock.xml może zawierać wystąpienia

elementów cpu, ram, hdd, floppy i cdrom w dowolnej liczbie (w tym zero) i w dowolnej kolejności, a pliki stock.dtd i stock.xsd
mogą być użyte zamiennie do walidacji dokumentu stock.xml. Mając to na uwadze zaproponuj uzupełnienia białych pól (pól
szarych nie uzupełniamy, zakładając że wiemy co się w nich powinno znaleźć):

1.1 [2] Wybierz najlepszy wariant uzupełnienia dla pola_1.1 w pliku stock.dtd:

A)

B)

<!ELEMENT stock ((cpu)*,(ram)*,(hdd)*,(cdrom)*,floppy?)>

<!ELEMENT stock (cpu | ram | hdd | cdrom | floppy)+>

C)

D)

<!ELEMENT stock ((cpu)+,(ram)+,(hdd)+,(cdrom)+,(floppy)+)>

<!ELEMENT stock (cpu | ram | hdd | cdrom | floppy)*>

1.2 [2] Wybierz najlepszy wariant uzupełnienia dla pola_1.2 w pliku stock.xsd:

A)

B)

<xs:element name="stock">
<xs:complexType>
<xs:choice minOccurs=”1” maxOccurs="unbounded">

<xs:element name="stock">
<xs:complexType>
<xs:choice maxOccurs="unbounded">

C)

D)

<xs:element name="stock">
<xs:complexType>
<xs:choice minOccurs=”0” maxOccurs="unbounded">

<xs:element
name="stock" minOccurs=”0” maxOccurs="unbounded">
<xs:complexType> <xs:choice >

1.3 [2] Wybierz najlepszy wariant uzupełnienia dla pól_1.3.* w pliku stock.xsd:

pole_

A)

B)

C)

D)

1.3.1

<xs:complexType >

<xs:complexType mixed="true"> <xs:complexType mixed=”true”> <xs:complexType >

1.3.2

--

--

<xs:attribute

name="clock"use="required"/>

<xs:attribute name="clock" />

1.3.3

<xs:attribute
name="clock"use="required"/>

<xs:attribute
name="clock" use="required"/>

--

--


II.

Plik inventory.xsl powinien transformować zawartość pliku stock.xml na tabelkę w HTML w postaci pokazanej na rysunku

inventory.jpg

. Wszystkie podzespoły z magazynu mają być w niej uporządkowane rosnąco względem ceny, (tj. zawartości

elementu price). Uzupełnij brakujące białe pola w pliku inventory.xsl:


2.1 [3] Wybierz najlepszy wariant uzupełnienia dla pola_2.1:

A)

B)

<xsl:apply-templates select="node()">
<xsl:sort select="./price/text()" data-type="number"/>
</xsl:apply-templates>

<xsl:apply-templates select="node()">
<xsl:sort select="././text()" data-type="number"/>
</xsl:apply-templates>

C)

D)

<xsl:apply-templates select="node()">
<xsl:sort select="text()" data-type="number"/>
</xsl:apply-templates>

<xsl:apply-templates select="node()">
<xsl:sort select="./price/text()"/>
</xsl:apply-templates>

2.2 [3] Wybierz najlepszy wariant uzupełnienia dla pola_2.2:

A)

B)

C)

D)

<td>
<xsl:value-of select="type/text()"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="./text()"/>
</td> <xsl:apply-templates/>

<td>
<xsl:value-of select="type/text()"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="./text()"/>
<xsl:apply-templates/> </td>

<td>
<xsl:value-of select="./text()"/>
<xsl:text>, </xsl:text>
<xsl:value-of select="type/text()"/>
</td> <xsl:apply-templates/>

<td>
<xsl:value-of select="type/text()"/>
, <xsl:value-of select="./text()"/>
</td>
<xsl:apply-templates/>


III.

Plik make.xsl powinien definiować przekształcenie zawartośći pliku stock.xml na opis zestawu komputera PC w postaci

pliku myPC.xml. Zestaw powinien zapewniać najdroższy procesor, RAM powyżej 1GB, HDD powyżej 100GB i w cenie
poniżej 700 PLN, z CDROM o prędkości równej 52 i bez stacji dyskietek. Uzupełnij brakujące białe pola w pliku make.xsl:

background image

- 2 -


3.1 [3] Wybierz najlepszy wariant uzupełnienia dla pola_3.1:


A)

B)

<xsl:sort select="./text()" data-type="number"
order="descending"/>
<xsl:choose>
<xsl:when test="position()=1">
<xsl:element name="processor">
<xsl:attribute name="clock">
<xsl:value-of select="@clock"/>
</xsl:attribute>

Procesor <xsl:value-of select="text()"/>;
</xsl:element>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>

<xsl:sort select="price/text()"order="descending"/>
<xsl:choose>
<xsl:when test="price/position()=1">
<xsl:element name="processor">
<xsl:attribute name="clock">
<xsl:value-of select="@clock"/>
</xsl:attribute>

Procesor <xsl:value-of select="text()"/>;
</xsl:element>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>

C)

D)

<xsl:sort select="price/text()" data-type="number"
order="descending"/>
<xsl:choose>
<xsl:when test="position()=1">
<xsl:element name="processor">
<xsl:attribute name="clock">
<xsl:value-of select="@clock"/>
</xsl:attribute>

Procesor <xsl:value-of select="text()"/>;
</xsl:element>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>

<xsl:sort select="price/text()" data-type="number"/>
<xsl:choose>
<xsl:when test="position()=1">
<xsl:element name="processor">
<xsl:attribute name="clock">
<xsl:value-of select="@clock"/>
</xsl:attribute>

Procesor <xsl:value-of select="text()"/>;
</xsl:element>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>

3.2 [3] Wybierz najlepszy wariant uzupełnienia dla pola_3.2:

A)

B)

<xsl:if test="number(substring-before(text(),' ')) &lt; '700'">
<xsl:if test="number(././text()) &gt; '100'">
<xsl:element name="disc">
HDD <xsl:value-of select="text()"/>;
</xsl:element>
</xsl:if>
</xsl:if>

<xsl:if test="number(substring-before(text(),' ')) &gt; '100'">
<xsl:if test="number(././text()) &lt; '700'">
<xsl:element name="disc">
HDD <xsl:value-of select="text()"/>;
</xsl:element>
</xsl:if>
</xsl:if>

C)

D)

<xsl:if test="number(substring-before(text(),' ')) &gt; '100'">
<xsl:if test="number(./price/text()) &lt; '700'">
<xsl:element name="disc">
HDD <xsl:value-of select="text()"/>;
</xsl:element>
</xsl:if>
</xsl:if>

<xsl:if test="number(substring-before(text(),' ')) &gt; '100'">
<xsl:element name="disc">
HDD <xsl:value-of select=".[number(./price/text()) &lt; '700']"/>;
</xsl:element>
</xsl:if>



IV.

Plik print.xsl powinien definiować przekształcenie zawartości pliku stock.xml na dokument print.pdf, składający się z

dwóch stron: okladka z tytułem dokumentu i adresem firmy, oraz strona z listą artykułów w grupach jak podano we
wspomnianym dokumencie (artykuły w każdej grupie posortowane leksykograficznie wg swojej ceny). Uzupełnij brakujące
białe pola w pliku print.xsl:

4.1 [2] Wybierz najlepszy wariant uzupełnienia dla pól_4.1.*:

pole_

A)

B)

C)

D)

4.1.1

<fo:flow
flow-name="xsl-region-after">

<fo:flow
flow-name="xsl-region-body">

<fo:flow
flow-name="xsl-region-before">

<fo:block
block-name="xsl-region-body">

4.1.2

<fo:block text-align="center"
font-style="italic"
font-size="24pt" color="green"
space-after="2cm" >

<fo:block text-align="center"
font-style="italic"
font-size="24pt" color="green"
space-before="2cm" >

<fo:block text-align="center"
font-style="italic"
font-size="24pt" color="green" >

<fo:block text-align="center"
font-style="italic"
font-size="24pt" color="green"
space-before="2cm" >

background image

- 3 -

4.2 [2] Wybierz najlepszy wariant uzupełnienia dla pola_4.2.*:

pole_

A)

B)

C)

D)

4.2.1

<xsl:call-template
name="price"/>;

<xsl:apply-templates
select="price"/>

<xsl:value-of select="price"/> <xsl:apply-templates

select="price"/>

4.2.2

<fo:block>

--

<fo:flow color=”blue”>

<fo:block>

4.2.3

<fo:block color=”blue”>
$<xsl:value-of select="."/>
</fo:block>
</fo:block>

<fo:inline color="blue">
$<xsl:value-of select="."/>
</fo:inline>

$<xsl:value-of select="."/>
</fo:flow>

<fo:block color=”blue”>
$<xsl:value-of select="."/>
</fo:block>
</fo:block>

<?xml version="1.0" encoding="UTF-16LE"?>
<!ELEMENT make (#PCDATA)>
<!ELEMENT cpu (#PCDATA|make|price)*>
<!ATTLIST cpu clock CDATA #REQUIRED>
<!ELEMENT type (#PCDATA)>
<!ELEMENT ram (#PCDATA|type|price)*>
<!ELEMENT hdd (#PCDATA|price)*>
<!ELEMENT cdrom (#PCDATA|price)*>
<!ELEMENT price (#PCDATA)>
<!ELEMENT floppy (#PCDATA|price)*>

<!

pole_1.1:??

stock.dtd:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema ... >

pole_1.2:??

<xs:element ref="cpu" ... />
<xs:element ref="ram" ... />
<xs:element name="hdd" ... />
<xs:element name="cdrom" ... />
<xs:element name="floppy" .../>

...

</xs:element>

<xs:element name="cpu">

pole_1.3.1:??

<xs:sequence>

<xs:element name="make" type="xs:NCName"/>

<xs:element ref="price"/>

pole_1.3.2:??

</xs:sequence>

pole_1.3.3:??


</xs:complexType>

</xs:element>


<xs:element name="ram">

...

</xs:element>

...

</xs:schema>

stock.xsd:

<stock>
<cpu clock="2.4 GHz">Athlon
<make>AMD</make>
<price>1200</price>
</cpu>

<ram>2 GB>
<type>DIMM 240-pin</type>
<price>500</price>
</ram>

<cpu clock="3,4 GHz">Pentium-4
<make>Intel</make>
<price>1120</price>
</cpu>

<hdd>80 GB
<price>250</price>
</hdd>

<ram>1 GB
<type>DIMM 200-pin</type>
<price>380</price>
</ram>

<hdd>320 GB
<price>600</price>
</hdd>

<cpu clock="2.4 GHz"> Core-2 Duo E6600
<make>Intel</make>
<price>1350</price>
</cpu>

<hdd>980 GB
<price>1320</price>
</hdd>

<cdrom>52x
<price>120</price>
</cdrom>

<floppy>Teac
<price>60</price>
</floppy>

</stock>

stock.xml

background image

- 4 -

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet >
<xsl:output method="html"/>

<xsl:template match="/">
<html><head>

<title>Spis inwentarza</title></head>

<body><table><tbody>

<tr><th>Asortyment</th>

<th>Opis</th>

<th>Cena</th></tr>

<xsl:apply-templates/>

</tbody></table>

</body></html>

</xsl:template>

<xsl:template match="stock">

pole_2.1:??

</xsl:template>

<xsl:template match="cpu">
<tr><td>Procesor</td>
<td></td>
<xsl:apply-templates/>
</tr>
</xsl:template>

<xsl:template match="ram">

<tr><td>Pamięć</td>

pole_2.2:??

</tr>
</xsl:template>

<xsl:template match="hdd">
<tr></tr>
</xsl:template>

<xsl:template match="cdrom">

<tr></tr>

</xsl:template>

<xsl:template match="floppy">
<tr>…</tr>
</xsl:template>

<xsl:template match="price">
<td>…</td>
<xsl:apply-templates/>
</xsl:template>

<xsl:template match="text()"/>
</xsl:stylesheet>

inventory.xsl:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0" ... >
<xsl:output ... />


<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>

<xsl:template match="stock">
<xsl:element name="myPC">
<xsl:call-template name="CPU"/>
<xsl:call-template name="RAM"/>
<xsl:call-template name="HDD"/>
<xsl:call-template name="CDROM"/>
</xsl:element>
</xsl:template>

<xsl:template name="CPU">
<xsl:for-each select="cpu">

pole_3.1:??

</xsl:for-each>
</xsl:template>

<xsl:template name="RAM">
<xsl:for-each select="ram">

...

</xsl:for-each>
</xsl:template>

<xsl:template name="HDD">
<xsl:for-each select="hdd">

pole_3.2:??


</xsl:for-each>
</xsl:template>

<xsl:template name="CDROM">
<xsl:for-each select="cdrom">

...

</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

make.xsl

background image

- 5 -

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE myPC SYSTEM "myPC.dtd">
<myPC>
<processor clock="2.4 GHz">
Procesor Core-2 Duo E6600;
</processor>
<memory type="DIMM">
RAM 2 GB;
</memory>
<disc>
HDD 320 GB;
</disc>
<cdrom speed="52">
CDROM 52x;
</cdrom>
</myPC>

myPC.xml

inventory.jpg:

background image

- 6 -

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl= “...” xmlns:fo="..." ...>

<xsl:template match="/">
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">

...

<fo:page-sequence master-name="okladka">

pole_4.1.1:??

<fo:block text-align="center" font-size="30pt">
Lista dostepnych artykulow
</fo:block>

pole_4.1.2:??

Magazyn czesci komputerowych
</fo:block>
<fo:block text-align="center" font-size="12pt" color="grey" >
Gdansk, ul.Kolokwialna 1
</fo:block>

...

</fo:page-sequence>
<fo:page-sequence master-name="strona" ... >

...

</fo:page-sequence>
</fo:root>
</xsl:template>

<xsl:template match="stock">

...

</xsl:template>

<xsl:template match="ram | hdd | floppy | cdrom">

...

</xsl:template>

<xsl:template match="cpu">
<fo:block space-after="3mm" margin-left="1cm">
<xsl:value-of select="make"/><xsl:text> </xsl:text>
<xsl:value-of select="text()"/>
(<xsl:value-of select="@clock"/>)

pole_4.2.1:??

</fo:block>
</xsl:template>

<xsl:template match="price">

pole_4.2.2:??

<fo:leader leader-length="40mm"
leader-pattern="dots" rule-thickness="2pt"/>

pole_4.2.3:??

</xsl:template>

<xsl:template match="type">

...

</xsl:template>

</xsl:stylesheet>

print.xsl

print.pdf


Wyszukiwarka

Podobne podstrony:
HYDROLOGIA 07 id 207788 Nieznany
I CSK 304 07 1 id 208210 Nieznany
Fizjologia Cwiczenia 07 id 1743 Nieznany
III CSK 302 07 1 id 210245 Nieznany
G2 PB 02 B Rys 3 07 id 185395 Nieznany
kolo zebate Uklad1 id 237317 Nieznany
I KOLO INSTALACJE pdf id 208281 Nieznany
Bazy danych w03 07 id 81702 Nieznany
CwiczenieArcGIS 07 id 125941 Nieznany
DAB 07 id 130775 Nieznany
III CZP 65 07 id 210286 Nieznany
EGK 07 id 151005 Nieznany
06 07 id 418349 Nieznany (2)
ais 07 id 53437 Nieznany (2)
Bazy danych w02 07 id 81701 Nieznany
Bazy danych w13 07 id 81707 Nieznany
Bazy danych 07 id 81462 Nieznany (2)

więcej podobnych podstron