Existem dois esquemas XSD utilizados no sistema: o primeiro é referente a uma lista de recomendações de objectos de conteúdo, a segunda é referente à representação de um item. B.2.1 Esquema XSD de Conteúdo <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://iex.ptin.pt/ctx/content" xmlns:tns="http://iex.ptin.pt/ctx/content">
Artefactos
<xsd:element name="content" type="tns:ContentType" /> <xsd:complexType name="SourceType">
<!-- URI fonte do proprio conteudo --> <xsd:attribute name="src" type="xsd:string"
use="required" />
<!-- qualidade do conteudo e’ opcional
e ajuda a decidir que URI escolher em cenario de streaming com base na largura de banda disponivel -->
<xsd:attribute name="quality" type="xsd:string"
use="optional" /> </xsd:complexType>
<xsd:complexType name="ContentType"> <xsd:sequence>
<xsd:element name="tags" minOccurs="0" maxOccurs="1"> <xsd:complexType>
<xsd:sequence>
<xsd:element name="tag"
type="tns:TagType" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element>
<xsd:element name="people" minOccurs="0" maxOccurs="1"> <xsd:complexType>
<xsd:sequence>
<xsd:element name="person"
type="tns:PersonType" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element>
<xsd:element name="sources"
minOccurs="0"
maxOccurs="1"> <xsd:complexType>
<xsd:sequence>
<xsd:element name="source"
type="tns:SourceType"
Artefactos maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <!-- descricao / sinopse -->
<xsd:element name="description"
type="xsd:string" minOccurs="0"
maxOccurs="1" />
<!-- titulo do programa -->
<xsd:element name="title" type="xsd:string"
minOccurs="1" maxOccurs="1" /> <!-- titulo do episodio -->
<xsd:element name="episode_title"
type="xsd:string" minOccurs="0"
maxOccurs="1" />
<!-- numero do episodio -->
<xsd:element name="episode_number"
type="xsd:integer" minOccurs="0"
maxOccurs="1" />
<!-- numero de temporada -->
<xsd:element name="season_number"
type="xsd:integer" minOccurs="0"
maxOccurs="1" />
<!-- duracao em minutos --> <xsd:element name="duration"
type="xsd:integer" minOccurs="0"
maxOccurs="1" /> <!-- hora de inicio -->
<xsd:element name="start_at"
type="xsd:dateTime" minOccurs="0"
maxOccurs="1" /> <!-- hora de fim -->
<xsd:element name="end_at"
type="xsd:dateTime" minOccurs="0"
maxOccurs="1" /> <!-- canal -->
<xsd:element name="channel"
type="xsd:string" minOccurs="0"
maxOccurs="1" /> <!-- faixa etaria -->
<xsd:element name="age_classification"
type="xsd:string" minOccurs="0"
maxOccurs="1" />
<!-- categorias (e.g. drama, comedia, etc) -->
<xsd:element name="categories" minOccurs="0" maxOccurs="1"> <xsd:complexType>
Artefactos
<xsd:sequence>
<xsd:element name="category"
type="xsd:string" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:sequence>
<xsd:attribute name="type" type="tns:ContentMediaType"
use="required" />
<xsd:attribute name="purpose" type="tns:ContentPurposeType"
use="required" /> </xsd:complexType>
<xsd:complexType name="PersonType">
<xsd:attribute name="role" type="tns:PeopleRoleType"
use="required" />
<xsd:attribute name="name" type="xsd:string"
use="required" /> </xsd:complexType>
<xsd:simpleType name=’TagType’>
<xsd:restriction base="xsd:string" /> </xsd:simpleType>
<xsd:simpleType name=’PeopleRoleType’> <xsd:restriction base=’xsd:string’>
<!-- produtor -->
<xsd:enumeration value=’producer’ /> <!-- realizador -->
<xsd:enumeration value=’director’ /> <!-- argumentista -->
<xsd:enumeration value=’argument’ /> <!-- actor / atriz -->
<xsd:enumeration value=’actor’ /> <!-- apresentador -->
<xsd:enumeration value=’hoster’ /> </xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name=’ContentMediaType’> <xsd:restriction base=’xsd:string’>
<xsd:enumeration value=’video’ /> <xsd:enumeration value=’audio’ /> <xsd:enumeration value=’picture’ />
Artefactos
</xsd:restriction> </xsd:simpleType>
<xsd:simpleType name=’ContentPurposeType’> <xsd:restriction base=’xsd:string’>
<xsd:enumeration value=’ad’ />
<xsd:enumeration value=’content’ /> </xsd:restriction> </xsd:simpleType> </xsd:schema> B.2.2 Esquema XSD de Recomendação <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://iex.ptin.pt/ctx/recommendation" xmlns:tns="http://iex.ptin.pt/ctx/recommendation" xmlns:content="http://iex.ptin.pt/ctx/content">
<xsd:import namespace="http://iex.ptin.pt/ctx/content"
schemaLocation="content.xsd"/>
<xsd:complexType name="RecommendationType"> <xsd:sequence>
<xsd:element name="content"
type="content:ContentType"
maxOccurs="unbounded" minOccurs="1" /> </xsd:sequence>
<!-- date when the recommendation was calculated --> <xsd:attribute name="issueDate" type="xsd:date"
use="optional" />
<!-- recommendation’s target user -->
<xsd:attribute name="for" type="xsd:string"
use="required" /> </xsd:complexType>
<xsd:element name="recommendations"
type="tns:RecommendationType" /> </xsd:schema>