2011-01-12 12 views
7

XML tiene muchos beneficios. Es legible tanto por máquina como por humanos, tiene un formato estandarizado y es notablemente versátil.¿Ha habido (ha habido) algún esfuerzo para crear un lenguaje de esquema para formatos binarios arbitrarios?

También tiene algunas desventajas. Es detallado y no es un medio muy eficiente de transferir grandes cantidades de datos.

Uno de los aspectos más útiles de XML es el lenguaje de esquema. Usando un esquema puede generar código fuente en cualquier lenguaje de programación moderno para leer un formato xml sin el tedioso proceso de codificación manual que generalmente acompaña a la mayoría de los demás formatos de archivo.

Esto me hizo pensar si existe un lenguaje de esquema para formatos de archivo binarios arbitrarios y, en caso negativo, ¿sería un esfuerzo que vale la pena?

Por si acaso, no he tenido claro. Pregunto acerca de un lenguaje cuyo propósito es definir compensaciones de bytes, longitudes de campo y registro, delimitadores, etc. que podrían analizarse para generar código que leería un formato de archivo que se ajuste a esa especificación.

Dudo que sea el primero en sugerir tal idea, así que si conoce algún proyecto o grupo de trabajo que tenga o esté siguiendo esta área lo agradecería.

Respuesta

1

"esquema" y "arbitrario" son contradictorios. La especificación de compensaciones de bytes, longitudes de campo y registro, delimitadores, etc. no es "arbitraria".

Las compensaciones de bytes han existido desde COBOL. EDI es un protocolo bien conocido, probado y verdadero que hace exactamente esto.

WebMethods, una herramienta EDI, tiene un muy buen analizador EDI incorporado.

+0

"Especificación de desplazamientos de bytes, de campo y registrar longitudes, delimitadores, etc., no es "arbitraria"." No, pero el formato de archivo definido por dicha especificación es. Quizás "Propósito general" hubiera sido una mejor elección de palabras. Si te refieres a EDI como lo especifican los estándares X12, estaba buscando algo un poco menos burocrático. Cualquiera puede crear y usar un esquema xml sin necesidad de enviarlo a un organismo de estándares para su aprobación. –

+0

Pero tiene que comunicárselo a los consumidores. Incluso tener metadatos incorporados no significa que siempre sea claro y comprensible. Todas las empresas que utilizan protocolos basados ​​en registros pueden crear uno sin someterlo a un organismo de normas; tienen que dar pistas sobre los consumidores para que no tengan que adivinar. – duffymo

1

Sí, varias personas han intentado hacer esto.

Uno de estos intentos es Binary Format Description. Otro es Data Format Description Language. Sin embargo, no estoy seguro de qué tan práctico sea uno realmente.

+1

También está BinX, el lenguaje de descripción XML binario: http://www.edikt.org.uk/binx/ –

0

En resumen, no. A menos que cuente los lenguajes de programación como "lenguajes de esquema". XML está muy estructurado independientemente del esquema. Los formatos binarios pueden ser absolutamente cualquier cosa. Considere los viejos formatos de MS Office donde era esencialmente un volcado de memoria de las estructuras de datos en bruto utilizadas en tiempo de ejecución. Si permite los lenguajes de programación, entonces puede - y lo hace - crear un analizador en ese :-) ¿Qué pasa con los archivos binarios comprimidos: zip, jpeg, WebM? ¿Cómo y por qué un lenguaje de esquema quiere abarcar ese tipo de cosas?

+0

De acuerdo, algunos formatos binarios pueden ser complejos para definir formalmente usando un lenguaje declarativo. Lo mismo es cierto para algunos formatos xml. –

+2

El por qué es bastante obvio para mí, por lo que puede abrir el archivo y ver los bits importantes con los que puede jugar sin romperlos. Metadatos por ejemplo. Además, zip es un formato bien definido. El editor "010 Editor" proporciona una implementación de lo que el OP aquí busca y viene con algunos scripts de ejemplo, incluido uno que analiza archivos zip. – Jimbo

Cuestiones relacionadas