2010-02-16 16 views
8

Bir xml belgesi için DTD yapıyorum. Bir xml öğesi için Enumerated attribute var. Sorum şu: Tür özniteliğinin boşlukları olabilir mi?XML özniteliklerinde boşluk var mı?

örn:

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

Yani ne istiyorum geçerli:

<Link Type="Not Equivalent" \> 

Ama bu kusmamaya görünüyor.

Mekanlar için yapmam gereken sihirli bir voodoo var mı? Yoksa sadece zor bir şans mı?

Ben fewspots baktım ancak herhangi referansı

Teşekkür göremiyordu!

Güncelleme

Üzgünüz - Ben kusmuğu deyince, ben (bir web tarayıcısında Örneğin Aç it) belgeyi doğrulamak çalıştığımda bir hata mesajı alıyorum anlamına: ATTLIST numaralandırma bulundu Geçersiz karakter. Kaynak 'dosyası işlenirken hata oluştu: /// C: /myxmldocument.xml'. ...

+1

Eğer DTD'yi kendiniz yaratma sürecindeyseniz, o zaman yeniden gözden geçirmeyi ve bunun yerine bir XML Şeması yazmayı ciddi olarak öneriyorum. Bu çok daha esnek, aynı zamanda neye izin verildiği ve neyin izinli olduğu konusunda daha spesifik olmak. – skaffman

cevap

10

Kısa cevap no. Xml nitelikleri ad tokenleri ve ad jetonları boşluk içeremez. İlgili gözlük bağlantılıdır:

Attributes

Attribute Types (see NotationType)

Names (See 4a - NameChar)

geçersiz karakter alanıdır. Kullanabilirsiniz '.' İsterseniz bir ayırıcı olarak veya '-'.

+5

XML, yalnızca özniteliklerdeki boşlukları destekler - bu, ATTLIST numaralandırmalarında izin vermeyen DTD belirtimidir. – skaffman

+2

Sadece netleştirmek için - öznitelikteki boşluklar Adlar her zaman geçersizdir. Öznitelik Değerler Tamamdır, ANCAK Numaralandırılmış bir öznitelik bildirimi, numaralandırmadaki tüm belirteçlerin yalnızca Ad Karakterleri dizileri olması, dolayısıyla boşluk olmaması gerekir. 'Not_Equivalent' (hatta geçerli bir Ad olmasa da '-Equivalent' is OK) kullanabilirsiniz. – Max

İlgili konular