I need to read simple, non-GML XML datasets dynamically (Single Merged Feature Types) and validate them against XSD files (see message bottom).
- If I use the XML Reader, I may not use XSD (XFMap, and XRS only).
- If I use the the GML Reader, I obtain:
<SOURCE_GML Reader> - No GML features were found in the set of XML Schemas, make sure that at least one of the schemas is a user, domain or community-specific "GML Application Schema".
QUESTION: How am I to dynamically read such non-GML XML datasets using XSD?
Here is one of my XSD as example:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Gebaeude" type="Gebaeude"/>
<xs:complexType name="Gebaeude">
<xs:sequence>
<xs:element name="Versicherungsnummer" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="PolitischeGemeinde" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="PolitischeGemeindeCode" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Ortsteil" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="OrtsteilCode" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="Gebaeudenummer" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="Gebaeudebezeichnung" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="Gebaeudelage" type="Gebaeudelage" minOccurs="0" maxOccurs="1"/>
<xs:element name="GebaeudeBaujahr" type="xs:integer" minOccurs="0" maxOccurs="1"/>
<xs:element name="GebaeudeXKoordinate" type="xs:float" minOccurs="0" maxOccurs="1"/>
<xs:element name="GebaeudeYKoordinate" type="xs:float" minOccurs="0" maxOccurs="1"/>
<xs:element name="GebaeudeZweckcode" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="GebaeudeZweckcodeText" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="GebaeudeStatusCode" type="xs:integer" minOccurs="1" maxOccurs="1"/>
<xs:element name="GebaeudeStatus" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="GebaeudeStatusInformation" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="DatumStatus" type="xs:date" minOccurs="0" maxOccurs="1"/>
<xs:element name="Parzelleninfo" type="Parzelleninfo" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
<xs:element name="Parzelleninfo" type="Parzelleninfo"/>
<xs:complexType name="Parzelleninfo">
<xs:sequence>
<xs:element name="ParzellenNummer" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="GebaeudeAdresse" type="GebaeudeAdresse"/>
<xs:complexType name="GebaeudeAdresse">
<xs:sequence>
<xs:element name="GebaeudeStrasse" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="GebaeudeHausnummer" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="GebaeudeHausnummerBis" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="GebaeudePLZ" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="GebaeudeOrt" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
<xs:element name="NextToAgi" type="NextToAgi"/>
<xs:complexType name="NextToAgi">
<xs:sequence>
<xs:element name="Gebaeude" type="Gebaeude" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="Gebaeudelage" type="Gebaeudelage"/>
<xs:complexType name="Gebaeudelage">
<xs:sequence>
<xs:element name="GebaeudeAdresse" type="GebaeudeAdresse" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Here is a simple example XML file for the above xsd:
<NextToAgi>
<Gebaeude>
<Versicherungsnummer>64/02/00127</Versicherungsnummer>
<PolitischeGemeinde>Tobel-Taegerschen</PolitischeGemeinde>
<PolitischeGemeindeCode>64</PolitischeGemeindeCode>
<Ortsteil>Taegerschen</Ortsteil>
<OrtsteilCode>02</OrtsteilCode>
<Gebaeudenummer>00127</Gebaeudenummer>
<Gebaeudebezeichnung>Wohnhaus Garage</Gebaeudebezeichnung>
<Gebaeudelage>
<GebaeudeAdresse>
<GebaeudeStrasse>Muenchwilerstrasse</GebaeudeStrasse>
<GebaeudeHausnummer>17</GebaeudeHausnummer>
<GebaeudePLZ>9554</GebaeudePLZ>
<GebaeudeOrt>Taegerschen</GebaeudeOrt>
</GebaeudeAdresse>
<GebaeudeAdresse>
<GebaeudeStrasse>Kirchstrasse</GebaeudeStrasse>
<GebaeudeHausnummer>5</GebaeudeHausnummer>
<GebaeudeHausnummerBis/>
<GebaeudePLZ>8274</GebaeudePLZ>
<GebaeudeOrt>Gottlieben</GebaeudeOrt>
</GebaeudeAdresse>
</Gebaeudelage>
<GebaeudeBaujahr>1975</GebaeudeBaujahr>
<GebaeudeXKoordinate>2.719693694000000e+006</GebaeudeXKoordinate>
<GebaeudeYKoordinate>1.263125223000000e+006</GebaeudeYKoordinate>
<GebaeudeZweckcode>29</GebaeudeZweckcode>
<GebaeudeZweckcodeText>Wohngebaeude mit diversen Zwecken</GebaeudeZweckcodeText>
<GebaeudeStatusCode>2</GebaeudeStatusCode>
<GebaeudeStatus>Realisiert</GebaeudeStatus>
<DatumStatus>2011-02-03</DatumStatus>
<Parzelleninfo>
<ParzellenNummer>4776_1_00107</ParzellenNummer>
<ParzellenNummer>4651_1_00068</ParzellenNummer>
</Parzelleninfo>
</Gebaeude>
</NextToAgi>