Skip to content
Open

test #46

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions books.dtd
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!ELEMENT bookstore (book*)>
<!ELEMENT book (title, year, price, author+)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT year (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ELEMENT author (#PCDATA)>

<!ATTLIST book
category CDATA #REQUIRED
cover (hardpack | paperpack) "paperback" #IMPLIED>
<!ATTLIST title
lang CDATA #REQUIRED>
6 changes: 4 additions & 2 deletions books.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
<bookstore>
<?xml-stylesheet type="text/xsl" href="task24.xsl"?>
<bookstore xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="books.xsd">
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
Expand All @@ -21,7 +23,7 @@
<year>2003</year>
<price>49.99</price>
</book>
<book category="web" cover="paperback">
<book category="web" cover="paperpack">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
Expand Down
71 changes: 71 additions & 0 deletions books.xsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="bookstore" type="bookstore_type"/>
<xs:element name="book" type="book_type"/>

<xs:complexType name="bookstore_type">
<xs:sequence>
<xs:element ref="book" minOccurs="0" maxOccurs="100"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="book_type">
<xs:complexContent>
<xs:extension base="book_type_elements">
<xs:attribute name="category" type="xs:string" use="required"/>
<xs:attribute name="cover" use="optional">
<xs:simpleType>
<xs:restriction>
<xs:enumeration value="hardpack"/>
<xs:enumeration value="paperpack"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>

<xs:complexType name="book_type_elements">
<xs:sequence>
<xs:element name="title" block="">
<xs:complexType>
<xs:complexContent>
<xs:extension base="title_type">
<xs:attribute name="lang" type="lang_type" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="author" type="xs:string" minOccurs="1" maxOccurs="100"/>
<xs:element name="year">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minExclusive value="1900"/>
<xs:maxInclusive value="2014"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="price">
<xs:simpleType>
<xs:restriction base="xs:double">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>

<xs:simpleType name="lang_type">
<xs:restriction>
<xs:length value="2"/>
</xs:restriction>
</xs:simpleType>

<xs:simpleType name="title_type">
<xs:restriction>
<xs:minLength value="2"/>
<xs:maxLength value="30"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
4 changes: 4 additions & 0 deletions student.dtd
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
<!ELEMENT student EMPTY>
<!ATTLIST student
fullname CDATA #REQUIRED
group (К6-361|К6-362) #REQUIRED
>
3 changes: 3 additions & 0 deletions student.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE student SYSTEM "student.dtd">
<student fullname="Ivanov Nikolay Vyacheslavovich" group="К6-361"/>
1 change: 1 addition & 0 deletions task16
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
//book
1 change: 1 addition & 0 deletions task17
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
//book[@cover]
1 change: 1 addition & 0 deletions task18
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
//book[./year = 2003]
1 change: 1 addition & 0 deletions task19
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
//book[./year >= 30 and ./year < 40]
8 changes: 8 additions & 0 deletions task20.xsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="//book">
<xsl:value-of select="./title/text()"/>
<xsl:if test="position() != last()"> , </xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
9 changes: 9 additions & 0 deletions task21.xsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="//book">
<xsl:sort order="ascending" select="./price" data-type="number"/>
<xsl:value-of select="./title/text()"/>
<xsl:if test="position() != last()"> , </xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
9 changes: 9 additions & 0 deletions task22.xsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="//book">
<xsl:value-of select="./title/text()"/>
<xsl:if test="count(./author) &gt; 1">*</xsl:if>
<xsl:if test="position() != last()"> , </xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
11 changes: 11 additions & 0 deletions task23.xsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="//book">
<xsl:value-of select="./title/text()"/>
<xsl:if test="./price &gt; 30">&gt;30</xsl:if>
<xsl:if test="./price &lt; 30">&lt;30</xsl:if>
<xsl:if test="./price = 30">=30</xsl:if>
<xsl:if test="position() != last()"> , </xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
28 changes: 28 additions & 0 deletions task24.xsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>

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

<xsl:template match="//book">
<book>
<xsl:attribute name="title">
<xsl:value-of select="./title"/>
</xsl:attribute>
<xsl:attribute name="year">
<xsl:value-of select="./year"/>
</xsl:attribute>
<xsl:for-each select="./author">
<author>
<xsl:attribute name="name">
<xsl:value-of select="."/>
</xsl:attribute>
</author>
</xsl:for-each>
</book>
</xsl:template>
</xsl:stylesheet>