http://wklejto.pl/64233
oryginalnie jest tam:
<xs:complexType name="wniosek_t" abstract="true">
czyli typ wniosek_t jest abstrakcyjny i jako tako nie można korzystać z żadnego elementu tego typu.
Niestety niżej mamy:
<!-- podpisany wniosek: complex type--> <xs:complexType name="podpisanyWniosek_t"> <xs:sequence> <xs:element minOccurs="1" maxOccurs="1" name="wniosek" type="wniosek_t"> <xs:annotation> <xs:documentation>Wniosek</xs:documentation> </xs:annotation> <!-- Elementy numerZalacznika musza miec unikalne wartosci --> <xs:unique name="unikalneNumeryZalacznikow"> <xs:selector xpath="*/*" /> <xs:field xpath="numerZalacznika" /> </xs:unique> </xs:element> <xs:element minOccurs="0" maxOccurs="1" ref="ds:Signature" /> </xs:sequence> </xs:complexType> <!-- root element: podpisanyWniosek --> <xs:element name="podpisanyWniosek" type="podpisanyWniosek_t" />
czyli plik xml powinien wygladac w skrócie tak:
<podpisanyWniosek> <wniosek> </wniosek> </podpisanyWniosek>
no i przy walidacji oczywiscie leci blad:
Cytat
Warning: DOMDocument::schemaValidate() [domdocument.schemavalidate]: Element '{http://kierowca/parametry}wniosek': The type definition is abstract. in /var/www/test/schema/test.php on line 3
wkońcu to typ abstrakcyjnyWalidacje przechodzi dopiero jak w schemie usunę ten abstract:
<xs:complexType name="wniosek_t" abstract="false">
Czyli jesli abstract mam ustawiony na true to ewidentnie zachodzi sprzecznosc, mam racje? Ze scheme nie jest mocny, wole się upewnić czy dobrze rozumuję. Te schemy są stworzone przez informatyków ze szczebla urzędowego i wolałbym mieć pewność w tym co teraz przedstawiłem zanim zacznę im wytykać bledy uniemożliwiające przygotowanie serwisu.