Closed martijnsenden closed 9 years ago
idem aan #65. Volgorde attributen. Als je deze volgorde wel "goed" hebt volgens de Deegree GMLFeatureReader, dan krijg je geen foutmelding en importeert het gewoon. Dit zou ook niet horen.
@erikorbons Weet jij mogelijk een oplossing hiervoor, of moeten we dit bestempelen als "standaard CDS functionaliteit" ?
Nog een keer nagekeken en dit is een bug in Deegree GMLFeatureReader. De hele parseFeatureStatic methode is gewoon een foute implementatie van hoe je xml tegen een xsd moet parsen. Dubbele elementen (.e.g begintijd) die gelijk na elkaar voorkomen in de xml worden alleen opgemerkt als het er minimaal 3 zijn. Dubbele elementen die niet meteen na elkaar (dus met andere elementen ertussen) voorkomen worden sowieso niet opgemerkt.
Dat de elementen altijd in dezelfde volgorde meoten voorkomen is conform xsd en afspraken.
Testomgeving; 2.0-vrn-0.1
Als je een attribuut dat hooguit eenmaal mag voorkomen meerdere (twee) keren in de gml zet, dan krijg je in een aantal gevallen van de parser de volgende melding:
Fout bij parsen Features. Oorzaak: XMLParsingException: Error in XML document (line: 36, column: 4, character offset: 1708): Property "{http://www.cds.nl/imna/all}bronHouder" is mandatory in features of type "{http://www.cds.nl/imna/all}GebiedAll", but is missing (or at the wrong position).
bronHouder is hierbij niet het veld dat dubbel voorkomt, dat is bijvoorbeeld statusInrichting.
In andere gevallen bij een dubbel attribuut (bijvoorbeeld doelinrichting), krijg je geen parse- of validatiefout. Mogelijk omdat dit veld na het veld bronHouder komt en er verder geen verplichte velden meer na komen.
Hoe dan ook: je zou in elk geval verwachten dat je een melding krijgt dat het dubbele veld meer dan een keer voorkomt. Die melding krijg je in geen geval. In plaats daarvan krijg je wel een minder begrijpelijke melding van de parser, of je krijgt überhaupt geen melding en hij parst en valideert het gewoon, waarna onduidelijk is welke van de twee attribuutwaarden hij nu werkelijk gevalideerd heeft of zal importeren.