10
votes

Y a-t-il des efforts pour créer une langue de schéma pour des formats binaires arbitraires?

XML a beaucoup d'avantages. C'est à la fois la machine et l'homme lisible, il a un format normalisé et il est remarquablement polyvalent.

Cela a également quelques inconvénients. C'est verbeux et non un moyen très efficace de transférer de grandes quantités de données.

L'un des aspects les plus utiles de XML est la langue du schéma. Utilisation d'un schéma Vous pouvez générer du code source dans n'importe quel langage de programmation moderne pour lire un format XML sans le processus fastidieux de codage des mains qui accompagne généralement la plupart des autres formats de fichiers.

Cela m'a fait penser à savoir si une langue de schéma pour les formats de fichiers binaires arbitraires existe et sinon, serait-il une valeur telle qui s'efforce?

Juste au cas où je n'étais pas clair. Je pose des questions sur une langue dont le but est de définir des décalages d'octets, des longueurs de champ et d'enregistrement, des délimiteurs, etc. qui pourraient être analysées pour générer du code qui lirait un format de fichier conforme à cette spécification.

Je doute que je suis le premier à suggérer une telle idée, donc si vous connaissez des projets ou des groupes de travail qui ont ou poursuivent actuellement cette zone, je serais reconnaissant.


0 commentaires

6 Réponses :


0
votes

"schéma" et "arbitraire" sont contradictoires. Spécification des compensations d'octets, des longueurs de champ et d'enregistrement, des délimiteurs, etc. n'est pas "arbitraire".

Les décalages d'octets ont été autour depuis COBOL. EDI est un protocole bien connu, éprouvé et vrai qui fait exactement cela.

Webmethods, un outil EDI, possède un très bel analyseur EDI intégré à celui-ci.


2 commentaires

"Spécification des compensations d'octets, des longueurs de champ et d'enregistrement, des délimiteurs, etc. n'est pas" arbitraire "." Non, mais le format de fichier défini par une telle spécification est. Peut-être que "un objectif général" aurait été un meilleur choix de mots. Si vous parlez d'EDI comme spécifié par les normes X12, je cherchais quelque chose d'un peu moins bureaucratique. Tout le monde peut créer et utiliser un schéma XML sans avoir à le soumettre à un organisme de normalisation pour approbation.


Mais vous devez le communiquer aux consommateurs. Même les méta-données intégrées ne signifie pas que c'est toujours clair et compréhensible. Chaque entreprise utilisant des protocoles basées sur des enregistrements est libre de créer un sans le soumettre à un organisme de normalisation; Ils doivent s'impliquer dans les consommateurs afin qu'ils ne soient pas à deviner.



2
votes

Oui, plusieurs personnes ont essayé de le faire.

Une tentative de ces tentatives est Description du format binaire . Un autre est Format de données Description Langue . Je ne sais pas à quel point l'un ou l'autre n'est pas vraiment, cependant.


1 commentaires

Il y a aussi Binx, la langue binaire XML Description Langue: edikt.org.uk/binx



0
votes

En bref, non. Sauf si vous comptez les langages de programmation comme «langages de schéma». XML est très structuré quel que soit le schéma. Les formats binaires peuvent être absolument tout. Considérez les anciens formats de bureau MS où il s'agissait essentiellement d'une mémoire de mémoire des structures de données brutes utilisées au moment de l'exécution. Si vous autorisez les langages de programmation, vous pouvez - et faire - créer un analyseur en ce que :-) Qu'en est-il des fichiers binaires compressés: ZIP, JPEG, WebM? Comment et pourquoi un langage de schéma voudrait-il englober ce type de choses?


2 commentaires

Certes, certains formats binaires peuvent être complexes pour définir formellement à l'aide d'une langue déclarative. Il en va de même pour certains formats XML.


La pourquoi est assez évidente pour moi, vous pouvez donc ouvrir le fichier et voir les bits importants que vous pouvez jouer avec sans la casser. Métadonnées par exemple. De plus, ZIP est un format bien défini. L'éditeur "010 Editor" fournit une implémentation de ce que la PO ici recherche et vient avec certains scripts, y compris celui qui analyse des fichiers zip.



0
votes

Projet Epidal.Beeschema semble adapter vos besoins.

https://github.com/epidal/beeeschema


0 commentaires

4
votes

Je sais que c'est une vieille question, mais au cours des dernières années, je pense que Kaitai Strart a émergé comme l'une des meilleures options de description de schéma binaire arbitraire, le bonus qu'il génère du code d'analyse est un énorme bonus.

https://kaitai.io/

"Développer des analyseurs pour des structures binaires"


0 commentaires

1
votes

xtype est un nouveau langage de données binaires à usage général que j'ai développé qui couvre également l'utilisation typique de XML: https : //github.com/bitagoras/xtype/ Un format similaire qui devrait être mentionné ici est Ubjson, un format binaire efficace pour JSON comme des structures telles que des structures: HTTPS: //github.com/github.com/ubjson/universal-binary-json


0 commentaires