2010-02-16 33 views
8

Tôi đang tạo một DTD cho tài liệu xml. Tôi có một số Enumerated attribute cho phần tử xml. Câu hỏi của tôi là: Thuộc tính Loại có dấu cách không?Thuộc tính XML có thể có dấu cách không?

ví dụ:

<!ELEMENT Link (#PCDATA)> 
    <!ATTLIST Link Type (Amendment|Reference|Superseded|Modified| 
    Corrigendum|Corresponds|Endorsement|Equivalent|Identical|Modified| 
    Not Equivalent|Note taken of|Related|Similar) "Reference"> 

Vì vậy, những gì tôi muốn là:

<Link Type="Not Equivalent" \> 

Nhưng điều đó dường như barf.

Có một số ma thuật voodoo tôi cần phải làm cho không gian? Hay chỉ là may mắn?

tôi nhìn vào một fewspots nhưng không thể nhìn thấy bất kỳ tài liệu tham khảo

Cảm ơn!

Cập nhật

Xin lỗi - khi tôi nói -cà giựt, tôi có nghĩa là khi tôi cố gắng để xác nhận các tài liệu (Ví dụ: mở nó trong một trình duyệt web) tôi nhận được một thông báo lỗi: nhân vật không hợp lệ được tìm thấy trong ATTLIST liệt kê. Lỗi khi xử lý tệp 'resource: /// C: /myxmldocument.xml'. ...

+1

Nếu bạn đang trong quá trình tạo DTD, thì tôi nghiêm túc đề nghị xem xét lại và viết XML Schema thay thế. Đó là một khủng khiếp hơn rất nhiều linh hoạt, trong khi cùng một lúc cụ thể hơn về những gì được và không được phép. – skaffman

Trả lời

10

Câu trả lời ngắn gọn là không. Thuộc tính Xml là mã thông báo tên và mã thông báo tên không thể chứa dấu cách. Các thông số kỹ thuật có liên quan có liên quan:

Attributes

Attribute Types (see NotationType)

Names (See 4a - NameChar)

Nhân vật không hợp lệ là không gian. Bạn có thể dùng '.' hoặc '-' làm dấu phân tách nếu bạn muốn.

+5

Bản thân XML hỗ trợ các khoảng trống trong các thuộc tính tốt - đó là thông số DTD không cho phép nó trong các liệt kê 'ATTLIST'. – skaffman

+2

Chỉ cần làm rõ - dấu cách trong tên thuộc tính luôn không hợp lệ. Dấu cách trong các giá trị thuộc tính là OK, NHƯNG một khai báo thuộc tính liệt kê yêu cầu tất cả các mã thông báo trong liệt kê phải là các chuỗi ký tự tên chỉ, do đó không có dấu cách. Bạn có thể sử dụng 'Not_Equivalent (hoặc thậm chí' -Equivalent 'là OK, mặc dù đây không phải là một tên hợp lệ). – Max

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