2012-06-13 29 views
5

Tôi đang sử dụng XDocument để lưu vào bộ nhớ cache danh sách tệp.Cách thích hợp để lưu trữ tên tệp trong XML là gì?

<file id="20" size="244318208">a file with an &amp;ersand.txt</file> 

Trong ví dụ này, tôi sử dụng XText, và để cho nó tự động thoát khỏi nhân vật trong tên tập tin, chẳng hạn như & với &amp;

<file id="20" size="244318208"><![CDATA[a file with an &ersand.txt]]></file> 

Trong thế này, tôi đã sử dụng XCData để cho tôi sử dụng một chuỗi chữ chứ không phải là chuỗi thoát, vì vậy nó xuất hiện trong XML giống như trong ứng dụng của tôi.

Tôi tự hỏi liệu một trong hai điều đó có tốt hơn cái kia trong bất kỳ điều kiện nhất định nào không, hoặc nếu nó chỉ là sở thích cá nhân. Ngoài ra, nếu nó có nghĩa là bất cứ điều gì, tên tập tin có thể hoặc không thể chứa các ký tự không hợp lệ.

Trả lời

3

Cả hai đều cơ bản giống nhau và không có "thực hành tốt nhất" cụ thể.

Cá nhân, tôi đặt trước số <![CDATA[]]> cho số lượng lớn văn bản yêu cầu nhiều lần thoát (nói mã bit hoặc đánh dấu HTML).

Trong trường hợp cụ thể này, tôi muốn thoát khỏi số & đến &amp; như trong ví dụ đầu tiên của bạn.

0

Nó không quan trọng.
Cả hai đều là XML hợp lệ và cả hai đều có cùng ý nghĩa.

5

Tôi sẽ không rõ ràng sử dụng XText hoặc XCData - Tôi chỉ cung cấp chuỗi và để LINQ to XML làm bất cứ điều gì mình muốn.

Tôi nghĩ phiên bản không phải CDATA nói chung rõ ràng hơn. Có, amperands được thoát - và < cũng sẽ là vậy - nhưng vẫn còn nhỏ hơn đáng kể so với phần bắt đầu/kết thúc CDATA.

Đừng quên rằng rất hiếm khi con người nhìn thấy chính bản thân XML - ý tưởng cho rằng đó là phương tiện vận chuyển thông tin có thể đọc được một cách hợp lý trong đại diện khi bạn cần. Tôi sẽ không quá hung hăng về nó.

1

Hầu hết các tên tệp sẽ không chứa ký hiệu và hoặc ít hơn thì biểu tượng. Vì vậy, đi với XText. Đặt XCData cho các trường hợp bạn mong đợi rất nhiều các ký tự đó, chẳng hạn như khi nhúng và đoạn HTML trong một tài liệu XML.

Lý do: sự khác biệt trong việc sử dụng CPU để tuần tự hóa và văn bản phân tích cú pháp hoàn toàn không đáng kể. Nhưng có một sự khác biệt nhỏ (nhỏ) về dung lượng lưu trữ, băng thông hoặc bộ nhớ. Mọi thứ khác bằng nhau, sử dụng định dạng sử dụng không gian ít nhất (ngay cả khi các khác biệt nhỏ).

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