いいえ、列挙値にスペースを含めることはできません。列挙された各値は、正当な NMTOKEN でなければなりません。つまり、XML 名で使用できる一連の文字でなければなりません。したがって、MIXED、Mixed、RESPECT、MIXED-RESPECT、および MIXED_RESPECT は、列挙では正当な値ですが、「MIXED RESPECT」ではありません。ごめん。
その理由は歴史的なものです。SGML (XML の派生元) では、可能な値の列挙リストで宣言されている場合、言語のオプション機能により、属性名を省略できました。だから代わりに
<SystemName Case="MIXED_RESPECT">...
著者は書くことができる
<SystemName MIXED_RESPECT>...
<table border="noborder">orの代わりに、<table border="border">著者は単に<table border>orと書くことができ<table noborder>ます。値がコンテキストで解析可能であることを確認するために、それらは正当な NMTOKEN であることが制約されました。
この機能の欠点の 1 つは、この魔法のトリックが常に可能であることを保証するために、SGML では 2 つの属性の列挙値が重複することを禁じていたため、2 つの属性を正当な値としてyesおよびnoとして持つことができなかったことです (パーサーが見て<table yes>も意味がわからないかもしれませんborder="yes")compact="yes"。
最小化機能は XML では削除されました (SGML パーサーを作成することを冒険的にした他のすべての最小化機能と同様に) が、すべての XML DTD が SGML として合法であることを保証するために、それを可能にした制約は保持されました。 DTD。