class Bodemsite(AbstractDovType):
    """Class representing the DOV data type for bodemsites."""

    subtypes = []

    fields = [
        WfsField(name='pkey_bodemsite', source_field='Bodemsitefiche',
                 datatype='string'),
        WfsField(name='naam', source_field='Naam', datatype='string'),
        WfsField(name='waarnemingsdatum', source_field='Datum',
                 datatype='date'),
        WfsField(name='beschrijving', source_field='Beschrijving',
                 datatype='string'),
        XmlField(name='invoerdatum',
                 source_xpath='/bodemsite/invoerdatum',
                 definition='Datum van invoer van de bodemsite.',
                 datatype='date')
    ]

    pkey_fieldname = 'Bodemsitefiche'

    def __init__(self, pkey):
        """Initialisation.

        Parameters
        ----------
        pkey : str
            Permanent key of the Bodemsite, being a URI of the form
            `https://www.dov.vlaanderen.be/data/bodemsite/<id>`.

        """
        super().__init__('bodemsite', pkey) class Bodemlocatie(AbstractDovType):
    """Class representing the DOV data type for bodemlocaties."""

    subtypes = []

    fields = [
        WfsField(name='pkey_bodemlocatie', source_field='Bodemlocatiefiche',
                 datatype='string'),
        WfsField(name='pkey_bodemsite', source_field='Bodemsitefiche',
                 datatype='string'),
        WfsField(name='naam', source_field='Naam', datatype='string'),
        WfsField(name='type', source_field='Type', datatype='string'),
        WfsField(name='waarnemingsdatum', source_field='Datum',
                 datatype='date'),
        WfsField(name='doel', source_field='Doel', datatype='string'),
        WfsField(name='x', source_field='X_mL72', datatype='float'),
        WfsField(name='y', source_field='Y_mL72', datatype='float'),
        WfsField(name='mv_mtaw', source_field='mv_mTAW', datatype='float'),
        WfsField(name='erfgoed', source_field='Erfgoed', datatype='boolean'),
        WfsField(name='bodemstreek', source_field='Bodemstreek',
                 datatype='string'),
        XmlField(name='invoerdatum',
                 source_xpath='/bodemlocatie/invoerdatum',
                 definition='Datum van invoer van de bodemlocatie.',
                 datatype='date'),
        XmlField(name='educatieve_waarde',
                 source_xpath='/bodemlocatie/educatieve_waarde',
                 definition='Educatieve waarde van de bodemlocatie.',
                 datatype='string')
    ]

    pkey_fieldname = 'Bodemlocatiefiche'

    def __init__(self, pkey):
        """Initialisation.

        Parameters
        ----------
        pkey : str
            Permanent key of the Bodemlocatie, being a URI of the form
            `https://www.dov.vlaanderen.be/data/bodemlocatie/<id>`.

        """
        super().__init__('bodemlocatie', pkey) class Bodemdiepteinterval(AbstractDovType):
    """Class representing the DOV data type for bodemdiepteinterval."""

    subtypes = []

    fields = [
        WfsField(name='pkey_diepteinterval',
                 source_field='Diepteintervalfiche',
                 datatype='string'),
        WfsField(name='pkey_bodemopbouw',
                 source_field='Bodemopbouwfiche',
                 datatype='string'),
        WfsField(name='pkey_bodemlocatie',
                 source_field='Bodemlocatiefiche',
                 datatype='string'),
        WfsField(name='nr',
                 source_field='Nr',
                 datatype='integer'),
        WfsField(name='type',
                 source_field='Type',
                 datatype='string'),
        WfsField(name='naam',
                 source_field='Naam',
                 datatype='string'),
        WfsField(name='bovengrens1_cm',
                 source_field='Bovengrens1',
                 datatype='float'),
        WfsField(name='bovengrens2_cm',
                 source_field='Bovengrens2',
                 datatype='float'),
        WfsField(name='ondergrens1_cm',
                 source_field='Ondergrens1',
                 datatype='float'),
        WfsField(name='ondergrens2_cm',
                 source_field='Ondergrens2',
                 datatype='float'),
        WfsField(name='ondergrens_bereikt',
                 source_field='Ondergrens_bereikt',
                 datatype='string'),
        WfsField(name='grensduidelijkheid',
                 source_field='Grensduidelijkheid',
                 datatype='string'),
        WfsField(name='grensregelmatigheid',
                 source_field='Grensregelmatigheid',
                 datatype='string'),
        WfsField(name='beschrijving',
                 source_field='Beschrijving',
                 datatype='string'),
        WfsField(name='x',
                 source_field='X_mL72',
                 datatype='float'),
        WfsField(name='y',
                 source_field='Y_mL72',
                 datatype='float'),
        WfsField(name='mv_mtaw',
                 source_field='mv_mTAW',
                 datatype='float'),
    ]

    pkey_fieldname = 'Diepteintervalfiche'

    def __init__(self, pkey):
        """Initialisation.

        Parameters
        ----------
        pkey : str
            Permanent key of the Bodemdiepteinterval, being a URI of the form
            `https://www.dov.vlaanderen.be/data/bodemdiepteinterval/<id>`.

        """
        super().__init__('bodemdiepteinterval', pkey) class Bodemobservatie(AbstractDovType):
    """Class representing the DOV data type for bodemobservaties."""

    subtypes = [Fractiemeting]

    fields = [
        WfsField(name='pkey_bodemobservatie',
                 source_field='Bodemobservatiefiche',
                 datatype='string'),
        WfsField(name='pkey_bodemlocatie',
                 source_field='Bodemlocatiefiche',
                 datatype='string'),
        WfsField(name='pkey_parent',
                 source_field='Parentfiche',
                 datatype='string'),
        WfsField(name='x', source_field='X_mL72', datatype='float'),
        WfsField(name='y', source_field='Y_mL72', datatype='float'),
        WfsField(name='mv_mtaw', source_field='mv_mTAW', datatype='float'),
        WfsField(name='diepte_van_cm', source_field='Diepte_van',
                 datatype='float'),
        WfsField(name='diepte_tot_cm', source_field='Diepte_tot',
                 datatype='float'),
        XmlField(name='observatiedatum',
                 source_xpath='/bodemobservatie/observatiedatum',
                 definition='Observatiedatum van de bodemobservatie',
                 datatype='date'),
        XmlField(name='invoerdatum',
                 source_xpath='/bodemobservatie/invoerdatum',
                 definition='Invoerdatum van de bodemobservatie.',
                 datatype='date'),
        XmlField(name='parametergroep',
                 source_xpath='/bodemobservatie/parametergroep',
                 definition='Indeling van de parameter naar groep, '
                 + 'bvb anionen, kationen, .... Is indicatief.',
                 datatype='string'),
        WfsField(name='parameter', source_field='Parameter',
                 datatype='string'),
        XmlField(name='detectie',
                 source_xpath='/bodemobservatie/detectieconditie',
                 definition='boven/onder detectielimiet',
                 datatype='string'),
        WfsField(name='waarde', source_field='Waarde', datatype='string'),
        WfsField(name='eenheid', source_field='Eenheid', datatype='string'),
        WfsField(name='veld_labo', source_field='Labo_of_veld',
                 datatype='string'),
        WfsField(name='methode', source_field='Observatiemethode',
                 datatype='string'),
        XmlField(name='betrouwbaarheid',
                 source_xpath='/bodemobservatie/betrouwbaarheid',
                 definition='Betrouwbaarheid van de meting.',
                 datatype='string')
    ]

    pkey_fieldname = 'Bodemobservatiefiche'

    def __init__(self, pkey):
        """Initialisation.

        Parameters
        ----------
        pkey : str
            Permanent key of the Bodemobservatie, being a URI of the form
            `https://www.dov.vlaanderen.be/data/bodemobservatie/<id>`.

        """
        super().__init__('bodemobservatie', pkey) class Bodemmonster(AbstractDovType):
    """Class representing the DOV data type for bodemmonsters."""

    subtypes = []

    fields = [
        WfsField(name='pkey_bodemmonster', source_field='Bodemmonsterfiche',
                 datatype='string'),
        WfsField(name='pkey_bodemlocatie',
                 source_field='Bodemlocatiefiche',
                 datatype='string'),
        WfsField(name='pkey_parent',
                 source_field='Parentfiche',
                 datatype='string'),
        WfsField(name='x', source_field='X_mL72', datatype='float'),
        WfsField(name='y', source_field='Y_mL72', datatype='float'),
        WfsField(name='mv_mtaw', source_field='mv_mTAW', datatype='float'),
        WfsField(name='identificatie', source_field='Bodemmonster',
                 datatype='string'),
        WfsField(name='datum_monstername', source_field='Datum_monsterafname',
                 datatype='date'),
        XmlField(name='tijdstip_monstername',
                 source_xpath='/bodemmonster/tijdstip_monstername',
                 definition='Tijdstip waarop het monster werd genomen.',
                 datatype='string'),
        WfsField(name='type', source_field='Type', datatype='string'),
        WfsField(name='monstername_door', source_field='Monsterafname_door',
                 datatype='string'),
        WfsField(name='techniek', source_field='Techniek_monsterafname',
                 datatype='string'),
        WfsField(name='condities', source_field='Condities_monsterafname',
                 datatype='string'),
        WfsField(name='diepte_van_cm', source_field='Diepte_van',
                 datatype='float'),
        WfsField(name='diepte_tot_cm', source_field='Diepte_tot',
                 datatype='float'),
        WfsField(name='labo', source_field='Labo', datatype='string')
    ]

    pkey_fieldname = 'Bodemmonsterfiche'

    def __init__(self, pkey):
        """Initialisation.

        Parameters
        ----------
        pkey : str
            Permanent key of the Bodemmonster, being a URI of the form
            `https://www.dov.vlaanderen.be/data/bodemmonster/<id>`.

        """
        super().__init__('bodemmonster', pkey) class Bodemclassificatie(AbstractDovType):
    """Class representing the DOV data type for bodemclassificaties."""

    subtypes = []

    fields = [
        WfsField(name='pkey_bodemclassificatie',
                 source_field='Bodemclassificatiefiche',
                 datatype='string'),
        WfsField(name='pkey_bodemlocatie',
                 source_field='Bodemlocatiefiche',
                 datatype='string'),
        WfsField(name='x', source_field='X_mL72', datatype='float'),
        WfsField(name='y', source_field='Y_mL72', datatype='float'),
        WfsField(name='mv_mtaw', source_field='mv_mTAW', datatype='float'),
        WfsField(name='classificatietype',
                 source_field='Classificatietype', datatype='string'),
        WfsField(name='bodemtype', source_field='Bodemtype',
                 datatype='string'),
        WfsField(name='auteurs', source_field='Auteurs', datatype='string')
    ]

    pkey_fieldname = 'Bodemclassificatiefiche'

    def __init__(self, pkey):
        """Initialisation.

        Parameters
        ----------
        pkey : str
            Permanent key of the Bodemclassificatie, being a URI of the form
            `https://www.dov.vlaanderen.be/data/**classificatie/<id>`.

        """
        super().__init__('bodemclassificatie', pkey) class Boring(AbstractDovType):
    """Class representing the DOV data type for boreholes."""

    subtypes = [BoorMethode]

    fields = [
        WfsField(name='pkey_boring', source_field='fiche', datatype='string'),
        WfsField(name='boornummer', source_field='boornummer',
                 datatype='string'),
        WfsField(name='x', source_field='X_mL72', datatype='float'),
        WfsField(name='y', source_field='Y_mL72', datatype='float'),
        XmlField(name='mv_mtaw',
                 source_xpath='/boring/oorspronkelijk_maaiveld/waarde',
                 definition='Maaiveldhoogte in mTAW op dag dat de boring '
                            'uitgevoerd werd.',
                 datatype='float'),
        WfsField(name='start_boring_mtaw', source_field='Z_mTAW',
                 datatype='float'),
        WfsField(name='gemeente', source_field='gemeente', datatype='string'),
        XmlField(name='diepte_boring_van',
                 source_xpath='/boring/diepte_van',
                 definition='Startdiepte van de boring (in meter).',
                 datatype='float',
                 notnull=True),
        WfsField(name='diepte_boring_tot', source_field='diepte_tot_m',
                 datatype='float'),
        WfsField(name='datum_aanvang', source_field='datum_aanvang',
                 datatype='date'),
        WfsField(name='uitvoerder', source_field='uitvoerder',
                 datatype='string'),
        XmlField(name='boorgatmeting',
                 source_xpath='/boring/boorgatmeting/uitgevoerd',
                 definition='Is er een boorgatmeting uitgevoerd (ja/nee).',
                 datatype='boolean')
    ]

    pkey_fieldname = 'fiche'

    def __init__(self, pkey):
        """Initialisation.

        Parameters
        ----------
        pkey : str
            Permanent key of the Boring (borehole), being a URI of the form
            `https://www.dov.vlaanderen.be/data/boring/<id>`.

        """
        super().__init__('boring', pkey) class XmlField(AbstractField):
    """Class for a field available in the XML document."""

    def __init__(self, name, source_xpath, datatype, definition='',
                 notnull=False, xsd_type=None):
        """Initialise an XML field.

        Parameters
        ----------
        name : str
            Name of this field in the return dataframe.
        source_xpath : str
            XPath expression of the values of this field in the source XML
            document.
        datatype : one of 'string', 'integer', 'float', 'date', 'datetime' \
                   or 'boolean'
            Datatype of the values of this field in the return dataframe.
        definition : str, optional
            Definition of this field.
        notnull : bool, optional, defaults to False
            True if this field is always present (mandatory), False otherwise.
        xsd_type : pydov.types.abstract.XsdType, optional
            XSD type associated with this field.

        """
        super(XmlField, self).__init__(name, 'xml', datatype)

        self.__setitem__('sourcefield', source_xpath)
        self.__setitem__('definition', definition)
        self.__setitem__('notnull', notnull)

        if xsd_type is not None:
            self.__setitem__('xsd_schema', xsd_type.xsd_schema)
            self.__setitem__('xsd_type', xsd_type.typename) class GrondwaterFilter(AbstractDovType):
    """Class representing the DOV data type for Groundwater screens."""

    subtypes = [Peilmeting]

    fields = [
        WfsField(name='pkey_filter', source_field='filterfiche',
                 datatype='string'),
        WfsField(name='pkey_grondwaterlocatie', source_field='putfiche',
                 datatype='string'),
        WfsField(name='gw_id', source_field='GW_ID', datatype='string'),
        WfsField(name='filternummer', source_field='filternummer',
                 datatype='string'),
        WfsField(name='filtertype', source_field='filtertype',
                 datatype='string'),
        WfsField(name='x', source_field='X_mL72', datatype='float'),
        WfsField(name='y', source_field='Y_mL72', datatype='float'),
        WfsField(name='start_grondwaterlocatie_mtaw', source_field='Z_mTAW',
                 datatype='float'),
        XmlField(name='mv_mtaw',
                 source_xpath='/grondwaterlocatie/puntligging/'
                              'oorspronkelijk_maaiveld/waarde',
                 definition='Maaiveldhoogte in mTAW op dag '
                            'dat de put/boring uitgevoerd werd',
                 datatype='float'),
        WfsField(name='gemeente', source_field='gemeente', datatype='string'),
        XmlField(name='meetnet_code',
                 source_xpath='/filter/meetnet',
                 definition='Tot welk meetnet behoort deze filter.',
                 datatype='string',
                 xsd_type=XsdType(
                     xsd_schema=_filterDataCodes_xsd,
                     typename='MeetnetEnumType')),
        XmlField(name='aquifer_code',
                 source_xpath='/filter/ligging/aquifer',
                 definition='In welke watervoerende laag hangt de filter '
                            '(code).',
                 datatype='string',
                 xsd_type=XsdType(
                     xsd_schema=build_dov_url(
                         'xdov/schema/latest/xsd/kern/interpretatie/'
                         'HydrogeologischeStratigrafieDataCodes.xsd'),
                     typename='AquiferEnumType')),
        XmlField(name='grondwaterlichaam_code',
                 source_xpath='/filter/ligging/grondwaterlichaam',
                 definition='',
                 datatype='string',
                 xsd_type=XsdType(
                     xsd_schema=_filterDataCodes_xsd,
                     typename='GrondwaterlichaamEnumType')),
        XmlField(name='regime',
                 source_xpath='/filter/ligging/regime',
                 definition='',
                 datatype='string'),
        WfsField(name='diepte_onderkant_filter',
                 source_field='onderkant_filter_m', datatype='float'),
        WfsField(name='lengte_filter', source_field='lengte_filter_m',
                 datatype='float')
    ]

    pkey_fieldname = 'filterfiche'

    def __init__(self, pkey):
        """Initialisation.

        Parameters
        ----------
        pkey : str
            Permanent key of the Filter (screen), being a URI of the form
            `https://www.dov.vlaanderen.be/data/filter/<id>`.

        """
        super().__init__('filter', pkey) class GrondwaterMonster(AbstractDovType):
    """Class representing the DOV data type for Groundwater samples."""

    subtypes = [Observatie]

    fields = [
        WfsField(name='pkey_grondwatermonster',
                 source_field='grondwatermonsterfiche',
                 datatype='string'),
        WfsField(name='grondwatermonsternummer',
                 source_field='grondwatermonsternummer',
                 datatype='string'),
        WfsField(name='pkey_grondwaterlocatie',
                 source_field='grondwaterlocatiefiche',
                 datatype='string'),
        WfsField(name='gw_id', source_field='GW_ID', datatype='string'),
        WfsField(name='pkey_filter', source_field='filterfiche',
                 datatype='string'),
        WfsField(name='filternummer', source_field='filternr',
                 datatype='string'),
        WfsField(name='x', source_field='X_mL72', datatype='float'),
        WfsField(name='y', source_field='Y_mL72', datatype='float'),
        WfsField(name='start_grondwaterlocatie_mtaw', source_field='Z_mTAW',
                 datatype='float'),
        WfsField(name='gemeente', source_field='gemeente', datatype='string'),
        WfsField(name='datum_monstername', source_field='datum_monstername',
                 datatype='date'),
    ]

    pkey_fieldname = 'grondwatermonsterfiche'

    def __init__(self, pkey):
        """Initialisation.

        Parameters
        ----------
        pkey : str
            Permanent key of the GrondwaterMonster (groundwater sample), being
            a URI of the form
            `https://www.dov.vlaanderen.be/data/watermonster/<id>`.

        """
        super().__init__('watermonster', pkey) class Grondmonster(AbstractDovType):
    """Class representing the DOV data type for ground samples."""

    subtypes = [Korrelverdeling]

    __grondmonsterDataCodesEnumType = XsdType(
        xsd_schema='https://www.dov.vlaanderen.be/xdov/schema/latest/'
                   'xsd/kern/grondmonster/GrondmonsterDataCodes.xsd',
        typename='MonsterEnumType'
    )

    fields = [
        WfsField(name='pkey_grondmonster',
                 source_field='grondmonsterfiche',
                 datatype='string'),
        WfsField(name='naam',
                 source_field='naam',
                 datatype='string'),
        WfsField(name='pkey_boring',
                 source_field='boringfiche',
                 datatype='string'),
        WfsField(name='boornummer',
                 source_field='boornummer',
                 datatype='string'),
        XmlField(name='datum',
                 source_xpath='/grondmonster/datum_monstername',
                 datatype='date',),
        WfsField(name='x',
                 source_field='X_mL72',
                 datatype='float'),
        WfsField(name='y',
                 source_field='Y_mL72',
                 datatype='float'),
        WfsField(name='gemeente',
                 source_field='gemeente',
                 datatype='string'),
        WfsField(name='diepte_van_m',
                 source_field='diepte_van_m',
                 datatype='float'),
        WfsField(name='diepte_tot_m',
                 source_field='diepte_tot_m',
                 datatype='float'),
        WfsField(name='peil_van_mtaw',
                 source_field='peil_van_mTAW',
                 datatype='float'),
        WfsField(name='peil_tot_mtaw',
                 source_field='peil_tot_mTAW',
                 datatype='float'),
        WfsField(name='monstertype',
                 source_field='monstertype',
                 datatype='string'),
        XmlField(name='astm_naam',
                 source_xpath='/grondmonster/observatieData/observatie['
                              'parameter="ASTM_NAAM"]/waarde_text',
                 definition='ASTM_naam',
                 datatype='string'),
        XmlField(name='grondsoort_bggg',
                 source_xpath='/grondmonster/observatieData/observatie['
                              'parameter="BGGG"]/waarde_text',
                 definition='Grondsoort BGGG',
                 datatype='string'),
        XmlField(name='humusgehalte',
                 source_xpath='/grondmonster/observatieData/observatie['
                              'parameter="HUMUSGEHALTE"]/waarde_numeriek',
                 definition='Humusgehalte',
                 datatype='float'),
        XmlField(name='kalkgehalte',
                 source_xpath='/grondmonster/observatieData/observatie['
                              'parameter="KALKGEHALTE"]/waarde_numeriek',
                 definition='Kalkgehalte',
                 datatype='float'),
        XmlField(name='uitrolgrens',
                 source_xpath='/grondmonster/observatieData/observatie['
                              'parameter="UITROLGRENS"]/waarde_numeriek',
                 definition='Uitrolgrens',
                 datatype='float'),
        XmlField(name='vloeigrens',
                 source_xpath='/grondmonster/observatieData/observatie['
                              'parameter="VLOEIGRENS"]/waarde_numeriek',
                 definition='Vloeigrens',
                 datatype='float'),
        XmlField(name='glauconiet',
                 source_xpath='/grondmonster/observatieData/observatie['
                              'parameter="GLAUCONIET_TOTAAL"]/waarde_numeriek',
                 definition='Glauconiet totaal',
                 datatype='float'),
        XmlField(name='korrelvolumemassa',
                 source_xpath='/grondmonster/observatieData/observatie['
                              'parameter="KORRELVOLUMEMASSA"]/waarde_numeriek',
                 definition='',
                 datatype='float'),
        XmlField(name='volumemassa',
                 source_xpath='/grondmonster/observatieData/observatie['
                              'parameter="VOLUMEMASSA"]/waarde_numeriek',
                 definition='',
                 datatype='float'),
        XmlField(name='watergehalte',
                 source_xpath='/grondmonster/observatieData/observatie['
                              'parameter="WATERGEHALTE"]/waarde_numeriek',
                 definition='',
                 datatype='float')
    ]

    pkey_fieldname = 'grondmonsterfiche'

    def __init__(self, pkey):
        """Initialisation.

        Parameters
        ----------
        pkey : str
            Permanent key of the Grondmonster, being a URI of the form
            `https://www.dov.vlaanderen.be/data/grondmonster/<id>`.

        """
        super().__init__('grondmonster', pkey) class GecodeerdeLithologie(AbstractBoringInterpretatie):
    """Class representing the DOV data type for 'gecodeerde
    lithologie' interpretations."""

    subtypes = [GecodeerdeLithologieLaag] class HydrogeologischeStratigrafie(AbstractBoringInterpretatie):
    """Class representing the DOV data type for 'hydrogeologische
    stratigrafie' interpretations."""

    subtypes = [HydrogeologischeStratigrafieLaag] class InformeleStratigrafie(AbstractCommonInterpretatie):
    """Class representing the DOV data type for 'informele stratigrafie'
    interpretations."""

    subtypes = [InformeleStratigrafieLaag] class LithologischeBeschrijvingen(AbstractBoringInterpretatie):
    """Class representing the DOV data type for 'lithologische
    beschrijvingen' interpretations."""

    subtypes = [LithologischeBeschrijvingLaag] class FormeleStratigrafie(AbstractCommonInterpretatie):
    """Class representing the DOV data type for 'Formele stratigrafie'
    interpretations."""

    subtypes = [FormeleStratigrafieLaag] class GeotechnischeCodering(AbstractBoringInterpretatie):
    """Class representing the DOV data type for 'geotechnische
    codering' interpretations."""

    subtypes = [GeotechnischeCoderingLaag] class QuartairStratigrafie(AbstractBoringInterpretatie):
    """Class representing the DOV data type for 'Quartairstratigrafie'
    interpretations."""

    subtypes = [QuartairStratigrafieLaag] class InformeleHydrogeologischeStratigrafie(AbstractBoringInterpretatie):
    """Class representing the DOV data type for 'informele stratigrafie'
    interpretations."""

    subtypes = [InformeleHydrogeologischeStratigrafieLaag] class Sondering(AbstractDovType):
    """Class representing the DOV data type for CPT measurements."""

    subtypes = [Meetdata]

    fields = [
        WfsField(name='pkey_sondering', source_field='fiche',
                 datatype='string'),
        WfsField(name='sondeernummer', source_field='sondeernummer',
                 datatype='string'),
        WfsField(name='x', source_field='X_mL72', datatype='float'),
        WfsField(name='y', source_field='Y_mL72', datatype='float'),
        XmlField(name='mv_mtaw',
                 source_xpath='/sondering/sondeerpositie/'
                              'oorspronkelijk_maaiveld/waarde',
                 definition='Maaiveldhoogte in mTAW op dag dat de sondering '
                            'uitgevoerd werd.',
                 datatype='float'),
        WfsField(name='start_sondering_mtaw', source_field='Z_mTAW',
                 datatype='float'),
        WfsField(name='diepte_sondering_van', source_field='diepte_van_m',
                 datatype='float'),
        WfsField(name='diepte_sondering_tot', source_field='diepte_tot_m',
                 datatype='float'),
        WfsField(name='datum_aanvang', source_field='datum_aanvang',
                 datatype='date'),
        WfsField(name='uitvoerder', source_field='uitvoerder',
                 datatype='string'),
        WfsField(name='sondeermethode', source_field='sondeermethode',
                 datatype='string'),
        WfsField(name='apparaat', source_field='apparaat_type',
                 datatype='string'),
        XmlField(name='datum_gw_meting',
                 source_xpath='/sondering/visueelonderzoek/'
                              'datumtijd_waarneming_grondwaterstand',
                 definition='Datum en tijdstip van waarneming van de '
                            'grondwaterstand.',
                 datatype='datetime'),
        XmlField(name='diepte_gw_m',
                 source_xpath='/sondering/visueelonderzoek/grondwaterstand',
                 definition='Diepte water in meter ten opzicht van het '
                            'aanvangspeil.',
                 datatype='float')
    ]

    pkey_fieldname = 'fiche'

    def __init__(self, pkey):
        """Initialisation.

        Parameters
        ----------
        pkey : str
            Permanent key of the Sondering (CPT measurement), being a URI of
            the form `https://www.dov.vlaanderen.be/data/sondering/<id>`.

        """
        super().__init__('sondering', pkey)
