Walidacja dokumentów a flaga ReportValidationWarnings

Począwszy od wersji 2.0 .NET Frameworka przestrzeń nazw System.Xml.Schema wzbogaciła się o enum o nazwie XmlSchemaValidationFlags. Enum ten ma zastosowanie przy walidacji dokumentu Xml przy użyciu schemy (XSD) za pomocą obiektu klasy XmlReader lub XmlSchemaValidator. Jedną z "bardziej interesujących" wartości enuma XmlSchemaValidationFlags jest flaga ReportValidationWarnings. Informuje ona procesor xsd czy informacja o napotkanych problemach, które nie blokują walidacji (czyli nie są de facto błędami) mają być zgłaszane czy nie. Flaga ta jest o tyle interesująca, że domyślnie jest WYŁĄCZONA. Oznacza to, że tylko błędy walidacji są zgłaszane użytkownikowi. Z pozoru wygląda to niegroźnie. Jest jednak przypadek, w którym może to spowodować poważne problemy.
Dla przykładu weźmy następującą schemę:

<xs:schema attributeFormDefault="unqualified" 
           elementFormDefault="qualified"
           targetNamespace="http://xml.com.pl/slownik"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="slownik">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="element">
          <xs:complexType>
            <xs:attribute name="klucz" type="xs:string"
use="required" />
            <xs:attribute name="wartosc" type="xs:string"
use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>