2009-07-28 29 views
25

Bạn có thể đặt nhận xét trước khi khai báo XML trong một tệp XML không?OK để đặt nhận xét trước khi khai báo XML?

<!-- 
Is this bad to do? 
--> 
<?xml version="1.0" encoding="utf-8"?> 
<someElement /> 
+2

Khi bạn thử, điều gì đã xảy ra? –

+1

Xin chào! Đừng gọi tôi về thói quen xấu của tôi khi hỏi trước và thử nghiệm sau ...^_^ –

+4

Thử nghiệm sẽ chỉ cho phép bạn nói "tốt, nó hoạt động trên * máy tính * của tôi", điều đó không hữu ích. Một số bộ vi xử lý XML có thể cho phép nó, một số có thể không. Nhưng nếu bạn làm theo spec, thì có nhiều khả năng là TẤT CẢ các bộ xử lý XML (hiện tại và tương lai) sẽ có thể xử lý các tệp của bạn. –

Trả lời

41

Không, không được.

Appendix F of the XML spec nói:

Bởi vì mỗi thực thể XML không kèm theo bên ngoài thông tin mã hóa và không có trong UTF-8 hoặc UTF-16 mã hóa phải bắt đầu bằng một lời tuyên bố mã hóa XML , trong đó ký tự đầu tiên phải là '<? xml', bất kỳ bộ xử lý phù hợp nào có thể phát hiện sau từ hai đến bốn octet đầu vào, trong đó các trường hợp sau được áp dụng.

Ah, nhưng, phần F là phi quy chuẩn, bạn nói.

Vâng, section 2.1 cho việc sản xuất cho một tài liệu XML cũng như hình thành, như sau:

[1]  document  ::=  prolog element Misc* 

... và trong section 2.8 chúng tôi nhận được sản xuất cho "prolog":

[22] prolog  ::=  XMLDecl? Misc* (doctypedecl Misc*)? 
[23] XMLDecl ::=  '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>' 

Vì vậy, , bạn có thể bỏ qua tuyên bố <? xml, nhưng bạn không thể thêm tiền tố vào bất kỳ thứ gì.

(Ngẫu nhiên, "Misc" là danh mục nhận xét rơi vào).

+1

+ 1 cho câu trả lời toàn diện nhất và chính thức – rmeador

+1

Câu trả lời hay, nghiên cứu tuyệt vời chính xác những gì tôi cần. +1. – Josh

8

theo this page, điều này là bất hợp pháp.

+10

Bạn có bị bắt không? –

+10

Tôi bị đánh đập và đưa vào một nhà tù ở Singapore vì điều này! – Chap

5

Khai báo XML chỉ định mã hóa tài liệu, điều quan trọng đối với các nhận xét như đối với XML cấu trúc. Do đó, tuyên bố nên đi trước. Tôi sẽ không ngạc nhiên nếu nhiều độc giả XML có thể đối phó với điều này, nhưng đó là một ý tưởng tồi.

+1

, tôi đồng ý với bạn. trong thực tế, trình phân tích cú pháp phải có một ý tưởng làm thế nào để đọc tài liệu vì anh ta sẽ không thể đọc được mã hóa. do đó chỉ đặt các ký tự nhiều byte vào nhận xét này sẽ không được phép ... – Atmocreations

1

Không, điều này không tuân thủ các tiêu chuẩn XML, nhưng nhận xét là tốt.

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