import pytest
from pydov.types.bodemsite import Bodemsite
from pydov.types.bodemlocatie import Bodemlocatie
from pydov.types.bodemdiepteinterval import Bodemdiepteinterval
from pydov.types.bodemobservatie import Bodemobservatie
from pydov.types.bodemmonster import Bodemmonster
from pydov.types.bodemclassificatie import Bodemclassificatie
from pydov.types.boring import Boring
from pydov.types.fields import XmlField
from pydov.types.grondwaterfilter import GrondwaterFilter
from pydov.types.grondwatermonster import GrondwaterMonster
from pydov.types.grondmonster import Grondmonster
from pydov.types.interpretaties import (
    GecodeerdeLithologie,
    HydrogeologischeStratigrafie,
    InformeleStratigrafie,
    LithologischeBeschrijvingen,
    FormeleStratigrafie,
    GeotechnischeCodering,
    QuartairStratigrafie,
    InformeleHydrogeologischeStratigrafie,
)
from pydov.types.sondering import Sondering
"""Module grouping tests for the boring search module."""




type_objects = [Bodemsite,
                Bodemlocatie,
                Bodemdiepteinterval,
                Bodemobservatie,
                Bodemmonster,
                Bodemclassificatie,
                Boring,
                Sondering,
                GrondwaterFilter,
                GrondwaterMonster,
                InformeleStratigrafie,

                FormeleStratigrafie,