Skip to main content
Question

How to read non-GML XML dynamically using XSD?


frantsch
Contributor
Forum|alt.badge.img+3

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>

0 replies

Be the first to reply!

Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings