Biorąc schemat (anonimowe, kluczowe interesujące są zmieniane, a reszta pominięta):Dlaczego ten dokument XDocument nie sprawdza poprawności?
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="inspec"
targetNamespace="the_right_namespace"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:element name="inspec">
<xs:complexType>
<xs:all>
<xs:element name="a_scalar_property" type="xs:int"/>
<xs:element name="a_collection_property">
<xs:complexType>
<snip>
</xs:complexType>
</xs:element>
<xs:element name="another_collection_property">
<xs:complexType>
<snip>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
i instancja (zadeklarowanego przy użyciu literały VB XML):
Dim xDocument =
<x:inspec xmlns:x='the_right_namespace'>
<a_collection_property/>
<another_collection_property/>
</x:inspec>
uwierzytelnienie nie powiedzie się z wiadomość The element 'inspec' in namespace 'the_right_namespace' has incomplete content. List of possible elements expected: 'a_scalar_property'.
Dlaczego? Element all
, zgodnie z W3Schools:
"Element all określa, że elementy podrzędne mogą pojawiać się w dowolnej kolejności i że każdy element podrzędny może wystąpić zero lub jeden raz."
Pominięcie a_scalar_property
jest tym samym, co włączenie go zero razy. Dlaczego ten dokument nie sprawdza się?
I nie mów takich rzeczy jak "opublikuj pełny kod" - to nie jest mój adres IP i mam zanonimizowany to z dobrego powodu. Niewiele więcej jest do tego, a ja przetestowałem ten minimalny przykład, daje taki sam rezultat.
dotyczy: (. Nie mówię, że byłoby to złe w tym przypadku) http://w3fools.com/ – JJJ
Dzięki - nie znalazłem W3Schools, który byłby bardzo przydatny, ale zawarłem to jako wzmiankę, o której prawdopodobnie wszyscy słyszeli - i masz nadzieję, że pierwsze zdanie na stronie o podstawowym schemacie Xml byłoby poprawne! –