2011-01-12 18 views
7

XML có nhiều lợi ích. Đó là cả hai máy tính và con người có thể đọc được, nó có một định dạng tiêu chuẩn hóa và nó là đáng kể linh hoạt.Có (đã có) bất kỳ nỗ lực nào để tạo một ngôn ngữ lược đồ cho các định dạng nhị phân tùy ý không?

Nó cũng có một số nhược điểm. It's verbose và không phải là một phương tiện rất hiệu quả của việc chuyển một lượng lớn dữ liệu.

Một trong những khía cạnh hữu ích nhất của XML là ngôn ngữ lược đồ. Sử dụng lược đồ bạn có thể tạo mã nguồn bằng bất kỳ ngôn ngữ lập trình hiện đại nào để đọc định dạng xml mà không có quá trình mã hóa tay tẻ nhạt thường đi kèm với hầu hết các định dạng tệp khác.

Điều này khiến tôi suy nghĩ về việc liệu một ngôn ngữ lược đồ cho các định dạng tệp nhị phân tùy ý có tồn tại hay không, liệu nó có phải là một nỗ lực đáng giá không?

Chỉ trong trường hợp tôi không rõ ràng. Tôi hỏi về ngôn ngữ có mục đích là xác định độ lệch byte, trường và độ dài bản ghi, dấu tách, v.v. có thể được phân tích cú pháp để tạo mã có thể đọc định dạng tệp phù hợp với đặc tả đó.

Tôi nghi ngờ tôi là người đầu tiên đề xuất ý tưởng như vậy nếu bạn biết về bất kỳ dự án hoặc nhóm làm việc nào có hoặc đang theo đuổi khu vực này, tôi sẽ rất biết ơn.

Trả lời

1

"lược đồ" và "tùy ý" là mâu thuẫn. Chỉ định bù trừ byte, trường và độ dài bản ghi, dấu phân cách, v.v. không phải là "tùy ý".

Bù đắp byte đã có từ COBOL. EDI là một giao thức nổi tiếng, cố gắng và đúng thực hiện chính xác điều này.

WebMethods, một công cụ EDI, có một trình phân tích cú pháp EDI rất đẹp được tích hợp sẵn trong đó.

+0

"Xác định hiệu số byte, lĩnh vực và ghi lại độ dài, delimiters vv không phải là "độc đoán"." Không, nhưng định dạng tệp được xác định bởi một đặc điểm kỹ thuật như vậy là. Có lẽ "Mục đích chung" sẽ là một lựa chọn tốt hơn của các từ. Nếu bạn đang đề cập đến EDI theo quy định của các tiêu chuẩn X12 tôi đã tìm kiếm một cái gì đó ít quan liêu hơn một chút. Bất kỳ ai cũng có thể tạo và sử dụng lược đồ xml mà không cần phải gửi nó tới cơ quan tiêu chuẩn để phê duyệt. –

+0

Nhưng bạn phải truyền đạt nó cho người tiêu dùng. Ngay cả khi siêu dữ liệu được tích hợp không có nghĩa là nó luôn rõ ràng và dễ hiểu. Mỗi công ty sử dụng các giao thức dựa trên bản ghi là miễn phí để tạo một giao thức mà không cần gửi nó tới một cơ quan tiêu chuẩn; họ phải đầu mối cho người tiêu dùng để họ không phải đoán. – duffymo

1

Có, một số người đã cố gắng thực hiện việc này.

Một lần thử như vậy là Binary Format Description. Số khác là Data Format Description Language. Tuy nhiên, tôi không chắc thực tế là một trong hai thực tế là như thế nào.

+1

Ngoài ra còn có BinX, ngôn ngữ mô tả XML nhị phân: http://www.edikt.org.uk/binx/ –

0

Tóm lại, không. Trừ khi bạn đếm các ngôn ngữ lập trình là "ngôn ngữ lược đồ". XML rất có cấu trúc bất kể lược đồ. Định dạng nhị phân có thể hoàn toàn bất cứ điều gì. Hãy xem xét các định dạng văn phòng MS cũ, nơi nó cơ bản là một kết xuất bộ nhớ của các cấu trúc dữ liệu thô được sử dụng trong thời gian chạy. Nếu bạn cho phép ngôn ngữ lập trình, thì bạn có thể - và làm - tạo một trình phân tích cú pháp trong đó :-) Điều gì về các tệp nhị phân nén: zip, jpeg, WebM? Làm thế nào và tại sao một ngôn ngữ lược đồ muốn bao gồm những thứ đó?

+0

Được cấp, một số định dạng nhị phân có thể phức tạp để chính thức xác định bằng cách sử dụng ngôn ngữ khai báo. Điều này cũng đúng với một số định dạng xml. –

+2

Lý do tại sao khá rõ ràng đối với tôi, vì vậy bạn có thể mở tập tin và xem các bit quan trọng mà bạn có thể fiddle mà không phá vỡ nó. Siêu dữ liệu chẳng hạn. Ngoài ra, zip là một định dạng được xác định rõ. Trình chỉnh sửa "010 Editor" cung cấp một bản thực hiện những gì OP ở đây đang tìm kiếm và đi kèm với một số tập lệnh ví dụ bao gồm một tập lệnh phân tích cú pháp các tệp zip. – Jimbo

Các vấn đề liên quan