Team Echo
Team Echo Võrgurakendused II
- Mihkel Vajak
- Janno Oolo
- Mari-Liis Oldja
- Arti Zirk
- Joosep Voolma
XML
<nowiki>
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="Echo-html.xslt"?>
<echo>
<videos>
<video id="1" view-count="69" author-id="1">
<title>Mihkli rännak</title>
<streams>
<stream type="primary">
<stream-url mime-type="video/webm">https://u.wut.ee/ookutsu.webm</stream-url>
<stream-url mime-type="audio/mp3">https://media/id/audio.mp3</stream-url>
<stream-url mime-type="video/mp4">https://media/id/video.mp4</stream-url>
</stream>
<stream type="secondary">
<stream-url mime-type="audio/*">https://media/id/audio2</stream-url>
</stream>
</streams>
<metadata>
<description>
Väga kurb
</description>
</metadata>
<comments>
<comment author-id="1" post-timestamp="1489683470">
Norm värk
</comment>
</comments>
</video>
<video id="2" view-count="69" author-id="2">
<title>Lahe video</title>
<streams>
<stream type="primary">
<stream-url mime-type="video/webm">https://u.wut.ee/youfuckedup.webm</stream-url>
<stream-url mime-type="audio/mp3">https://media/id/audio.mp3</stream-url>
<stream-url mime-type="video/mp4">https://media/id/video.mp4</stream-url>
</stream>
<stream type="secondary">
<stream-url mime-type="audio/*">https://media/id/audio2</stream-url>
</stream>
</streams>
<metadata>
<description>
See on väga äge video on see
</description>
</metadata>
<comments>
<comment author-id="1" post-timestamp="1489683470">
Norm värk
</comment>
<comment author-id="2" post-timestamp="1489683470">
Norm värk 2
</comment>
</comments>
</video>
<video id="3" view-count="69" author-id="3">
<title>Nalja kah</title>
<streams>
<stream type="primary">
<stream-url mime-type="video/webm">https://u.wut.ee/perlvspython.webm</stream-url>
<stream-url mime-type="audio/mp3">https://media/id/audio.mp3</stream-url>
<stream-url mime-type="video/mp4">https://media/id/video.mp4</stream-url>
</stream>
<stream type="secondary">
<stream-url mime-type="audio/*">https://media/id/audio2</stream-url>
</stream>
</streams>
<metadata>
<description>
Väga hea huumor
</description>
</metadata>
<comments>
<comment author-id="1" post-timestamp="1489683470">
Norm värk
</comment>
</comments>
</video>
<video id="4" view-count="69" author-id="1">
<title>Arti areng</title>
<streams>
<stream type="primary">
<stream-url mime-type="video/webm">https://u.wut.ee/sittmissitt.webm</stream-url>
<stream-url mime-type="audio/mp3">https://media/id/audio.mp3</stream-url>
<stream-url mime-type="video/mp4">https://media/id/video.mp4</stream-url>
</stream>
<stream type="secondary">
<stream-url mime-type="audio/*">https://media/id/audio2</stream-url>
</stream>
</streams>
<metadata>
<description>
Väga kurb
</description>
</metadata>
<comments>
<comment author-id="1" post-timestamp="1489683470">
Imelik oli
</comment>
</comments>
</video>
<video id="4" view-count="69" author-id="4">
<title>Oldja laulud</title>
<streams>
<stream type="primary">
<stream-url mime-type="video/webm">https://u.wut.ee/healtscare.webm</stream-url>
<stream-url mime-type="audio/mp3">https://media/id/audio.mp3</stream-url>
<stream-url mime-type="video/mp4">https://media/id/video.mp4</stream-url>
</stream>
<stream type="secondary">
<stream-url mime-type="audio/*">https://media/id/audio2</stream-url>
</stream>
</streams>
<metadata>
<description>
Draama Queen
</description>
</metadata>
<comments>
<comment author-id="1" post-timestamp="1489683420">
Norm värk
</comment>
</comments>
</video>
<video id="4" view-count="69" author-id="5">
<title>Osa 13 ehk Oolo kadumine</title>
<streams>
<stream type="primary">
<stream-url mime-type="video/webm">https://u.wut.ee/healtscare.webm</stream-url>
<stream-url mime-type="audio/mp3">https://media/id/audio.mp3</stream-url>
<stream-url mime-type="video/mp4">https://media/id/video.mp4</stream-url>
</stream>
<stream type="secondary">
<stream-url mime-type="audio/*">https://media/id/audio2</stream-url>
</stream>
</streams>
<metadata>
<description>
Lihtsalt kadus ära
</description>
</metadata>
<comments>
<comment author-id="1" post-timestamp="1489683470">
Norm värk
</comment>
</comments>
</video>
</videos>
<users>
<user id="1">
<username>admin</username>
<full-name>Admin</full-name>
</user>
<user id="2">
<username>oolo</username>
<full-name>Oolo</full-name>
</user>
<user id ="3">
<username>zirk</username>
<full-name>Hr. Zirk</full-name>
</user>
</users>
<lists>
<list owner-id="1">
<video id="1" timestamp-added="1489684373"></video>
<video id="3" timestamp-added="1489684379"></video>
</list>
</lists>
</echo>
</nowiki>
==XSLT XML==
<source lang="xml">
<nowiki>
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<videos>
<xsl:for-each select="echo/videos/video">
<video>
<xsl:variable name="author-id" select="@author-id"/>
<title>
<xsl:value-of select="title"/>
</title>
<xsl:copy-of select="streams/stream[@type='primary']" />
<autor>
<xsl:copy-of select="/echo/users/user[@id=$author-id]" />
</autor>
<description>
<xsl:value-of select="metadata/description"/>
</description>
<comments>
<xsl:for-each select="comments/comment">
<xsl:variable name="comment-author-id" select="@author-id"/>
<comment>
<text><xsl:value-of select="." /></text>
<xsl:copy-of select="/echo/users/user[@id=$comment-author-id]/username" />
<xsl:copy-of select="/echo/users/user[@id=$comment-author-id]/full-name" />
</comment>
</xsl:for-each>
</comments>
</video>
</xsl:for-each>
</videos>
</xsl:template>
</xsl:stylesheet>
</nowiki>
==XSLT HTML==
<nowiki>
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<html>
<title>Media Kogumik</title>
<xsl:for-each select="echo/videos/video">
<div>
<xsl:variable name="author-id" select="@author-id"/>
<h3>
<xsl:value-of select="title"/>
</h3>
<h4>
<xsl:value-of select="/echo/users/user[@id=$author-id]/full-name" />
</h4>
<video controls="" loop="">
<xsl:for-each select="streams/stream[@type='primary']">
<xsl:for-each select="stream-url">
<source>
<xsl:attribute name="type">
<xsl:value-of select="@mime-type"/>
</xsl:attribute>
<xsl:attribute name="src">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:for-each> </xsl:for-each> </video>
<xsl:value-of select="metadata/description"/>
Komentaarid:
-
<xsl:for-each select="comments/comment">
-
<xsl:variable name="comment-author-id" select="@author-id"/>
<xsl:value-of select="." />
Autor: <xsl:value-of select="/echo/users/user[@id=$comment-author-id]/full-name" />
</xsl:for-each>
</xsl:for-each> </html> </xsl:template>
</xsl:stylesheet> </nowiki>
XSD
<source lang="xml"> <?xml version="1.0" encoding="utf-8"?> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="echo"> <xs:complexType> <xs:sequence> <xs:element name="videos"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="video"> <xs:complexType> <xs:sequence> <xs:element name="title" type="xs:string" /> <xs:element name="streams"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="stream"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="stream-url"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="mime-type" type="xs:string" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="type" type="xs:string" use="required" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="metadata"> <xs:complexType> <xs:sequence> <xs:element name="description" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="comments"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="comment"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="author-id" type="xs:unsignedInt" use="required" /> <xs:attribute name="post-timestamp" type="xs:unsignedInt" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="id" type="xs:unsignedInt" use="required" /> <xs:attribute name="view-count" type="xs:unsignedInt" use="required" /> <xs:attribute name="author-id" type="xs:unsignedInt" use="required" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="users"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="user"> <xs:complexType> <xs:sequence> <xs:element name="username" type="xs:string" /> <xs:element name="full-name" type="xs:string" /> </xs:sequence> <xs:attribute name="id" type="xs:unsignedInt" use="required" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="lists"> <xs:complexType> <xs:sequence> <xs:element name="list"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="video"> <xs:complexType> <xs:attribute name="id" type="xs:unsignedInt" use="required" /> <xs:attribute name="timestamp-added" type="xs:unsignedInt" use="required" /> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="owner-id" type="xs:unsignedInt" use="required" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>