mozilla

Revision 71658 of E4X

  • Enlace amigable (slug) de la revisión: E4X
  • Título de la revisión: E4X
  • Id de la revisión: 71658
  • Creada:
  • Creador: inma_610
  • ¿Es la revisión actual? No
  • Comentario 23 words added, 16 words removed
Etiquetas: 

Contenido de la revisión

ECMAScript for XML (E4X) es una extensión del lenguaje de programación que añade la implementación de XML nativo a JavaScript. Esto proporciona el acceso al documento de XML de manera que sea natural para los programadores de ECMAScript. El objetivo es proporcionar una alternativa, una sintaxis más simple para tener acceso a documentos XML a través de las interfaces DOM.

E4X está regulado por Ecma International dentro del estándar ECMA-357 (actualmente en su segunda edición, diciembre 2005).

E4X se implementa (al menos parcialmente) en SpiderMonkey (Gecko's con motor de JavaScript ) y dentro de Rhino (JavaScript con motor escrito en Java).

Nota: en navegadores basados del Gecko 1.8, como Firefox 1.5, E4X ya puede usarse parcialmente por los autores de páginas web. Para disponer completamente de E4X, el elemento <script> necesita tener el tipo del MIME "text/javascript;e4x=1" (ej. tener un atributo en el formulario type="text/javascript;e4x=1"). La diferencia entre los dos modos es que sin el tipo MIME "e4x=1", cualquiera de los literales de comentario (<!--...-->) en instrucciones XML/HTML son ignorados por compatibilidad hacia atrás con el truco de ocultar el comentario, y las secciones CDATA (<![CDATA{{ mediawiki.external('...') }}]>) no son procesadas como literales CDATA (que conduce a un error de sintaxis JS en el HTML ya que el elemento <script> de HTML produce una sección CDATA implícita, y por lo tanto no puede contener explícitamente secciones CDATA).

Errores conocidos y limitaciones

  • Actualmente no es posible acceder al objeto DOM a través de E4X ({{ Bug("270553") }})
  • E4X no implementa el procesamiento la declaración (<?xml version=...?>) (ver {{ Bug("336551") }}). Puedes obtener un SyntaxError "xml is a reserved identifier" (a pesar de que el XML sea un string).

Solución:

var response = xmlhttprequest.responseText; // bug 270553
response = response.replace(/^<\?xml\s+version\s*=\s*(["'])[^\1]+\1[^?]*\?>/, ""); // bug 336551
var e4x = new XML(response);

Recursos

{{ languages( { "en": "en/E4X", "fr": "fr/E4X", "it": "it/E4X", "ja": "ja/E4X", "ko": "ko/E4X", "pl": "pl/E4X" } ) }}

Fuente de la revisión

<p><strong>ECMAScript for XML</strong> (<strong>E4X</strong>) es una extensión del lenguaje de programación que añade la implementación de XML nativo a <a href="/es/JavaScript" title="es/JavaScript">JavaScript</a>. Esto proporciona el acceso al documento de XML de manera que sea natural para los programadores de ECMAScript. El objetivo es proporcionar una alternativa, una sintaxis más simple para tener acceso a documentos XML a través de las interfaces <a href="/es/DOM" title="es/DOM">DOM</a>.</p>
<p>E4X está regulado por Ecma International dentro del <a class="external" href="http://www.ecma-international.org/publications/standards/Ecma-357.htm">estándar ECMA-357 </a>(actualmente en su segunda edición, diciembre 2005).</p>
<p>E4X se implementa (al menos parcialmente) en <a href="/es/SpiderMonkey" title="es/SpiderMonkey">SpiderMonkey</a> (<a href="/es/Gecko" title="es/Gecko">Gecko</a>'s con motor de JavaScript ) y dentro de <a href="/es/Rhino" title="es/Rhino">Rhino</a> (JavaScript con motor escrito en Java).</p>
<div class="note"> <p><strong>Nota:</strong> en navegadores basados del Gecko 1.8, como Firefox 1.5, E4X ya puede usarse parcialmente por los autores de páginas web. Para disponer completamente de E4X, el elemento <code>&lt;script&gt;</code> necesita tener el tipo del MIME "text/javascript;e4x=1" (ej. tener un atributo en el formulario <code>type="text/javascript;e4x=1"</code>). La diferencia entre los dos modos es que sin el tipo MIME "e4x=1", cualquiera de los literales de comentario (<code><span class="nowiki">&lt;!--...--&gt;</span></code>) en instrucciones XML/HTML son ignorados por compatibilidad hacia atrás con el truco de ocultar el comentario, y las secciones CDATA (<code>&lt;![CDATA{{ mediawiki.external('...') }}]&gt;</code>) no son procesadas como literales CDATA (que conduce a un error de sintaxis JS en el HTML ya que el elemento <code>&lt;script&gt;</code> de HTML produce una sección CDATA implícita, y por lo tanto no puede contener explícitamente secciones CDATA).</p>
</div>
<h3 name="Known_bugs_and_limitations">Errores conocidos y limitaciones</h3>
<ul> <li>Actualmente no es posible acceder al objeto DOM a través de E4X ({{ Bug("270553") }})</li> <li>E4X no implementa el procesamiento la declaración (<code>&lt;?xml version=...?&gt;</code>) (ver {{ Bug("336551") }}). Puedes obtener un SyntaxError "xml is a reserved identifier" (a pesar de que el XML sea un string).</li>
</ul>
<p>Solución:</p>
<pre class="brush: js">var response = xmlhttprequest.responseText; // bug 270553
response = response.replace(/^&lt;\?xml\s+version\s*=\s*(["'])[^\1]+\1[^?]*\?&gt;/, ""); // bug 336551
var e4x = new XML(response);
</pre>
<h3 name="Resources">Recursos</h3>
<ul> <li>Consulta la lista de <a href="/Special:Tags?tag=E4X&amp;language=es" title="Special:Tags?tag=E4X&amp;language=es">páginas relacionadas E4X</a> en MDC.</li> <li><a class="external" href="http://www.ecma-international.org/publications/standards/Ecma-357.htm">Estándar ECMA-357</a></li> <li><a class="external" href="/presentations/xtech2005/e4x" title="presentations/xtech2005/e4x">Presentación de Brendan</a></li> <li><a class="external" href="http://www.faqts.com/knowledge_base/index.phtml/fid/1762">E4X en faqts.com</a></li>
</ul>
<p>{{ languages( { "en": "en/E4X", "fr": "fr/E4X", "it": "it/E4X", "ja": "ja/E4X", "ko": "ko/E4X", "pl": "pl/E4X" } ) }}</p>
Revertir a esta revisión