2009-05-08 26 views
16

Tôi đã cố đọc http://www.w3.org/TR/xml-infoset/wikipedia entry. Nhưng thẳng thắn mà tôi vẫn không chắc sự khác biệt là gì.Trình thông tin XML là gì và theo cách nào khác với một tài liệu XML?

Các quote:

Một tài liệu XML có một thông tin thiết nếu nó được tốt được hình thành và đáp ứng các hạn chế không gian tên. Không có yêu cầu cho tài liệu XML là hợp lệ để có thông tin được đặt.

Từ mục nhập wikipedia dường như không có ý nghĩa. Làm thế nào một tài liệu không hợp lệ có bất kỳ ngữ nghĩa nào, và do đó làm thế nào nó có thể là một tập hợp 'thông tin'?

này 'infoset' là gì mà

tốt được hình thành và đáp ứng các namespace chế

XML có? Và theo cách nào nó hữu ích trong chính nó. Nói cách khác, tại sao lại là ngữ nghĩa, cần thiết để xác định XML infoset? Có bất kỳ thông tin nào không thể được biểu diễn trong XML không? Nếu vậy tôi có thể thấy tập giới hạn của XML Infoset, nhưng nếu không chắc chắn XML Infoset là vô nghĩa như thuật ngữ 'thông tin'?

Cảm ơn bạn cho câu trả lời thú vị: tôi vẫn không thể nắm bắt lý do tại sao infoset Xml có mục đích nào như trái ngược với infoset hạn. Nhưng các bạn đã cho tôi câu trả lời trực tiếp cho câu hỏi.

+1

Câu hỏi cũ, nhưng tôi đã đăng câu trả lời mới vì tôi nghĩ câu trả lời này hữu ích. – RichardOD

Trả lời

6

Cách hữu ích để suy nghĩ về sự khác biệt giữa văn bản XML và XML infoset là xem xét Fast Infoset. Đây là một biểu diễn nhị phân của XML infoset.

Vì vậy, bạn có một "infoset" trừu tượng là một mô hình khái niệm đại diện cho dữ liệu XML (nút, phần tử, thuộc tính, v.v.). Điều này có thể được thể hiện dưới dạng văn bản như một tài liệu XML văn bản, hoặc như là một luồng Infoset nhanh. Cả hai đều đại diện cho cùng một dữ liệu, nhưng theo những cách hoàn toàn khác nhau.

+0

Cảm ơn bạn, nhưng tôi vẫn có vấn đề trong việc hiểu những gì làm cho thông tin XML được đặt khác với trường hợp chung của một tập thông tin. Tôi sẽ xem xét ans đó. –

+0

Tôi sẽ cố gắng và rõ ràng hơn. Có phải đó là trường hợp mà XML => các phần tử và thuộc tính không? Trong trường hợp đó nó có ý nghĩa tuy nhiên tôi ban đầu cảm nhận khái niệm về XML như là một chuyên môn của trường hợp chung của infoset (ví dụ: mô tả thông tin). Bây giờ có vẻ như trường hợp XML là khái quát hóa khái niệm đó, trong trường hợp này, XML infoset là một infoset. Do đó tôi không có khả năng hiểu được ngữ nghĩa. –

+0

Thankyou. nó cuối cùng đã bị chìm. –

2

Tài liệu XML hợp lệ đáp ứng các yêu cầu của DTD hoặc XSD (hoặc các tiêu chuẩn khác). Nếu nó được hình thành tốt, nó vẫn có thể là 'không hợp lệ', nếu nó vi phạm các quy tắc trong DTD hoặc XSD đã cho.

Chỉnh sửa: Tôi mới vào lĩnh vực XML này, nhưng có vẻ như infoset là mô tả 'mức trừu tượng' của các phần của tài liệu XML, độc lập với triển khai kỹ thuật thực tế - ví dụ: một mô hình đối tượng tài liệu thực hiện.

+0

nhưng những gì làm cho nó một infoset như trái ngược với một tài liệu vanilla xml? –

17

XML không phải là văn bản. XML "là" XML infoset. Điều này sau đó có thể được tuần tự hóa thành văn bản trong một tài liệu XML, nhưng đó là thông tin XML là thực tế. Ví dụ:

Ví dụ: infoset có thể tồn tại trong bộ nhớ dưới dạng cây DOM. Nó tồn tại trong bộ nhớ khi thực hiện một mô hình đối tượng trừu tượng.

Điều gì xảy ra nếu tôi đã tuần tự hóa nó dưới dạng UTF-8 và sau đó là UTF-16. Rất có thể kết quả sẽ là hai bộ bit khác nhau, nhưng cùng một tập hợp.

Cũng nên xem xét rằng với văn bản, bạn nên làm những việc như ghép nối chuỗi. Bạn không muốn ghép nối "<" vào giữa phần tử XML. Bạn phải mã hóa nó trước. Tại sao bạn phải làm điều này nếu nó chỉ là văn bản? Ví dụ: nếu bạn đã sử dụng DOM, bạn chỉ cần nói element.InnerText = "<"; Khi được tuần tự hóa, "<" sẽ được mã hóa thành "& lt;". Tuy nhiên, đó là cùng một infoset.

