2010-05-20 11 views
26

Tengo curiosidad, he estado desarrollando sitios web/aplicaciones web bastante potentes, y nunca he aprendido XML, incluso más extraño que nunca sentí la necesidad de hacerlo. No es como curl o declaraciones preparadas donde, antes de saber qué es lo que hacían y cómo funcionaban, tenía la sensación de que tenía que haber una forma más fácil de hacerlo. o 'tiene que haber algo diseñado para esto'.¿Para qué sirve XML y cuándo debería usarlo?

Actualmente trabajo con MySQL y JSON y no tengo esta sensación de "Necesito aprender eso" (XML), ¡esto debe estar mal!

Estoy realmente interesado en escuchar algunos argumentos convincentes para XML, y aprender sobre cosas que puede hacer mejor que JSON o MySQL (o algún otro aspecto del desarrollo web) y cuándo debería usarlo.

+0

quité la etiqueta Javascript de su pregunta, buena pregunta también necesitaba saber esto – Starx

+0

[AJAX o AJAJ?] (Http://izlooite.blogspot.com/2010 /05/ajax-or-ajax-xml-vs-json.html) –

Respuesta

10

JSON es muy liviano, lo que lo hace más adecuado para pasar datos al frente.

XML tiene etiquetas descriptivas que (personalmente encuentro) hacen que sea más fácil de leer en un formato sin formato. Si quisiera tener algún tipo de archivo de configuración cargado desde mi programa, lo tendría en formato de archivo XML.

Esa es mi idea de todos modos, pero estoy seguro de que hay razones mucho más profundas para elegir una sobre la otra. De los cuales no tengo suficiente experiencia para enumerar :)

Sin embargo, encontré un par de sitios que hacen algunos buenos puntos.

http://ajaxian.com/archives/json-vs-xml-the-debate (Algunos buenos puntos en los comentarios)

http://webignition.net/articles/xml-vs-yaml-vs-json-a-study-to-find-answers/

+2

¿Qué quiere decir 'xml no admite matrices'?!?!? –

+0

Mi error, editado. – 4imble

+0

gracias kohan, algunos artículos interesantes hay – Haroldo

-6

Con PHP, como con la mayoría de los lenguajes dinámicos, es mejor relegarlo a fines de interoperabilidad. XML es más rápido de reescribir que Java, pero PHP es más rápido de reescribir que XML.

+7

XML es un medio para estructurar datos, Java y PHP son lenguajes de programación, no se pueden comparar. – Quentin

2

Uso XML principalmente para archivos de configuración o como formato de transporte; sin embargo, si está familiarizado con JSON o YAML, pueden ser igual de buenos para usted, por lo que no es realmente necesario aprender XML.

11

XML es útil para almacenar estructuras de árbol heterogéneas, en situaciones donde se pueden aplicar herramientas de propósito general y es deseable cierta redundancia. Si está haciendo un desarrollo web moderno, existe una buena posibilidad de que esté produciendo XHTML en lugar de HTML, y esté produciendo RSS o Atom, por lo que ya debería usarlo. Los formatos RDF más comunes lo usan.

JSON es un poco más fácil de usar para los datos en la web, pero no tiene el mismo conjunto de características: no puede tener atributos en JSON, por lo que no hay diferencia implícita entre datos y metadatos, y no tiene instrucciones de procesamiento o la capacidad de crear entidades para fragmentos de texto repetidos. Por otro lado, muchos usos de XMLl tampoco usan esas características. Las bases de datos SQL tienen un esquema fijo y no representan bien los árboles.

Mayormente XML se utiliza para la interoperabilidad.

+2

Si está haciendo un desarrollo web, hay buenas posibilidades de que esté produciendo un 'XHTML' inválido enviado como' text/html'. En mi humilde opinión :) –

+1

Sí, pero eso no es una excusa para no aprenderlo. –

+2

