Целью всей схемы является ограничение потенциального пространства действительных документов.Либо вы делаете целый документ, либо вы делаете фрагмент.Если вы делаете целый документ, правильный подход - просто опустить схему полностью.В самом деле.У вас нет никаких ограничений (кроме правильной формы), и поэтому вы не можете применить какую-либо интерпретацию к документу, который не является XML-документом.
Случай, когда у вас есть фрагмент, оченьболее полезным, хотя.Лучший способ сделать это - иметь внешний элемент (имя которого вы контролируете), который содержит неконтролируемый фрагмент.Когда вы делаете это, вы должны сказать, что контент представляет собой последовательность произвольных элементов от нуля до неограниченного числа, что вы уже сделали.Если это действительно что-нибудь , вы также можете подумать о разрешении смешанного контента (конечно, не делайте этого, если он вам не нужен, но если вы хотите обрабатывать такие вещи, как контент в абзацах XHTMLтогда это то, что вам нужно) и разрешить произвольные атрибуты для содержащего элемента (см. <xsd:anyAttribute>
).Также часто бывает полезно указать, что существуют ограничения на то, из какого пространства имен могут быть получены произвольные элементы (##other
является наиболее полезным, поскольку он останавливает неконтролируемую рекурсию в вашей схеме).
Таким образом, кроме проверкиесли у вас есть правильные детали, вы, вероятно, лучше , а не , пытаясь справиться абсолютно все.Просто убедитесь, что ваш контейнерный элемент определен именно для вашей реальной цели.