+0

Tôi không thể hình dung mô hình này - theo cách nào là XML không phải là văn bản.Tôi không phải là facaetious nhưng làm thế nào để xml 'tồn tại' mà không được đại diện với dấu ngoặc nhọn? –

+0

cảm ơn bạn. Tôi đánh giá cao ví dụ. Ban đầu tôi đã nhìn thấy khía cạnh mã hóa và khía cạnh 'thông tin tương tự' - nhưng đây có phải là tất cả một infoset không? Điều gì làm cho XML Infoset khác biệt với bất kỳ định nghĩa thông tin nào? –

+0

+1 để kiểm tra mô hình độc lập với các bit của nó. Xem thêm http://en.wikipedia.org/wiki/Theory_of_Forms –

2

Một infoset XML là tập hợp các khái niệm trừu tượng như các thuộc tính và các thực thể có thể được sử dụng để mô tả một tài liệu XML hợp lệ. Theo đặc điểm kỹ thuật, "Tập thông tin của tài liệu XML bao gồm một số mục thông tin; bộ thông tin cho bất kỳ tài liệu XML đúng ngữ pháp nào sẽ chứa ít nhất một mục thông tin tài liệu và một vài mục khác."

Chỉ vì một tài liệu XML là một infoset không có nghĩa là nó phù hợp với một XSD và là một tài liệu XML hợp lệ.

+0

Cảm ơn bạn. Vì vậy, những gì bạn đang nói là bằng cách mô tả một cái gì đó với các thuộc tính và các thực thể - tức là mọi thứ và mọi thứ về mọi thứ làm cho nó trở thành một infoset xml? Tôi giới thiệu bạn với những câu hỏi ban đầu - vậy tại sao thậm chí bận tâm để xác định một điều như vậy? Điều gì cần nó? –

+1

Nó cho phép các tiêu chuẩn XML khác được mô tả theo mô hình trừu tượng này thay vì xét về hiệu quả của chúng đối với một số thực thi cụ thể. Xem xét thực tế là có thể có nhiều triển khai cụ thể và lợi ích trở nên rõ ràng hơn nhiều. Bạn sẽ phải mô tả XSLT nhiều lần để giải thích cho việc triển khai riêng biệt thay vì mô tả nó một lần, về mặt infoset. –

0

Một ví dụ điển hình mà tôi vừa mới xem là trong David Chappell's WCF PDF. Đây là cách nó hoạt động khi sử dụng TCP ví dụ:

Để cho phép hiệu suất tối ưu khi cả hai bên trong một giao tiếp được xây dựng trên WCF, mã hóa dây được sử dụng trong trường hợp đây là một phiên bản nhị phân tối ưu hóa của SOAP . Tin nhắn vẫn tuân theo cấu trúc dữ liệu của thông báo SOAP, được gọi là Infoset của nó, nhưng mã hóa sử dụng biểu thức nhị phân của Infoset đó thay vì định dạng chuẩn góc ngoặc đơn và văn bản . Sử dụng tùy chọn này sẽ có ý nghĩa đối với giao tiếp với ứng dụng khách trung tâm cuộc gọi , kể từ cũng được xây dựng trên WCF và hiệu suất là mối quan tâm tối thượng.

+0

Chúc mừng Giàu, đây thực sự là câu hỏi của tôi bắt nguồn từ đâu. Tôi không thể nhìn thấy những gì phân biệt XML Imfoset từ trường hợp chung của Infoset trong trường hợp của một điều với các thuộc tính. Trên thực tế tôi cảm thấy ngu ngốc vì tôi là người duy nhất không thể nhìn thấy lý do tại sao XMK trong các vấn đề XML infoset. –

2

Vui lòng xem liên kết này từ MSDN. http://msdn.microsoft.com/en-us/library/aa468561.aspx

Đó là lời giải thích thực sự tốt về các khái niệm và hy vọng sẽ làm rõ cho bạn.

+0

Cảm ơn bạn tôi đang đọc nó ngay bây giờ. Có vẻ khá tốt. –

0

XML là một ngôn ngữ, do đó nó có cú pháp và XML Infoset có đặc điểm kỹ thuật của mô hình dữ liệu, điều này là do các ứng dụng cần dựa trên mô hình dữ liệu chứ không phải cú pháp; XML xuất hiện trước XML Infoset; Tham khảo: các cân nhắc giao thức cho Truy cập Web Linkbase

+0

Bạn có thể tiếp cận câu trả lời này không? Mô hình dữ liệu về cơ bản là gì và nó khác với thuật ngữ infoset như thế nào? –

0

XML Infoset là một yêu cầu về cách bạn nên cấu trúc tài liệu XML được tuần tự hóa.

XML được tuần tự hóa có thể có các biểu mẫu khác nhau, như một số định dạng nhị phân (Fast Infoset) hoặc văn bản (biểu mẫu phổ biến nhất).

Về cơ bản đối với định dạng tài liệu XML (văn bản), mỗi phần tử và thuộc tính phải được xác định trong không gian tên tương ứng với máng xSD.

Here bạn sẽ tìm thấy một ví dụ.

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