Meeskond:InsertNameHere: Difference between revisions
From ICO wiki
Jump to navigationJump to search
m →XSLT |
m →XML |
||
Line 7: | Line 7: | ||
===XML=== | ===XML=== | ||
<source lang="xml" collapse="true" first-line="2"> | <source lang="xml" collapse="true" first-line="2"> | ||
<?xml version="1.0" encoding="utf-8" ?> | <?xml version="1.0" encoding="utf-8" ?> | ||
<?xml-stylesheet type="text/xsl" href="Contacts.xslt"?> | <?xml-stylesheet type="text/xsl" href="Contacts.xslt"?> | ||
Line 12: | Line 13: | ||
<contact> | <contact> | ||
<name title="Ms"><![CDATA[ | <name title="Ms"><![CDATA[Jebediah Kerman]]></name> | ||
<contactInfo> | <contactInfo> | ||
<infoType type="phone"> | <infoType type="phone"> | ||
Line 22: | Line 23: | ||
</infoType> | </infoType> | ||
<infoType type="email"> | <infoType type="email"> | ||
<data type="work"><![CDATA[ | <data type="work"><![CDATA[Jeb@kmail.kom]]></data> | ||
<data type="home"><![CDATA[ | <data type="home"><![CDATA[jebDud678@kmail.kom]]></data> | ||
</infoType> | </infoType> | ||
</contactInfo> | </contactInfo> | ||
Line 34: | Line 35: | ||
<contact> | <contact> | ||
<name><![CDATA[ | <name><![CDATA[Bill Kerman]]></name> | ||
<contactInfo> | <contactInfo> | ||
<infoType type="email"> | <infoType type="email"> | ||
<data><![CDATA[ | <data><![CDATA[billyboy68@kmail.internet]]></data> | ||
</infoType> | </infoType> | ||
</contactInfo> | </contactInfo> | ||
Line 45: | Line 46: | ||
<group group="work"/> | <group group="work"/> | ||
</groups> | </groups> | ||
</contact> | |||
<contact> | |||
<name><![CDATA[Bob Kerman]]></name> | |||
<contactInfo> | |||
<infoType type="address"> | |||
<data><![CDATA[KSS]]></data> | |||
</infoType> | |||
</contactInfo> | |||
<notes/> | |||
<groups/> | |||
</contact> | </contact> | ||
</contacts> | </contacts> |
Revision as of 02:09, 9 March 2015
Meeskond
- Villu Viirsalu
XML
XML
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="Contacts.xslt"?>
<contacts>
<contact>
<name title="Ms"><![CDATA[Jebediah Kerman]]></name>
<contactInfo>
<infoType type="phone">
<data type="mobile"><![CDATA[54321557]]></data>
</infoType>
<infoType type="address">
<data type="work"><![CDATA[Address 87-2]]></data>
<data type="home"><![CDATA[Highlander 5-987-5.23, Mun]]></data>
</infoType>
<infoType type="email">
<data type="work"><![CDATA[Jeb@kmail.kom]]></data>
<data type="home"><![CDATA[jebDud678@kmail.kom]]></data>
</infoType>
</contactInfo>
<notes />
<groups>
<group group="friend" />
<group group="family" />
</groups>
</contact>
<contact>
<name><![CDATA[Bill Kerman]]></name>
<contactInfo>
<infoType type="email">
<data><![CDATA[billyboy68@kmail.internet]]></data>
</infoType>
</contactInfo>
<birthday>2000-12-12</birthday>
<notes><![CDATA[these are some notes]]></notes>
<groups>
<group group="work"/>
</groups>
</contact>
<contact>
<name><![CDATA[Bob Kerman]]></name>
<contactInfo>
<infoType type="address">
<data><![CDATA[KSS]]></data>
</infoType>
</contactInfo>
<notes/>
<groups/>
</contact>
</contacts>
XSD
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="contacts">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="contact">
<xs:complexType>
<xs:sequence>
<xs:element name="name">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="title" type="xs:string" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="contactInfo">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="infoType">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="data">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="type" type="xs:string" use="optional" />
</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 minOccurs="0" name="birthday" type="xs:date"/>
<xs:element name="notes" />
<xs:element name="groups">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="group">
<xs:complexType>
<xs:attribute name="group" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XSLT
<?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>Contacts</title>
<body>
<h2>Contacts</h2>
<table border="1">
<!--header-->
<tr>
<th>Name</th>
<th>Birthday</th>
<th>Phone</th>
<th>Email</th>
<th>Address</th>
<th>Notes</th>
<th>Groups</th>
</tr>
<!--else row-->
<!--for each contact in contacts-->
<xsl:for-each select="contacts/contact">
<!--row-->
<tr>
<!--name-->
<td>
<xsl:value-of select="name"/>
</td>
<!--birthday-->
<td>
<xsl:value-of select="birthday"/>
</td>
<!--phones-->
<td>
<ul>
<xsl:for-each select="contactInfo/infoType[@type='phone']/data">
<li>
<xsl:value-of select="."/>
</li>
</xsl:for-each>
</ul>
</td>
<!--emails-->
<td>
<ul>
<xsl:for-each select="contactInfo/infoType[@type='email']/data">
<li>
<xsl:value-of select="." />
</li>
</xsl:for-each>
</ul>
</td>
<!--addresses-->
<td>
<ul>
<xsl:for-each select="contactInfo/infoType[@type='address']/data">
<li>
<xsl:value-of select="." />
</li>
</xsl:for-each>
</ul>
</td>
<!--notes-->
<td>
<xsl:value-of select="notes"/>
</td>
<!--groups-->
<td>
<ul>
<xsl:for-each select="groups/group">
<li>
<xsl:value-of select="@group" />
</li>
</xsl:for-each>
</ul>
</td>
</tr>
</xsl:for-each>
<!--end of contact in contacts-->
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>