* "no puede tener atributos en JSON" * ¿Qué tal: '{" firstAttribute ":" value1 "," secondAttribute ":" value2 "," content ": [/ * blah * /]}'? Y esos atributos pueden ser ellos mismos objetos, mientras que en XML están limitados a cadenas. –

4

que usan XML para las traducciones de etiquetas de sitios web, etc, etiquetas o contenido no repetitiva. Para este tipo de cosas, es un salvavidas.

1

"Conocer XML" puede significar un par de cosas diferentes.

Lo primero es entender la sintaxis básica. Es un requisito previo para escribir XHTML, SVG, Atom, RSS y una serie de otros lenguajes que son aplicaciones XML.

El segundo se basa en el primero y es un entendimiento de cómo desarrollar sus propias aplicaciones XML, es decir, el almacenamiento de datos personalizado o formatos de intercambio. JSON puede cumplir una función similar y tiene algunas ventajas (como la posibilidad de representar implícitamente una matriz de datos: { bar: ['foo'] }. En XML, un analizador debe saber si desea convertir los contenidos de <bar> en una matriz para el lenguaje de programación si desea tratarlo como una estructura de datos simple) <bar><foo/></bar>) y desventajas (XML le permite tener elementos opcionales en cualquier orden con menos esfuerzo).

2

XML es la única solución para el intercambio de datos y no sirve para nada más.

Por lo tanto, debe aprender XML solo si va a analizar o proporcionar un feed RSS. Sin embargo, no hay ciencia de cohetes, ya que es el mismo lenguaje de marcas como HTML, con algunas pautas estrictas.

Ol' good article from ol' good Joel de ordenar las cosas

+2

El absolutismo siempre es incorrecto. – Tom

6

Una de las ventajas de XML a través de otros formatos de serialización es el número de herramientas disponibles. El otro es la capacidad de formalizar la descripción de sus datos (Esquema XML).

La disponibilidad de herramientas le permite usar editores XML, transformadores, visualizadores, ... Por ejemplo, donde trabajo, tenemos el equipo de comunicación usando un editor XML para editar contenido y metadatos. No son lo suficientemente técnicos como para escribir JSON a mano (o XML), pero es muy fácil darles una plantilla con una bonita interfaz genérica para editar los documentos necesarios.

Tener una forma de describir el formato (XSD, DTD, Relax NG, ...) significa que también puede validar automágicamente sus documentos. También sirve como una buena documentación de lo que está permitido y lo que no está en sus documentos.

5

XML es simplemente para almacenar mensajes de una manera estructurada que es (aparentemente) independiente de la aplicación. Esto es todo lo que es. Dicho de otra manera, XML ofrece una forma de preservar la semántica (significado) de los datos cuando se comunica entre diferentes aplicaciones. También es popular como formato de configuración, ya que (1) un archivo de configuración es solo un mensaje entre diferentes sesiones de aplicaciones * y (2) casi todos los idiomas tienen bibliotecas XML estándar maduras.

* también puede considerar esto como un caso degenerado de comunicación entre aplicaciones.

1

XML es útil como un formato para:

  • de datos de portabilidad a través de plataformas
  • copia de seguridad o exportar texto desde una base de datos
  • integración

sistemas de gestión de contenido entre idiomas usan para este propósito. También es útil para el almacenamiento en caché de plantillas de código del lado del cliente, tal como se utiliza en skechers.com y se explica en un comment from Mark Beeson on Tim Bray's site:

Afortunadamente, hay es una manera de almacenar en caché toda la capa de vista en el cliente, mientras que todavía respetando páginas y ofreciendo AJAX en lugares correctos sin URLs monstruosas. Consulte la fuente de skechers.com: estamos utilizando XSLT del lado del cliente, que se almacena en la memoria caché en el navegador, y el archivo xsl describe el diseño de todo el sitio. De esta forma, cuando navega de página en página, solo está descargando una pequeña cantidad de XML. Descubrimos que esto acelera inmensamente nuestra aplicación, y nos permite obtener una gran cantidad masiva de almacenamiento en caché.

Referencias

Cuestiones relacionadas