Фрагменты XSD действительны, поэтому ошибка , которую вы получаете , не имеет смысла.Я считаю, что это скорее ошибка в вашем программном обеспечении WMB.
Какую версию WMB вы используете?
Поскольку вам кажется, что вы можете играть с XSD, это также поможет с устранением неполадок, если вместо удаления атрибута по умолчанию попробуйте переписатьшаблон из одного со значением «0 | 1», на два отдельных шаблона, один со значением «0», а другой со значением «1».Я видел ранее с другими продуктами того же производителя, где шаблоны, связанные с xsd: boolean, терпят неудачу.
ОБНОВЛЕНИЕ: С момента публикации я столкнулся с этим и другими подобными сценариями и понял, что схемапроцессоры ведут себя по-разному, проверяя то, что кажется в основном одним и тем же: схема, которая корректируется в соответствии со спецификацией, но практически описывает невозможность.И здесь все становится интересным относительно того, что правильно .
Возможно, этот случай немного более тонкий, поскольку он включает получение this и this справа;в основном, если задано значение по умолчанию, оно будет использовать каноническое представление связанного значения (а не строки в значении по умолчанию!).Поскольку 1 означает True для логического значения, каноническим представлением этого является строка true , которая теперь явно не соответствует шаблону (который имеет дело с лексическимпредставление - строка в основном) 0 | 1 , что, в свою очередь, делает эти два несовместимыми.Учитывая PSVI, процессор XML, поддерживающий XSD, не может создать действительный XML при применении значения по умолчанию.Это то, что говорится в сообщении об ошибке.
Чтобы показать другую невозможность, которая не помечена каким-либо процессором XSD, который я обычно использую, рассмотрите этот конкретный фрагмент:
<xsd:complexType name="Test">
<xsd:sequence>
<xsd:element name="Impossible" type="Test"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="Test" type="Test"/>
Невозможно создатьдопустимый XML из этого XSD, точно так же как имеющий default = "1" и отсутствующий атрибут в вашем случае (шаблон ограничен 0 и 1).
Для меня оба сценария несколько похоже на компилятор кода, перехватывающий (во время компиляции) условие деления на ноль - где это возможно.