<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>esbudellant estàndards</title>
	<atom:link href="http://blog.esbudellat.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.esbudellat.net</link>
	<description></description>
	<pubDate>Thu, 24 Dec 2009 14:24:51 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Article “La regla @font-face”</title>
		<link>http://blog.esbudellat.net/article-%e2%80%9cla-regla-font-face%e2%80%9d/</link>
		<comments>http://blog.esbudellat.net/article-%e2%80%9cla-regla-font-face%e2%80%9d/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 14:23:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[css]]></category>

		<category><![CDATA[log]]></category>

		<guid isPermaLink="false">http://blog.esbudellat.net/?p=192</guid>
		<description><![CDATA[Recull d'eines de generació dels formats útils per treballar amb la regla @font-face de CSS.]]></description>
			<content:encoded><![CDATA[<p>Primera versió de l'article <a href="http://esbudellat.net/articles/font-face/">La regla <code>@font-face</code></a> on s'exposa la sintaxi de la regla <code>@font-face</code>, els diferents formats suportats i una sèrie d'eines de conversió.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.esbudellat.net/article-%e2%80%9cla-regla-font-face%e2%80%9d/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Dades vinculades (Linked Data)</title>
		<link>http://blog.esbudellat.net/dades-vinculades-linked-data/</link>
		<comments>http://blog.esbudellat.net/dades-vinculades-linked-data/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 08:49:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[rdf]]></category>
<category>data</category><category>linked</category><category>rdf</category><category>semantic</category><category>sparql</category><category>tbl</category><category>w3c</category><category>web</category>
		<guid isPermaLink="false">http://blog.esbudellat.net/dades-vinculades-linked-data/</guid>
		<description><![CDATA[Nota dels quatre principis de Linked Data.]]></description>
			<content:encoded><![CDATA[<p>Els quatre principis que en Tim Barners-Lee defineix al seu <a href="http://www.w3.org/DesignIssues/LinkedData.html" hreflang="en" xml:lang="en">Linked Data</a> (2006) són:</p>
<ol>
  <li>Usar URI per identificar coses.</li>
  <li>Usar HTTP URI per permetre que aquestes coses siguin ubicables.</li>
  <li>Proporcionar informació útil usant estàndards (RDF, SPARQL).</li>
  <li>Incloure enllaços a altres URI per permetre ubicar d'altres coses.</li>
</ol>

<p>Potser seria bo afegir un punt més que recomanés usar vocabularis coneguts sempre que sigui possible.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.esbudellat.net/dades-vinculades-linked-data/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Jerarquia de capçaleres en HTML5</title>
		<link>http://blog.esbudellat.net/jerarquia-de-capcaleres-en-html5/</link>
		<comments>http://blog.esbudellat.net/jerarquia-de-capcaleres-en-html5/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 12:43:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[xhtml]]></category>
<category>capçalera</category><category>header</category><category>html</category><category>jerarquia</category><category>w3c</category><category>xhtml</category><category>xml</category>
		<guid isPermaLink="false">http://blog.esbudellat.net/jerarquia-de-capcaleres-en-html5/</guid>
		<description><![CDATA[Explicació del funcionament de capçaleres i jerarquia en l'esborrany d'HTML5]]></description>
			<content:encoded><![CDATA[<p>En HTML5 es consideren elements de capçalera els elements <a href="http://www.whatwg.org/specs/web-apps/current-work/#the-h1-h2-h3-h4-h5-and-h6-elements"><span class="element">h1</span>, <span class="element">h2</span>, <span class="element">h3</span>, <span class="element">h4</span>, <span class="element">h5</span>, <span class="element">h6</span></a> i <a href="http://www.whatwg.org/specs/web-apps/current-work/#the-hgroup-element"><span class="element">hgroup</span></a>. Aquest darrer element encara està en estat d'esborrany.</p>
<p>A efectes de jerarquia un element <span class="element">hgroup</span> representa la capçalera d'una secció implícita o explícita (<a href="http://www.whatwg.org/specs/web-apps/current-work/#the-section-element"><span class="element">section</span></a>) que conté una capçalera composta (<em xml:lang="la">i. e.</em> subtítols, títols alternatius o lemes).</p>

<p>El primer element de capçalera d'una secció representa la capçalera d'aquesta. Les següents capçaleres del mateix nivell o superior impliquen una nova secció; les capçaleres de menor nivell impliquen noves subseccions part de la secció explícita o implícita ancessora més propera.</p>
<p>Els elements <span class="element">blockquote</span>, <span class="element">body</span>, <span class="element">figure</span> i <span class="element">td</span> tenen la particularitat de ser <em xml:lang="en">sectioning root</em>; aquests elements encapsulen una jerarquia pròpia, independentment dels elements ancessors.</p>
<p>Exemple de seccions implícites:</p>
<pre><code class="xml">
&lt;body&gt;
  &lt;h1&gt;Foo&lt;/h1&gt;
  &lt;h2&gt;Bar&lt;/h2&gt;
  &lt;h2&gt;Bla&lt;/h2&gt;
&lt;/body&gt;
</code></pre>
<p>Exemple de seccions explícites:</p>
<pre><code class="xml">
&lt;body&gt;
  &lt;h1&gt;Foo&lt;/h1&gt;
  &lt;section&gt;
    &lt;h2&gt;Bar&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;h2&gt;Bla&lt;/h2&gt;
  &lt;/section&gt;
&lt;/body&gt;
</code></pre>
<p>Els exemples anteriors reflexen la mateixa jerarquia, amb seccions implícites o amb seccions explícites. L'element <span class="element">body</span> és una secció explícita.</p>
<p>En un exemple més complex, com el que proporciona l'especificació d'HTML5 es pot apreciar millor la complexitat de lectura i manteniment d'aquest sistema de jerarquia.</p>
<pre><code class="xml">
&lt;body&gt;
  &lt;h1&gt;Foo&lt;/h1&gt;
  &lt;h2&gt;Bar&lt;/h2&gt;
  &lt;blockquote&gt;
    &lt;h3&gt;Bla&lt;/h3&gt;
  &lt;/blockquote&gt;
  &lt;p&gt;Baz&lt;/p&gt;
  &lt;h2&gt;Quux&lt;/h2&gt;
  &lt;section&gt;
    &lt;h3&gt;Thud&lt;/h3&gt;
  &lt;/section&gt;
  &lt;p&gt;Grunt&lt;/p&gt;
&lt;/body&gt;
</code></pre>
<p>La jerarquia es pot descriure com:</p>
<ul>
  <li>Una secció explícita de tipus <span class="element">body</span> amb una capçalera "Foo" que conté dues seccions implícites: "Bar" i "Quux" i un paràgraf "Grunt".</li>
  <li>La secció implícita "Bar" conté una citació i un paràgraf "Baz".</li>
  <li>La secció implícita "Quux" conté una secció explícita de tipus <span class="element">section</span> amb una capçalera "Thud".</li>
</ul>
<p>La secció implícita "Bla" (l'element <span class="element">h3</span> fill de l'element <span class="element">blockquote</span>) no és part d'aquesta jerarquia ja que aquest element inicia la seva pròpia jeraquia.</p>

<p>La descripció anterior afirma que el paràgraf "Grunt" és part de la secció explícita de tipus <span class="element">body</span>. Això és degut a que la secció explícita "Thud" tanca la secció implícita "Quux".</p>

<p>Donat que una secció només pot contenir un element de capçalera els següents fragments són equivalents:</p>
<pre><code class="xml">
&lt;body&gt;
  &lt;h1&gt;Foo&lt;/h1&gt;
  &lt;section&gt;
    &lt;h2&gt;Bar&lt;/h2&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;h2&gt;Bla&lt;/h2&gt;
  &lt;/section&gt;
&lt;/body&gt;
</code></pre>
<pre><code class="xml">
&lt;body&gt;
  &lt;h1&gt;Foo&lt;/h1&gt;
  &lt;section&gt;
    &lt;h3&gt;Bar&lt;/h3&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;h2&gt;Bla&lt;/h2&gt;
  &lt;/section&gt;
&lt;/body&gt;
</code></pre>
<pre><code class="xml">
&lt;body&gt;
  &lt;h1&gt;Foo&lt;/h1&gt;
  &lt;section&gt;
    &lt;h1&gt;Bar&lt;/h1&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;h1&gt;Bla&lt;/h1&gt;
  &lt;/section&gt;
&lt;/body&gt;
</code></pre>
<p>Confusió asegurada. Tot i així l'especificació anima als desenvolupadors a usar sempre seccions explícites i capçaleres <span class="element">h1</span>.</p>
<p>L'especificació il·lustra aquestes regles tan flexibles amb un parell d'exemples equivalents:</p>
<pre><code class="xml">
&lt;body&gt;
  &lt;h4&gt;Apples&lt;/h4&gt;
  &lt;p&gt;Apples are fruit.&lt;/p&gt;
  &lt;section&gt;
    &lt;h2&gt;Taste&lt;/h2&gt;
    &lt;p&gt;They taste lovely.&lt;/p&gt;
    &lt;h6&gt;Sweet&lt;/h6&gt;
    &lt;p&gt;Red apples are sweeter than green ones.&lt;/p&gt;
    &lt;h1&gt;Color&lt;/h1&gt;
    &lt;p&gt;Apples come in various colors.&lt;/p&gt;
  &lt;/section&gt;
&lt;/body&gt;
</code></pre>
<pre><code class="xml">
&lt;body&gt;
  &lt;h1&gt;Apples&lt;/h1&gt;
  &lt;p&gt;Apples are fruit.&lt;/p&gt;
  &lt;section&gt;
    &lt;h2&gt;Taste&lt;/h2&gt;
    &lt;p&gt;They taste lovely.&lt;/p&gt;
    &lt;section&gt;
      &lt;h3&gt;Sweet&lt;/h3&gt;
      &lt;p&gt;Red apples are sweeter than green ones.&lt;/p&gt;
    &lt;/section&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;h2&gt;Color&lt;/h2&gt;
    &lt;p&gt;Apples come in various colors.&lt;/p&gt;
  &lt;/section&gt;
&lt;/body&gt;
</code></pre>
<p>Seguint les regles es pot afegir un exemple equivalent:</p>
<pre><code class="xml">
&lt;body&gt;
  &lt;h1&gt;Apples&lt;/h1&gt;
  &lt;p&gt;Apples are fruit.&lt;/p&gt;
  &lt;section&gt;
    &lt;h1&gt;Taste&lt;/h1&gt;
    &lt;p&gt;They taste lovely.&lt;/p&gt;
    &lt;section&gt;
      &lt;h1&gt;Sweet&lt;/h1&gt;
      &lt;p&gt;Red apples are sweeter than green ones.&lt;/p&gt;
    &lt;/section&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;h1&gt;Color&lt;/h1&gt;
    &lt;p&gt;Apples come in various colors.&lt;/p&gt;
  &lt;/section&gt;
&lt;/body&gt;
</code></pre>
<p>Aquest és el resultat d'intentar permetre dos models d'expressió d'una jerarquia: l'explícit (com <a href="http://www.w3.org/TR/html401/">HTML 4.01</a>) i l'implícit (com <a href="http://www.w3.org/TR/xhtml2/">XHTML 2.0</a> o <a href="http://purl.oclc.org/NET/dml/1.0/">DML</a>). <a href="http://www.docbook.org/tdg5/en/html/docbook.html">Docbook</a> permèt ambdós models però de forma alternativa, no mesclable.</p>
<p>Exemple de jerarquia explícita (HTML 4.01):</p>
<pre><code class="xml">
  &lt;h1&gt;Foo&lt;/h1&gt;
  &lt;h2&gt;Bar&lt;/h2&gt;
  &lt;h2&gt;Bla&lt;/h2&gt;
</code></pre>
<p>Exemple de jerarquia implícita (DocBook o DML):</p>
<pre><code class="xml">
&lt;title&gt;Foo&lt;/title&gt;
&lt;section&gt;
  &lt;title&gt;Bar&lt;/title&gt;
&lt;/section&gt;
&lt;section&gt;
  &lt;title&gt;Bla&lt;/title&gt;
&lt;/section&gt;
</code></pre>


<h3>Recursos relacionats</h3>
<ul>
	<li><a href="http://www.w3.org/TR/xhtml2/" hreflang="en" xml:lang="en">XHTML™ 2.0</a>. W3C. 2006.</li>
	<li><a href="http://www.w3.org/TR/html401/" hreflang="en" xml:lang="en">HTML 4.01 Specification</a>. W3C. 1999.</li>
	<li><a href="http://www.docbook.org/tdg5/en/html/docbook.html" hreflang="en" xml:lang="en">DocBook 5.0: The Definitive Guide</a>. N. Walsh. 2008.</li>
	<li><a href="http://www.whatwg.org/specs/web-apps/current-work/" hreflang="en" xml:lang="en">HTML 5</a>. WHATWG. 2009.</li>
	<li><a href="http://purl.oclc.org/NET/dml/1.0/" hreflang="en" xml:lang="en">DML 1.0</a>. A. Siches. 2009.</li>
	<li><a href="http://boblet.tumblr.com/post/134276674/html5-structure2" hreflang="en" xml:lang="en">HTML5 structure—header, hgroup &amp; h1-h6</a>. Oli Studholme. 2009.</li>
	<li><a href="http://www.w3.org/TR/html5/" hreflang="en" xml:lang="en">HTML 5</a>. W3C. 2009.</li>
	<li><a href="http://www.paciellogroup.com/blog/misc/ARIA/html5-elements1.html#the-h1-h2-h3-h4-h5-and-h6-elements" xml:lang="en" hreflang="en">Document conformance suggestions for ARIA roles and properties in HTML 5</a>. Paciello Group. 2009.</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://blog.esbudellat.net/jerarquia-de-capcaleres-en-html5/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Comanda Ubiquity per l'Optimot</title>
		<link>http://blog.esbudellat.net/comanda-ubiquity-per-loptimot/</link>
		<comments>http://blog.esbudellat.net/comanda-ubiquity-per-loptimot/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 07:21:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[recursos]]></category>
<category>dictionary</category><category>firefox</category><category>optimot</category><category>ubiquity</category>
		<guid isPermaLink="false">http://blog.esbudellat.net/?p=189</guid>
		<description><![CDATA[Comanda de l'extensió Ubiquity per Firefox per cercar al diccionari Optimot.
Instal·lador de la comanda Optimot]]></description>
			<content:encoded><![CDATA[<p property="dct:description">Comanda de l'extensió <a href="https://addons.mozilla.org/en-US/firefox/addon/9527" hreflang="en" xml:lang="en">Ubiquity</a> per Firefox per cercar al diccionari <a href="http://optimot.gencat.cat" hreflang="ca">Optimot</a>.</p>
<p><a href="/resources/ubiquity/optimot/optimot.html">Instal·lador de la comanda Optimot</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.esbudellat.net/comanda-ubiquity-per-loptimot/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Llenguatge natural en nodes de tipus atribut</title>
		<link>http://blog.esbudellat.net/llenguatge-natural-en-nodes-de-tipus-atribut/</link>
		<comments>http://blog.esbudellat.net/llenguatge-natural-en-nodes-de-tipus-atribut/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 10:34:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://blog.esbudellat.net/llenguatge-natural-en-nodes-de-tipus-atribut/</guid>
		<description><![CDATA[El contingut permès en un node de tipus atribut és text sense format, la qual cosa és útil per valors tancats o per tipus de valors sense ambigüitat (xs:anyURI, xs:QName, etc) però en el cas de valors de llenguatge natural apareixen deficiències.

	No es pot marcar un idioma diferent per l'atribut i pel contingut de l'element [...]]]></description>
			<content:encoded><![CDATA[<p>El contingut permès en un node de tipus atribut és text sense format, la qual cosa és útil per valors tancats o per tipus de valors sense ambigüitat (<code>xs:anyURI</code>, <code>xs:QName</code>, etc) però en el cas de valors de llenguatge natural apareixen deficiències.</p>
<ul>
	<li>No es pot marcar un idioma diferent per l'atribut i pel contingut de l'element pare.</li>
	<li>No es pot marcar canvi d'idioma en un fragment.</li>
	<li>La internacionalització no és possible en tots els idiomes i grafies. Per exemple les grafies que necessiten marcar elements compostos mitjançant <a href="http://www.w3.org/TR/ruby/" hreflang="en">ruby</a>.</li>
</ul>
<p>En X/HTML el problema es pot notar en atributs com <span class="attribute">@title</span> o <span class="attribute">@alt</span>.</p>
<p>En RDFa el problema apareix en l'atribut <span class="attribute">@content</span> tot i que la definició diu que és per allotjar un text <em xml:lang="en">machine-readable</em> el resultat pot ser deficient en algun cas.</p>

<p>Per altre banda, un atribut té la virtud de ser molt compacte i de considerar-se implícitament, a parer meu, una metadada de l'element pare.</p>
<p>Agafant el cas de l'atribut <span class="attribute">@title</span> d'X/HTML i fent l'exercici de convertir-lo a element per solucionar els problemes mencionats s'obté quelcom tipus:</p>
<pre><code class="xml">
&lt;abbr&gt;
  &lt;title&gt;eXtensible Markup Language&lt;/title&gt;
  XML
&lt;/abbr&gt;
</code></pre>
<p>El problema d'una estructura com aquesta és que no és distingible el contingut del metacontingut. En <a href="http://purl.oclc.org/NET/dml/1.0/" hreflang="en">DML</a>, aprofitant que qualsevol element pot dur un contenidor per metadades es pot expressar com:</p>
<pre><code class="xml">
&lt;abbr&gt;
  &lt;metadata&gt;
    &lt;span property="dct:description"&gt;eXtensible Markup Language&lt;/span&gt;
  &lt;/metadata&gt;
  XML
&lt;/abbr&gt;
</code></pre>
<p>Fins i tot es pot estendre a quelcom tipus:</p>
<pre><code class="xml">
&lt;abbr&gt;
  &lt;metadata&gt;
    &lt;list typeof="rdf:Alt"&gt;
      &lt;item property="dct:description" xml:lang="en"&gt;eXtensible Markup Language&lt;/item&gt;
      &lt;item property="dct:description" xml:lang="ca"&gt;Llenguatge de marcatge extensible&lt;/item&gt;
    &lt;/list&gt;
  &lt;/metadata&gt;
  XML
&lt;/abbr&gt;
</code></pre>
<p>Tot i permetre expressar molt més, la verbositat augmenta extraordinariament, la qual cosa no ajuda a la legibilitat del document.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.esbudellat.net/llenguatge-natural-en-nodes-de-tipus-atribut/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Definició d'RDF</title>
		<link>http://blog.esbudellat.net/definicio-rdf/</link>
		<comments>http://blog.esbudellat.net/definicio-rdf/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 17:15:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[rdf]]></category>

		<guid isPermaLink="false">http://blog.esbudellat.net/rdf-2/</guid>
		<description><![CDATA[RDF (Resource Description Framework) és un model de dades per representar informació sobre recursos basat en assercions en forma de tripla: (subject, predicate, object)
.
Tot i que el W3C recomana l'ús d'RDF/XML com a representació del model, es poden usar altres formes, ja siguin grafs, N3, RDFa, etc.
Per exemple, per relacionar la citació del títol d'un [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.w3.org/TR/rdf-mt/" hreflang="en">RDF (<em xml:lang="en">Resource Description Framework</em>)</a> és un model de dades per representar informació sobre recursos basat en assercions en forma de tripla: <code>(<var xml:lang="en">subject</var>, <var xml:lang="en">predicate</var>, <var xml:lang="en">object</var>)
</code>.</p>
<p>Tot i que el W3C recomana l'ús d'RDF/XML com a representació del model, es poden usar altres formes, ja siguin grafs, N3, RDFa, etc.</p>
<p>Per exemple, per relacionar la citació del títol d'un llibre amb el seu corresponent ISBN es pot fer usant el vocabulari definit per Dublin Core concretament amb la propietat <a href="http://dublincore.org/documents/dcmi-terms/#terms-source"><code>source</code></a>. Expressat com a graf:</p>

<!--[if !IE]> <-->
<object data="/exemples/example-isbn-graph.svg" type="image/svg+xml" width="494" height="38">
	<p class="imatgeIlustrativa"><img src="/exemples/example-isbn-graph.png" alt="" /></p>

</object>
<!--> <![endif]-->
<!--[if IE]>
	<p class="imatgeIlustrativa"><img src="/exemples/example-isbn-graph.png" alt="" /></p>
<![endif]-->

<p>Com a RDF/XML:</p>
<pre><code class="xml">
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
  xmlns:dct="http://purl.org/dc/terms/"&gt;
  &lt;rdf:Description rdf:about="urn:ISBN:0-596-00263-7"&gt;
    &lt;dct:source&gt;Practical RDF&lt;/dct:source&gt;
  &lt;/rdf:Description&gt;
&lt;/rdf:RDF&gt;
</code></pre>
<p>Com a N3:</p>
<pre><code class="n3">
@prefix dct: &lt;http://purl.org/dc/terms/&gt; .
&lt;urn:ISBN:0-596-00263-7&gt; dct:source "Practical RDF" .
</code></pre>
<p>I com a XHTML+RDFa</p>
<pre><code class="xml">
&lt;html xmlns="http://www.w3.org/1999/xhtml" 
  xmlns:dct="http://purl.org/dc/terms/"&gt;
(…)
&lt;em about="urn:ISBN:0-596-00263-7" property="dct:source"&gt;
  Practical RDF
&lt;/em&gt;
(…)
&lt;/html&gt;
</code></pre>

<p>Tots aquest exemples són representacions equivalents del mateix model RDF. Tots ells acaben generant la mateixa tripla: <code>(urn:ISBN:0-596-00263-7, http://purl.org/dc/terms/source, Practical RDF)</code>.</p>


<h3>Recursos relacionats</h3>
<ul>
	<li><a href="http://www.w3.org/TR/rdf-mt/" hreflang="en" xml:lang="en">RDF Semantics</a>. W3C. 2004.</li>
	<li><a href="http://www.w3.org/TR/rdf-concepts/" hreflang="en" xml:lang="en">Resource Description Framework (RDF): Concepts and Abstract Syntax</a>. W3C. 2004.</li>
	<li><a href="http://www.w3.org/TR/rdf-primer/" hreflang="en" xml:lang="en">RDF Primer</a>. W3C. 2004.</li>
	<li><a href="http://www.w3.org/TR/rdf-syntax-grammar/" hreflang="en" xml:lang="en">RDF/XML Syntax Specification (Revised)</a>. W3C. 2004.</li>
	<li><a href="http://www.w3.org/TR/rdfa-syntax/" hreflang="en" xml:lang="en">RDFa in XHTML: Syntax and Processing</a>. W3C. 2008.</li>
	<li><a href="http://www.w3.org/TR/xhtml-rdfa-primer/" hreflang="en" xml:lang="en">RDFa Primer</a>. W3C. 2008.</li>
	<li><a href="http://www.w3.org/TR/xml-infoset/" hreflang="en" xml:lang="en">XML Information Set</a>. W3C. 2004.</li>
	<li><a href="http://www.w3.org/DesignIssues/Notation3" hreflang="en" xml:lang="en">Notation 3 (N3) A readable RDF syntax</a>. T. Berners-Lee. 2006.</li>
	<li><a href="http://www.w3.org/2000/10/swap/doc/" hreflang="en" xml:lang="en">Semantic Web Tutorial Using N3</a>. T. Berners-Lee, Sandro Hawke, Dan Connolly. 2004.</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://blog.esbudellat.net/definicio-rdf/feed/</wfw:commentRss>
		</item>
		<item>
		<title>XInclude i XPointer</title>
		<link>http://blog.esbudellat.net/xinclude-i-xpointer/</link>
		<comments>http://blog.esbudellat.net/xinclude-i-xpointer/#comments</comments>
		<pubDate>Wed, 31 Dec 2008 23:15:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[xml]]></category>

		<category><![CDATA[xpath]]></category>

		<category><![CDATA[xsl]]></category>

		<guid isPermaLink="false">http://blog.esbudellat.net/gestio-de-documents-xml-amb-xinclude/</guid>
		<description><![CDATA[XInclude és la forma que proporciona el W3C per inserir documents XML o text dins de documents XML obtenint un únic infoset. Amb l'ajuda d'XPointer es poden inserir fragments d'un document XML (inclusive ell mateix sempre que no sigui una crida recursiva infinita).
A diferència de les entitats DTD que cal primer definir i després invocar, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.w3.org/TR/xinclude/" hreflang="en" xml:lang="en">XInclude</a> és la forma que proporciona el W3C per inserir documents XML o text dins de documents XML obtenint un únic <a href="http://www.w3.org/TR/xml-infoset/" hreflang="en">infoset</a>. Amb l'ajuda d'<a href="http://www.w3.org/TR/xptr-framework/" hreflang="en" xml:lang="en">XPointer</a> es poden inserir fragments d'un document XML (inclusive ell mateix sempre que no sigui una crida recursiva infinita).</p>
<p>A diferència de les <a href="http://www.w3.org/TR/REC-xml/#dt-entref" hreflang="en">entitats DTD</a> que cal primer definir i després invocar, <em xml:lang="en">XInclude</em> permet invocar directament mitjançant l'atribut <span class="attribute">@href</span> combinable amb l'atribut <span class="attribute">@xpointer</span>.</p>
<p>A més a més, si una entitat falla en el procés de substitució habitualment resulta en un error fatal. <em xml:lang="en">XInclude</em> proporciona un procés de recuperació de l'error mitjançant l'element <span class="element">/xi:fallback</span> el pot contenir un fragment XML o un element <span class="element">/xi:include</span> que faci una crida alternativa a l'element <span class="element">/xi:include</span> inicial. És a dir, donat un XML tal que:</p>
<pre><code class="xml">
&lt;dml
  xmlns="http://purl.oclc.org/NET/dml/1.0"
  xmlns:xi="http://www.w3.org/2001/XInclude"&gt;
  &lt;xi:include href="chapter-1.xml"&gt;
    &lt;xi:fallback&gt;
      &lt;p&gt;Contingut alternatiu a la inserció fallida.&lt;/p&gt;
    &lt;/xi:fallback&gt;
  &lt;/xi:include&gt;
&lt;/dml&gt;
</code></pre>

<p>Si falla la crida a l'arxiu <code>"chapter-1.xml"</code>, l'infoset resultant contindrà el paràgraf amb el text, mentre que amb:</p>

<pre><code class="xml">
&lt;dml
  xmlns="http://purl.oclc.org/NET/dml/1.0"
  xmlns:xi="http://www.w3.org/2001/XInclude"&gt;
  &lt;xi:include href="chapter-1.xml"&gt;
    &lt;xi:fallback&gt;
      &lt;xi:include href="chapter-fallback-1.xml"/&gt;
    &lt;/xi:fallback&gt;
  &lt;/xi:include&gt;
&lt;/dml&gt;
</code></pre>

<p>Si falla la crida a l'arxiu <code>"chapter-1.xml"</code>, s'intenta la crida a l'arxiu <code>"chapter-fallback-1.xml"</code> i si aquesta crida falla, com que no té cap element <span class="element">/xi:fallback</span> definit, el resultat és un error fatal.</p>

<p><em xml:lang="en">XPointer</em> és un sistema que permet referenciar un punt concret (més enllà dels nodes) d'un document XML mitjançant la sintaxi d'<em xml:lang="en">XPath</em> 1.0 ampliada.</p>
<p>Per poder fer aquestes referencies l'<em xml:lang="en">XPointer Framework</em> defineix els esquemes <code>xpointer()</code>, <code>id()</code>, <code>element()</code> i <code>xmlns()</code>.</p>
<p>Per exemple, donat un document <code>"chapter-1.xml"</code> tal que:</p>
<pre><code class="xml">
&lt;dml xmlns="http://purl.oclc.org/NET/dml/1.0"&gt;
  &lt;section id="intro"&gt;
    &lt;title&gt;Introducció&lt;/title&gt;
    &lt;p&gt;Lorem ipsum dolor sit amet&lt;/p&gt;
    ( … )
  &lt;/section&gt;
  &lt;section id="seccio-1"&gt;
    &lt;title&gt;secció 1&lt;/title&gt;
    &lt;p&gt;Lorem ipsum dolor sit amet&lt;/p&gt;
    ( … )
  &lt;/section&gt;
  ( … )
&lt;/dml&gt;
</code></pre>
<p>Fent una crida des del document inicial tal que:</p>
<pre><code class="xml">
&lt;dml
  xmlns="http://purl.oclc.org/NET/dml/1.0"
  xmlns:xi="http://www.w3.org/2001/XInclude"&gt;
    &lt;title&gt;Document inicial&lt;/title&gt;
    &lt;xi:include href="chapter-1.xml" xpointer="xpointer(/dml/section)"/&gt;
&lt;/dml&gt;
</code></pre>
<p>El resultat és:</p>
<pre><code class="xml">
&lt;dml
  xmlns="http://purl.oclc.org/NET/dml/1.0"
  xmlns:xi="http://www.w3.org/2001/XInclude"&gt;
    &lt;title&gt;Document inicial&lt;/title&gt;
  &lt;section id="intro"&gt;
    &lt;title&gt;Introducció&lt;/title&gt;
    &lt;p&gt;Lorem ipsum dolor sit amet&lt;/p&gt;
    ( … )
  &lt;/section&gt;
&lt;/dml&gt;
</code></pre>
<p>Alternativament es pot fer:</p>
<pre><code class="xml">
&lt;xi:include href="chapter-1.xml" xpointer="id('intro')"/&gt;
</code></pre>
<pre><code class="xml">
&lt;xi:include href="chapter-1.xml" xpointer="element(/1/1)"/&gt;
</code></pre>
<p>En síntesi, l'esquema <code>id()</code> permet fer crides a un identificador del document. Si la crida no té alternativa, és simplificable a:</p>
<pre><code class="xml">
&lt;xi:include href="chapter-1.xml" xpointer="intro"/&gt;
</code></pre>
<p>L'esquema <a href="http://www.w3.org/TR/xptr-element/" hreflang="en"><code>element()</code></a> permet apuntar per posició del node. És una forma simplificada de:</p>
<pre><code class="xml">
&lt;xi:include href="chapter-1.xml" xpointer="xpointer(/*[1]/*[1])"/&gt;
</code></pre>

<p>Una sóla crida XPointer pot contenir més d'una opció a mode d'alternativa en cas de fallar la primera:</p>
<pre><code class="xml">
&lt;xi:include href="chapter-1.xml" xpointer="id('intro') xpointer(/dml/section[1]) element(/1/1)"/&gt;
</code></pre>
<p>D'aquesta manera, si l'identificador <code>"intro"</code> no existeix actua l'esquema <code>xpointer()</code> i si, per exemple, l'element arrel ja no es diu <code>"dml"</code>, actua l'esquema <code>element()</code> obtenint el primer element fill de l'element root.</p>
<p>L'esquema <code>xmlns()</code> permet definir espais de noms associats als elements seleccionats.</p>

<p>Els processador més comú amb un bon suport d'<em xml:lang="en">XInclude</em> i d'<em xml:lang="en">XPointer</em> és <a href="http://xmlsoft.org/XSLT/xsltproc2.html" hreflang="en">xsltproc</a>.</p>
<p><a href="http://saxon.sourceforge.net/">Saxon</a> no suporta <em xml:lang="en">XPointer</em> cosa que redueix molt la potència d'<em xml:lang="en">XInclude</em>.</p>

<p>N'Erik Wilde va fer <a href="http://dret.net/projects/xipr/" hreflang="en">XIPr</a> el qual implementa l'esquema <code>element()</code> mitjançant XSLT 2.0.</p>
<p>Això em va donar la idea d'intentar implementar l'esquema <code>xpointer()</code> mitjançant XSLT 2.0. El projecte, <a href="http://github.com/arnau/xiproc/tree/master">XIProc</a>, de moment només implementa els quatre selectors més comuns d'<em xml:lang="en">XPath</em>.</p>

<h3>Recursos relacionats</h3>
<ul>
	<li><a href="http://www.w3.org/TR/2006/REC-xinclude-20061115/" hreflang="en" xml:lang="en">XML Inclusions (XInclude) Version 1.0 (Second Edition)</a>. W3C. 2006.</li>
	<li><a href="http://www.w3.org/TR/2003/REC-xptr-framework-20030325/" hreflang="en" xml:lang="en">XPointer Framework</a>. W3C. 2003.</li>
	<li><a href="http://www.w3.org/TR/2004/REC-xml-infoset-20040204" hreflang="en" xml:lang="en">XML Information Set (Second Edition)</a>. W3C. 2004.</li>
	<li><a href="http://dret.net/projects/xipr/" hreflang="en" xml:lang="en">XIPr (XInclude Processor)</a>. Erik Wilde.</li>
	<li><a href="http://github.com/arnau/xiproc/tree/master" hreflang="en" xml:lang="en">XIProc (XSLT XInclude Processor)</a></li>
	<li><a href="http://commons.oreilly.com/wiki/index.php/XPath_and_XPointer/XPointer_Background" hreflang="en" xml:lang="en">XPath and XPointer/XPointer Background</a>. J. E. Simpson. 2002.</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://blog.esbudellat.net/xinclude-i-xpointer/feed/</wfw:commentRss>
		</item>
		<item>
		<title>RDFa, estructura i verbositat</title>
		<link>http://blog.esbudellat.net/rdfa-estructura-i-verbositat/</link>
		<comments>http://blog.esbudellat.net/rdfa-estructura-i-verbositat/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 14:30:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[rdf]]></category>

		<category><![CDATA[semàntica]]></category>

		<category><![CDATA[xhtml]]></category>
<category>earl</category><category>n3</category><category>rdf</category><category>rdfa</category><category>semàntica</category><category>w3c</category><category>wcag</category><category>xhtml</category>
		<guid isPermaLink="false">http://blog.esbudellat.net/rdfa-estructura-i-verbositat/</guid>
		<description><![CDATA[Breu reflexió sobre RDFa i la verbosistat derivada.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.w3.org/TR/rdfa-syntax/" hreflang="en">RDFa</a> és l'esforç més recent del W3C de dur la integració entre metadades i contingut a quelcom real tant per l'usuari que ho ha d'escriure com per les eines d'extracció d'aquesta informació.</p>
<p>En contrast amb els <a href="http://microformats.org" hreflang="en">Microformats</a>, permet una extracció de les dades sense que l'extractor hagi d'estar preparat per aquell model alhora que la dificultat per l'usuari és similar.</p>
<p>A més a més, a través dels <a href="http://www.w3.org/TR/1999/REC-xml-names-19990114" hreflang="en">espais de nom</a> permet un model distribuït de creació de vocabularis, agilitzant-ne la creació i evitant els conflictes.</p>
<p>RDFa és un <a href="http://www.w3.org/TR/rdfa-syntax/#rdfa-attributes" hreflang="en">conjunt d'atributs</a> —antics i nous— per permetre definir triples RDF.</p>
<p>Entrant en matèria i definint que:</p>
<dl>
	<dt>cal:</dt>
	<dd>http://www.w3.org/2002/12/cal/ical#</dd>
	<dt>dc:</dt>
	<dd>http://purl.org/dc/elements/1.1/</dd>
	<dt>earl:</dt>
	<dd>http://www.w3.org/ns/earl#</dd>
	<dt>rdf:</dt>
	<dd>http://www.w3.org/1999/02/22-rdf-syntax-ns#</dd>
</dl>
<p>Un exemple fàcil és marcar l'autor d'aquest post. En <a href="http://www.w3.org/2000/10/swap/doc/">N3</a> seria:</p>
<pre><code class="n3">
&lt;http://blog.esbudellat.net/rdfa-estructura-i-verbositat&gt; dc:creator "Arnau Siches" .
</code></pre>
<p>En RDF/XML:</p>
<pre><code class="xml">
&lt;rdf:Description rdf:about="http://blog.esbudellat.net/rdfa-estructura-i-verbositat"&gt;
   &lt;dc:creator&gt;Arnau Siches&lt;/dc:creator&gt;
&lt;/rdf:Description&gt;
</code></pre>
<p>I finalment en RDFa, considerant que el fragment és part del document al qual fa referència:</p>
<pre><code class="xml">
&lt;p property="dc:creator"&gt;Arnau Siches&lt;/p&gt;
</code></pre>
<p>Una molt bona introducció que mostra altres exemples senzills: <a href="http://www.w3.org/TR/xhtml-rdfa-primer/" hreflang="en" xml:lang="en">RDF Primer</a>.</p>

<p>Quan diverses triples comparteixen el mateix subjecte, la verbositat augmenta, igual que amb els microformats.</p>
<p>Per exemple, a l'expressar un esdeveniment en <a href="http://microformats.org/wiki/hcalendar" hreflang="en">hcalendar</a> obtenim:</p>
<pre><code class="xml">
&lt;div class="vevent"&gt;
  &lt;p class="summary"&gt;Trobada per xerrar sobre desenvolupament web de maig.&lt;/p&gt;
  &lt;h3&gt;Dades de la trobada&lt;/h3&gt;
  &lt;dl&gt;
    &lt;dt&gt;Dia:&lt;/dt&gt;
    &lt;dd&gt;
      &lt;abbr title="2008-05-23T19:30+1:00" class="dtstart"&gt;23 de maig a les 19:30h&lt;/abbr&gt;
    &lt;/dd&gt;
    &lt;dt&gt;Lloc:&lt;/dt&gt;
    &lt;dd class="location"&gt;
      &lt;abbr class="geo" title="41.401745;2.155166"&gt;Bar Billar H.D.P.&lt;/abbr&gt; de Gràcia
    &lt;/dd&gt;
  &lt;/dl&gt;
&lt;/div&gt;
</code></pre>
<p>Molt similar a expressar-ho en <a href="http://www.w3.org/TR/rdfcal/" hreflang="en" xml:lang="en">RDF Calendar</a> via RDFa:</p>
<pre><code class="xml">
&lt;div typeof="cal:Vevent"&gt;
  &lt;p property="cal:summary"&gt;Trobada per xerrar sobre desenvolupament web de maig.&lt;/p&gt;
  &lt;h3&gt;Dades de la trobada&lt;/h3&gt;
  &lt;dl&gt;
    &lt;dt&gt;Dia:&lt;/dt&gt;
    &lt;dd property="cal:dtstart" content="2008-05-23T19:30+1:00" datatype="xs:datetime"&gt;
      23 de maig a les 19:30h
    &lt;/dd&gt;
    &lt;dt&gt;Lloc:&lt;/dt&gt;
    &lt;dd property="cal:location"&gt;
      &lt;span property="cal:geo" content="41.401745 2.155166"&gt;Bar Billar H.D.P.&lt;/span&gt; de Gràcia
    &lt;/dd&gt;
  &lt;/dl&gt;
&lt;/div&gt;
</code></pre>
<p>En casos on l'estructura és complexa com per exemple un informe <a href="http://www.w3.org/TR/EARL10/" hreflang="en" xml:lang="en">EARL</a> de validació de les <a href="http://www.w3.org/TR/WCAG10/" hreflang="en">WCAG 1.0</a>:</p>
<pre><code class="xml">
&lt;earl:Assertion&gt;
  &lt;earl:assertedBy rdf:resource="#assertor"/&gt;
  &lt;earl:subject rdf:resource="#subject"/&gt;
  &lt;earl:test rdf:resource="http://www.w3.org/TR/WCAG10#tech-color-convey"&gt;
    &lt;dc:description rdf:parseType="Literal" xml:lang="ca"&gt;
      &lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
        Assegureu-vos que tota la informació transmesa amb colors…
      &lt;/div&gt;
    &lt;/dc:description&gt;
  &lt;/earl:test&gt;
  &lt;earl:mode rdf:resource="http://www.w3.org/ns/earl#manual"/&gt;
  &lt;earl:result rdf:resource="http://www.w3.org/ns/earl#fail"&gt;
    &lt;dc:description rdf:parseType="Literal" xml:lang="ca"&gt;
      &lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
        &lt;p&gt;Els enllaços només es poden distingir a través del color.&lt;/p&gt;
      &lt;/div&gt;
    &lt;/dc:description&gt;
  &lt;/earl:result&gt;
&lt;/earl:Assertion&gt;
</code></pre>
<p>Passat a RDFa seria quelcom semblant a:</p>
<pre><code class="xml">
&lt;div typeof="earl:Assertion" about="#subject"&gt;
  &lt;h2 property="earl:test" resource="http://www.w3.org/TR/WCAG10/#tech-color-convey"&gt;
    Assegureu-vos que tota la informació transmesa amb colors…
  &lt;/h2&gt;
  &lt;div property="earl:mode" resource="http://www.w3.org/ns/earl#manual"&gt;
    &lt;div property="earl:result" resource="http://www.w3.org/ns/earl#fail"&gt;
      &lt;p&gt;Els enllaços només es poden distingir a través del color.&lt;/p&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
</code></pre>
<p>L'estructura no permet per exemple, usar una llista de definició amb tots els punts de les WCAG 1.0 ja que cal un contenidor per cada <span class="element">/earl:Assertion</span> (gran part de la culpa és de la mala estructura de les llistes de definició en X/HTML). I cal un <span class="element">/div</span> per cada <span class="element">/earl:result</span> ja que pot haver-hi múltiples paràgrafs.</p>

<p>En conclusió, no millora en verbositat respecte els microformats però permet més flexibilitat d'expressió de relacions.</p>

<h3>Recursos relacionats</h3>
<ul>
	<li><a href="http://www.w3.org/TR/rdfa-syntax/" hreflang="en" xml:lang="en">RDFa in XHTML: Syntax and Processing, W3C</a></li>
	<li><a href="http://www.w3.org/TR/xhtml-rdfa-primer/" hreflang="en" xml:lang="en">RDFa Primer, W3C</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://blog.esbudellat.net/rdfa-estructura-i-verbositat/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Referència bàsica d'ISO Schematron</title>
		<link>http://blog.esbudellat.net/referencia-basica-iso-schematron/</link>
		<comments>http://blog.esbudellat.net/referencia-basica-iso-schematron/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 16:55:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[xml]]></category>

		<category><![CDATA[xpath]]></category>

		<category><![CDATA[xsl]]></category>
<category>dsl</category><category>esquema</category><category>iso</category><category>relaxng</category><category>sch</category><category>schematron</category><category>xml</category><category>xpath</category><category>xsd</category><category>xslt</category>
		<guid isPermaLink="false">http://blog.esbudellat.net/sintaxi-basica-diso-schematron/</guid>
		<description><![CDATA[Referència d'elements i atributs d'iso schematron]]></description>
			<content:encoded><![CDATA[<p>L'espai de noms d'ISO Schematron és <code>http://purl.oclc.org/dsdl/schematron</code>.</p>

<dl>
	<dt>Element <span class="element">/active</span></dt>
	<dd>
		<p>Permet definir el patró actiu.</p>
		<dl>
			<dt>Atribut <span class="attribute">@pattern</span></dt>
			<dd>Referència del patró actiu.</dd>
		</dl>
	</dd>
	<dt>Element <span class="element">/assert</span></dt>
	<dd>
		<p>Permet definir un test mitjançant l'atribut <span class="attribute">@test</span> que, si dóna fals, retorna el contingut del node.</p>
		<dl>
			<dt>Atribut <span class="attribute">@test</span></dt>
			<dd>Expressió XPath relativa al context de l'element <span class="element">/rule</span> ancessor.</dd>
			<dt>Atribut <span class="attribute">@diagnostics</span></dt>
			<dd>Referència a un element <span class="element">/diagnostic</span>.</dd>
		</dl>
	</dd>
	<dt>Element <span class="element">/extends</span></dt>
	<dd>
		<p>Permet referenciar regles sense context.</p>
		<!-- 
			Abstract rules are named lists of assertions without a context expression. The required rule attribute references an abstract rule. The current rule uses all the assertions from the abstract rule it extends. 
		-->
		<dl>
			<dt>Atribut <span class="attribute">@rule</span></dt>
			<dd>Referència a un element <span class="element">/rule[@abstract="true"]</span></dd>
		</dl>
	</dd>
	<dt>Element <span class="element">/include</span></dt>
	<dd>
		<p>Permet inserir fragments Schematron al punt on es declari l'element.</p>
		<dl>
			<dt>Atribut <span class="attribute">@href</span></dt>
			<dd>Referència a un document XML ben format l'arrel del qual ha de ser un element Schematron permès al punt on s'ha declarat l'element.</dd>
		</dl>
	</dd>
	<dt>Element <span class="element">/let</span></dt>
	<dd>
		<p>Permet definir una variable. Si es defineix com a fill d'un element <span class="element">/rule</span> el context de la variable serà el d'aquesta. Sinó, el context de la variable és l'arrel.</p>
		<p>La variable sempre s'ha de declarar abans d'usar-la en una expressió i no es pot definir més d'una vegada la mateixa variable. (comportament igual a les variables XSLT).</p>
		<dl>
			<dt>Atribut <span class="attribute">@name</span></dt>
			<dd>Nom de la variable.</dd>
			<dt>Atribut <span class="attribute">@value</span></dt>
			<dd>Expressió XPath.</dd>
		</dl>
	</dd>
	<dt>Element <span class="element">/name</span></dt>
	<dd>
		<p>Permet obtenir el nom del node del context.</p>
		<dl>
			<dt>Atribut <span class="attribute">@path</span></dt>
			<dd>Expressió XPath relativa al context actual.</dd>
		</dl>
	</dd>
	<dt>Element <span class="element">/ns</span></dt>
	<dd>
		<p>Permet definir els espais de nom que s'usen en les expressions XPath. La declaració d'espais de nom del document no afecta a les expressions.</p>
		<dl>
			<dt>Atribut <span class="attribute">@uri</span></dt>
			<dd>URI de l'espai de noms.</dd>
			<dt>Atribut <span class="attribute">@prefix</span></dt>
			<dd>Prefix de l'espai de noms.</dd>
		</dl>
	</dd>
	<dt>Element <span class="element">/param</span></dt>
	<dd>
		<p>Permet definir una parella nom-valor per parametritzar patrons abstractes.</p>
		<dl>
			<dt>Atribut <span class="attribute">@name</span></dt>
			<dd>Nom del paràmetre.</dd>
			<dt>Atribut <span class="attribute">@value</span></dt>
			<dd>Expressió XPath.</dd>
		</dl>
	</dd>
	<dt>Element <span class="element">/pattern</span></dt>
	<dd>
		<p>Permet agrupar regles i definir agrupacions genèriques parametritzables.</p>
		<p>Permet usar l'element <span class="element">/title</span> i l'element <span class="element">/p</span> per documentar.</p>
		<!-- The icon, see and fpi attributes allow rich interfaces and documentation. -->
		<dl>
			<dt>Atribut <span class="attribute">@id</span></dt>
			<dd>Identificador únic per esquema.</dd>
			<dt>Atribut <span class="attribute">@abstract</span></dt>
			<dd>Amb valor <code>true</code> permet definir patrons genèrics parametritzables.</dd>
			<dt>Atribut <span class="attribute">@is-a</span></dt>
			<dd>Permet instanciar un patró genèric.</dd>
		</dl>
	</dd>
	<dt>Element <span class="element">/phase</span></dt>
	<dd>
		<p>Permet agrupar patrons per poder fer validacions progressives o parcials.</p>
		<!-- The icon, see and fpi attributes allow rich interfaces and documentation. -->
		<dl>
			<dt>Atribut <span class="attribute">@id</span></dt>
			<dd>Identifica una fase. No es pot usar ni <code>#ALL</code> ni <code>#DEFAULT</code> com a valor.</dd>
		</dl>
	</dd>
	<dt>Element <span class="element">/report</span></dt>
	<dd>
		<p>Permet definir un test mitjançant l'atribut <span class="attribute">@test</span> que, si dóna cert, retorna el contingut del node.</p>
		<dl>
			<dt>Atribut <span class="attribute">@test</span></dt>
			<dd>Expressió XPath relativa al context de l'element <span class="element">/rule</span> ancessor.</dd>
			<dt>Atribut <span class="attribute">@diagnostics</span></dt>
			<dd>Referència a un element <span class="element">/diagnostic</span>.</dd>
		</dl>
	</dd>
	<dt>Element <span class="element">/rule</span></dt>
	<dd>
		<p>Llista de tests (<span class="element">/assert</span> i <span class="element">/report</span>) relacionats a un context.</p>
		<!-- The icon, see and fpi attributes allow rich interfaces and documentation.
		The flag attribute allows more detailed outcomes. It is defined below.
		The role and subject attributes allow explicit identification of some part of a pattern as part of the validation outcome. -->
		<dl>
			<dt>Atribut <span class="attribute">@context</span></dt>
			<dd>Expressió XPath.</dd>
			<dt>Atribut <span class="attribute">@abstract</span></dt>
			<dd>Amb valor <code>true</code> permet definir regles genèriques, sense context.</dd>
			<dt>Atribut <span class="attribute">@id</span></dt>
			<dd>Identificador de la regla.</dd>
		</dl>
	</dd>
	<dt>Element <span class="element">/schema</span></dt>
	<dd>
		<p>Arrel de l'esquema.</p>
		<p>Permet usar l'element <span class="element">/title</span> i l'element <span class="element">/p</span> per documentar.</p>
		<!-- The icon, see and fpi attributes allow rich interfaces and documentation. -->
		<dl>
			<dt>Atribut <span class="attribute">@schemaVersion</span></dt>
			<dd>Versió de l'esquema. Normalment <code>ISO19757-3</code>. Depèn de l'implementador.</dd>
			<dt>Atribut <span class="attribute">@queryBinding</span></dt>
			<dd>Llenguatge d'interrogació. Normalment <code>xslt1</code>, <code>xslt2</code>, <code>xpath</code>, <code>exslt</code>. Depèn de l'implementador.</dd>
			<dt>Atribut <span class="attribute">@defaultPhase</span></dt>
			<dd>Nom de la fase per defecte.</dd>
		</dl>
	</dd>
	<dt>Element <span class="element">/value-of</span></dt>
	<dd>
		<p>Valor d'una expressió XPath en context d'un test.</p>
		<dl>
			<dt>Atribut <span class="attribute">@select</span></dt>
			<dd>Expressió XPath.</dd>
		</dl>
	</dd>
	<dt>Element <span class="element">/diagnostic</span></dt>
	<dd>
		<p>Permet definir un text resultat del test. Per definir missatges multiidioma, cada idioma ha d'usar un element <span class="element">/diagnostic</span> diferent amb l'atribut <span class="attribute">@xml:lang</span> adequat i referenciant tots els identificadors a l'atribut <span class="attribute">@diagnostics</span> del test.</p>
		<dl>
			<dt>Atribut <span class="attribute">@id</span></dt>
			<dd>Identificador de l'element.</dd>
		</dl>
	</dd>
	<dt>Element <span class="element">/dir</span></dt>
	<dd>
		<p>Permet definir la direcció del text.</p>
		<dl>
			<dt>Atribut <span class="attribute">@value</span></dt>
			<dd>Els valors poden ser <code>ltr</code> o <code>rtl</code>.</dd>
		</dl>
	</dd>
	<dt>Element <span class="element">/emph</span></dt>
	<dd>
		<p>Fragment de text emfatitzat.</p>
	</dd>
	<dt>Element <span class="element">/title</span></dt>
	<dd>
		<p>Títol, resum d'un fragment de l'esquema.</p>
	</dd>
	<dt>Element <span class="element">/p</span></dt>
	<dd>
		<p>Paràgraf per documentar l'squema.</p>
	</dd>
	<dt>Element <span class="element">/span</span></dt>
	<dd>
		<p>Fragment d'un paràgraf.</p>
		<dl>
			<dt>Atribut <span class="attribute">@class</span></dt>
			<dd>Modificador de l'element.</dd>
		</dl>
	</dd>
	<dt>Atribut <span class="attribute">@flag</span></dt>
	<dd>
		<p>Variable booleana amb valor inicial <code>false</code>.</p>
		<p>Permet activar/desactivar tests o regles permetent així diferents graus de validació.</p>
	</dd>
	<dt>Atribut <span class="attribute">@fpi</span></dt>
	<dd>
		<p>Identificador formal public (<span xml:lang="en">Formal Public Identifier</span>) de l'esquema, fase o altre element.</p>
	</dd>
	<dt>Atribut <span class="attribute">@icon</span></dt>
	<dd>
		<p>Localització d'un gràfic significatiu de l'element.</p>
	</dd>
	<dt>Atribut <span class="attribute">@role</span></dt>
	<dd>
		<p>Nom descriptor de la funció del test o del context d'un patró. Si el test té un atribut <span class="attribute">@subject</span> el rol fa d'arc entre el context i qualsevol node que coincideixi amb l'expressió de l'atribut <span class="attribute">subject</span>.</p>
	</dd>
	<dt>Atribut <span class="attribute">@see</span></dt>
	<dd>
		<p>URI d'informació externa d'interès pels usuaris de l'esquema.</p>
	</dd>
	<dt>Atribut <span class="attribute">@subject</span></dt>
	<dd>
		<p>Expressió que permet precisar el context d'un test.</p>
	</dd>
</dl>

<h3>Recursos relacionats</h3>
<ul>
	<li><a href="http://www.schematron.com" hreflang="en">Lloc oficial d'Schematron</a></li>
	<li><a href="http://www.dpawson.co.uk/schematron/" hreflang="en">Tutorial d'Schematron</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://blog.esbudellat.net/referencia-basica-iso-schematron/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Negociació de contingut amb .htaccess</title>
		<link>http://blog.esbudellat.net/negociacio-de-contingut-amb-htaccess/</link>
		<comments>http://blog.esbudellat.net/negociacio-de-contingut-amb-htaccess/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 20:01:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[apache]]></category>

		<category><![CDATA[codificació]]></category>

		<category><![CDATA[internet explorer]]></category>

		<category><![CDATA[navegadors]]></category>
<category>accept</category><category>content</category><category>contingut</category><category>html</category><category>http</category><category>internet explorer</category><category>mime</category><category>negociació</category><category>xhtml</category><category>xml</category>
		<guid isPermaLink="false">http://blog.esbudellat.net/negociacio-de-contingut-amb-htaccess/</guid>
		<description><![CDATA[Explicació de com usar negociació de contingut amb mod_rewrite]]></description>
			<content:encoded><![CDATA[<p>Usar documents XHTML estàtics amb un MIME Type correcte (<code>application/xhtml+xml</code>) i alhora degradar correctament per Internet Explorer i altres navegadors deficients és un problema.</p>
<p>Si el servidor web és un Apache, es pot usar el mòdul <em>mod_rewrite</em> per decidir en funció de la capçalera HTTP <code>Accept</code> si servir <code>application/xhtml+xml</code> o <code>text/html</code>.</p>
<p>Usant .htaccess per fer la reescriptura el problema es resol amb:</p>
<pre><code class="htaccess">
RewriteEngine On
RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml
RewriteRule ^(.+\.html)$ $1 [T=application/xhtml+xml]
</code></pre>
<p>La primera línia activa el mòdul.</p>
<p>La segona és una condició que rep la variable <code>HTTP_ACCEPT</code> (la qual conté la capçalera HTTP <code>Accept</code>) i l'expressió regular <code>application/xhtml\+xml</code> i mira si hi ha coincidència.</p>
<p>La darrera línia aplica només si la condició anterior és certa. En aquest cas, reescriu la URI deixant-la igual però afegint el modificador <code>T</code> amb valor <code>application/xhtml+xml</code>.</p>
<p>El modificador <code>T</code> permet forçar el tipus de contingut (<code>Content-Type</code>) de la URI reescrita.</p>
<p>Donat que s'usa aquesta decisió en el moment de servir el document i que el document no es modifica, usar un <code>&lt;meta http-equiv="Content-Type" …/&gt;</code> ja que caldria posar un MIME Type a l'atribut <span class="attribute">@content</span> i en algun cas no seria correcte. Per tant millor no usar l'element <span class="element">/meta</span> en aquest cas.</p>
<p>Al no posar l'element <span class="element">/meta</span> no s'està especificant la codificació del document. Això quan s'usa XML (<code>application/xhtml+xml</code>) no és un problema ja que la codificació per defecte és UTF-8 però quan el contingut es serveix com a HTML (<code>text/html</code>) la codificació per defecte és la d'HTTP: ISO-8859-1.</p>
<p>Per evitar problemes, val la pena forçar la codificació des del document .htaccess amb una regla <code>AddCharset</code>.</p>
<p>Usant UTF-8 als documents XHTML, el document .htaccess final queda com:</p>
<pre><code class="httaccess">
AddCharset utf-8 html

RewriteEngine On
RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml
RewriteRule ^(.+\.html)$ $1 [T=application/xhtml+xml]
</code></pre>
<p>Per descomptat, si s'usen diverses codificacions en documents HTML, aquesta regla caldrà condicionar-la perquè només afecti als documents correctes.</p>

<p>Com a últim afegit, per aconseguir que validadors com el del W3C, agafin el MIME Type correcte, es poden afegir condicionals opcionals:</p>
<pre><code class="httaccess">
AddCharset utf-8 html

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} W3C_Validator [OR]
RewriteCond %{HTTP_USER_AGENT} WDG_SiteValidator [OR]
RewriteCond %{HTTP_USER_AGENT} W3C-checklink [OR]
RewriteCond %{HTTP_USER_AGENT} Web-Sniffer [OR]
RewriteCond %{HTTP_ACCEPT} application/xhtml\+xml
RewriteRule ^(.+\.html)$ $1 [T=application/xhtml+xml]
</code></pre>

<h3>Recursos relacionats</h3>
<ul>
	<li><a href="http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html" hreflang="en" xml:lang="en">Module mod_rewrite</a></li>
	<li><a href="http://www.w3.org/International/O-charset" hreflang="en" xml:lang="en">Character encodings</a></li>
	<li><a href="http://www.w3.org/International/O-HTTP-charset" hreflang="en" xml:lang="en">Setting the HTTP charset parameter</a></li>
	<li><a href="http://www.faqs.org/rfcs/rfc1945.html" hreflang="en" xml:lang="en">RFC1945 - Hypertext Transfer Protocol -- HTTP/1.0</a></li>
	<li><a href="http://www.faqs.org/rfcs/rfc2616.html" hreflang="en" xml:lang="en">RFC2616 - Hypertext Transfer Protocol -- HTTP/1.1</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://blog.esbudellat.net/negociacio-de-contingut-amb-htaccess/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
