2011-01-12 4 views
7

XML ma wiele zalet. Jest czytelny zarówno dla maszyny, jak i dla człowieka, ma znormalizowany format i jest niezwykle wszechstronny.Czy są (były) jakieś wysiłki, aby stworzyć język schematu dla dowolnych formatów binarnych?

Ma również pewne wady. Jest to gadatliwy i niezbyt skuteczny sposób przesyłania dużych ilości danych.

Jednym z najbardziej przydatnych aspektów XML jest język schematu. Korzystając ze schematu, można wygenerować kod źródłowy w dowolnym nowoczesnym języku programowania, aby odczytać format XML bez żmudnego procesu ręcznego kodowania, który zwykle towarzyszy większości innych formatów plików.

To zmusiło mnie do zastanowienia się, czy istnieje język schematu dla dowolnych formatów plików binarnych, a jeśli nie, czy byłoby to warte wysiłku?

Na wszelki wypadek nie wiem. Pytam o język, którego celem jest zdefiniowanie przesunięć bajtów, długości pól i rekordów, ograniczników itp., Które mogłyby zostać przeanalizowane w celu wygenerowania kodu, który odczytałby format pliku zgodny z tą specyfikacją.

Wątpię, czy jestem pierwszą osobą, która zasugerowała taki pomysł, więc jeśli znasz jakieś projekty lub grupy robocze, które mają lub obecnie poszukują tego obszaru, będę wdzięczny.

Odpowiedz

1

"Schemat" i "arbitralny" są sprzeczne. Określanie przesunięć bajtów, długości pól i rekordów, separatorów itp. Nie jest "arbitralne".

Odsunięcia bajtów istnieją od czasu COBOL. EDI jest dobrze znanym, wypróbowanym i prawdziwym protokołem, który robi dokładnie to.

WebMethods, narzędzie EDI, ma wbudowany bardzo ładny edytor EDI.

+0

„Określanie offsety bajtowe, pola i rekord długości, separatory itp nie jest«arbitralny».” Nie, ale format pliku zdefiniowany przez taką specyfikację jest. Być może "Ogólny cel" byłby lepszym wyborem słów. Jeśli odnosisz się do EDI zgodnie ze standardami X12, szukałem czegoś trochę mniej biurokratycznego. Każdy może tworzyć i używać schematu XML bez konieczności przesyłania go do jednostki normalizacyjnej w celu zatwierdzenia. –

+0

Ale musisz przekazać to konsumentom. Nawet posiadanie wbudowanych metadanych nie oznacza, że ​​są zawsze jasne i zrozumiałe. Każda firma korzystająca z protokołów opartych na rekordach może ją utworzyć bez przedkładania jej do jednostki normalizacyjnej; Muszą wiedzieć o konsumentach, aby nie musieli zgadywać. – duffymo

0

W skrócie, nie. O ile nie uznaje się języków programowania jako "języków schematów". XML jest bardzo uporządkowany niezależnie od schematu. Formaty binarne mogą być absolutnie dowolne. Rozważmy stare formaty MS Office, w których zasadniczo był to zrzut pamięci surowych struktur danych używanych w środowisku wykonawczym. Jeśli zezwalasz na programowanie języków, możesz - i zrób - stworzyć parser w tym :-) Co ze skompresowanymi plikami binarnymi: zip, jpeg, WebM? W jaki sposób i dlaczego język schematu chciałby objąć ten typ rzeczy?

+0

Niektóre formaty binarne mogą być złożone, aby formalnie zdefiniować je przy użyciu języka deklaratywnego. To samo dotyczy niektórych formatów xml. –

+2

Dlaczego jest to dla mnie oczywiste, więc możesz otworzyć plik i zobaczyć ważne fragmenty, którymi możesz się bawić bez łamania go. Na przykład metadane. Również zip jest dobrze zdefiniowanym formatem. Edytor "010 Editor" zapewnia implementację tego, czego szuka OP i zawiera kilka przykładowych skryptów, w tym jeden, który analizuje pliki zip. – Jimbo

Powiązane problemy