All Downloads are FREE. Search and download functionalities are using the official Maven repository.

sbt-scalaxb.opengis.xmlprotocol.scala Maven / Gradle / Ivy

Go to download

GeoTrellis Server is a set of components designed to simplify viewing, processing, and serving raster data from arbitrary sources with an emphasis on doing so in a functional style.

The newest version!
// Generated by scalaxb.
package opengis

import scala.concurrent.{ Future, ExecutionContext }


/**
usage:
val obj = scalaxb.fromXML[opengis.Foo](node)
val document = scalaxb.toXML[opengis.Foo](obj, "foo", opengis.defaultScope)
**/
object `package` extends XMLProtocol { }

trait XMLProtocol extends scalaxb.XMLStandardTypes {
  val defaultScope = scalaxb.toScope(Some("gml") -> "http://www.opengis.net/gml",
    Some("ogc") -> "http://www.opengis.net/ogc",
    Some("ows0") -> "http://www.opengis.net/ows/1.1",
    Some("ows") -> "http://www.opengis.net/ows",
    Some("se") -> "http://www.opengis.net/se",
    Some("sld") -> "http://www.opengis.net/sld",
    Some("smil20") -> "http://www.w3.org/2001/SMIL20/",
    Some("smil20lang") -> "http://www.w3.org/2001/SMIL20/Language",
    Some("wcs") -> "http://www.opengis.net/wcs/1.1.1",
    Some("wfs") -> "http://www.opengis.net/wfs",
    Some("wms") -> "http://www.opengis.net/wms",
    Some("wmts") -> "http://www.opengis.net/wmts/1.0",
    Some("xlink") -> "http://www.w3.org/1999/xlink",
    Some("xs") -> "http://www.w3.org/2001/XMLSchema",
    Some("xsi") -> "http://www.w3.org/2001/XMLSchema-instance")
  implicit lazy val Opengisogc_ExpressionTypeFormat: scalaxb.XMLFormat[opengis.ogc.ExpressionType] = new DefaultOpengisogc_ExpressionTypeFormat {}
  implicit lazy val Opengisogc_BinaryOperatorTypeFormat: scalaxb.XMLFormat[opengis.ogc.BinaryOperatorType] = new DefaultOpengisogc_BinaryOperatorTypeFormat {}
  implicit lazy val Opengisogc_FunctionTypeFormat: scalaxb.XMLFormat[opengis.ogc.FunctionType] = new DefaultOpengisogc_FunctionTypeFormat {}
  implicit lazy val Opengisogc_LiteralTypeFormat: scalaxb.XMLFormat[opengis.ogc.LiteralType] = new DefaultOpengisogc_LiteralTypeFormat {}
  implicit lazy val Opengisogc_PropertyNameTypeFormat: scalaxb.XMLFormat[opengis.ogc.PropertyNameType] = new DefaultOpengisogc_PropertyNameTypeFormat {}
  implicit lazy val Opengisogc_FilterTypeFormat: scalaxb.XMLFormat[opengis.ogc.FilterType] = new DefaultOpengisogc_FilterTypeFormat {}
  implicit lazy val Opengisogc_ComparisonOpsTypeFormat: scalaxb.XMLFormat[opengis.ogc.ComparisonOpsType] = new DefaultOpengisogc_ComparisonOpsTypeFormat {}
  implicit lazy val Opengisogc_SpatialOpsTypeFormat: scalaxb.XMLFormat[opengis.ogc.SpatialOpsType] = new DefaultOpengisogc_SpatialOpsTypeFormat {}
  implicit lazy val Opengisogc_LogicOpsTypeFormat: scalaxb.XMLFormat[opengis.ogc.LogicOpsType] = new DefaultOpengisogc_LogicOpsTypeFormat {}
  implicit lazy val Opengisogc_AbstractIdTypeFormat: scalaxb.XMLFormat[opengis.ogc.AbstractIdType] = new DefaultOpengisogc_AbstractIdTypeFormat {}
  implicit lazy val Opengisogc_FeatureIdTypeFormat: scalaxb.XMLFormat[opengis.ogc.FeatureIdType] = new DefaultOpengisogc_FeatureIdTypeFormat {}
  implicit lazy val Opengisogc_GmlObjectIdTypeFormat: scalaxb.XMLFormat[opengis.ogc.GmlObjectIdType] = new DefaultOpengisogc_GmlObjectIdTypeFormat {}
  implicit lazy val Opengisogc_BinaryComparisonOpTypeFormat: scalaxb.XMLFormat[opengis.ogc.BinaryComparisonOpType] = new DefaultOpengisogc_BinaryComparisonOpTypeFormat {}
  implicit lazy val Opengisogc_PropertyIsLikeTypeFormat: scalaxb.XMLFormat[opengis.ogc.PropertyIsLikeType] = new DefaultOpengisogc_PropertyIsLikeTypeFormat {}
  implicit lazy val Opengisogc_PropertyIsNullTypeFormat: scalaxb.XMLFormat[opengis.ogc.PropertyIsNullType] = new DefaultOpengisogc_PropertyIsNullTypeFormat {}
  implicit lazy val Opengisogc_PropertyIsBetweenTypeFormat: scalaxb.XMLFormat[opengis.ogc.PropertyIsBetweenType] = new DefaultOpengisogc_PropertyIsBetweenTypeFormat {}
  implicit lazy val Opengisogc_LowerBoundaryTypeFormat: scalaxb.XMLFormat[opengis.ogc.LowerBoundaryType] = new DefaultOpengisogc_LowerBoundaryTypeFormat {}
  implicit lazy val Opengisogc_UpperBoundaryTypeFormat: scalaxb.XMLFormat[opengis.ogc.UpperBoundaryType] = new DefaultOpengisogc_UpperBoundaryTypeFormat {}
  implicit lazy val Opengisogc_BinarySpatialOpTypeFormat: scalaxb.XMLFormat[opengis.ogc.BinarySpatialOpType] = new DefaultOpengisogc_BinarySpatialOpTypeFormat {}
  implicit lazy val Opengisogc_BBOXTypeFormat: scalaxb.XMLFormat[opengis.ogc.BBOXType] = new DefaultOpengisogc_BBOXTypeFormat {}
  implicit lazy val Opengisogc_DistanceBufferTypeFormat: scalaxb.XMLFormat[opengis.ogc.DistanceBufferType] = new DefaultOpengisogc_DistanceBufferTypeFormat {}
  implicit lazy val Opengisogc_DistanceTypeFormat: scalaxb.XMLFormat[opengis.ogc.DistanceType] = new DefaultOpengisogc_DistanceTypeFormat {}
  implicit lazy val Opengisogc_BinaryLogicOpTypeFormat: scalaxb.XMLFormat[opengis.ogc.BinaryLogicOpType] = new DefaultOpengisogc_BinaryLogicOpTypeFormat {}
  implicit lazy val Opengisogc_UnaryLogicOpTypeFormat: scalaxb.XMLFormat[opengis.ogc.UnaryLogicOpType] = new DefaultOpengisogc_UnaryLogicOpTypeFormat {}
  implicit lazy val Opengisogc_Filter_CapabilitiesFormat: scalaxb.XMLFormat[opengis.ogc.Filter_Capabilities] = new DefaultOpengisogc_Filter_CapabilitiesFormat {}
  implicit lazy val Opengisogc_Spatial_CapabilitiesTypeFormat: scalaxb.XMLFormat[opengis.ogc.Spatial_CapabilitiesType] = new DefaultOpengisogc_Spatial_CapabilitiesTypeFormat {}
  implicit lazy val Opengisogc_GeometryOperandsTypeFormat: scalaxb.XMLFormat[opengis.ogc.GeometryOperandsType] = new DefaultOpengisogc_GeometryOperandsTypeFormat {}
  implicit lazy val Opengisogc_GeometryOperandTypeFormat: scalaxb.XMLFormat[opengis.ogc.GeometryOperandType] = new DefaultOpengisogc_GeometryOperandTypeFormat {}
  implicit lazy val Opengisogc_SpatialOperatorsTypeFormat: scalaxb.XMLFormat[opengis.ogc.SpatialOperatorsType] = new DefaultOpengisogc_SpatialOperatorsTypeFormat {}
  implicit lazy val Opengisogc_SpatialOperatorTypeFormat: scalaxb.XMLFormat[opengis.ogc.SpatialOperatorType] = new DefaultOpengisogc_SpatialOperatorTypeFormat {}
  implicit lazy val Opengisogc_SpatialOperatorNameTypeFormat: scalaxb.XMLFormat[opengis.ogc.SpatialOperatorNameType] = new DefaultOpengisogc_SpatialOperatorNameTypeFormat {}
  implicit lazy val Opengisogc_Scalar_CapabilitiesTypeFormat: scalaxb.XMLFormat[opengis.ogc.Scalar_CapabilitiesType] = new DefaultOpengisogc_Scalar_CapabilitiesTypeFormat {}
  implicit lazy val Opengisogc_LogicalOperatorsFormat: scalaxb.XMLFormat[opengis.ogc.LogicalOperators] = new DefaultOpengisogc_LogicalOperatorsFormat {}
  implicit lazy val Opengisogc_ComparisonOperatorsTypeFormat: scalaxb.XMLFormat[opengis.ogc.ComparisonOperatorsType] = new DefaultOpengisogc_ComparisonOperatorsTypeFormat {}
  implicit lazy val Opengisogc_ComparisonOperatorsTypeSequence1Format: scalaxb.XMLFormat[opengis.ogc.ComparisonOperatorsTypeSequence1] = new DefaultOpengisogc_ComparisonOperatorsTypeSequence1Format {}
  implicit lazy val Opengisogc_ComparisonOperatorTypeFormat: scalaxb.XMLFormat[opengis.ogc.ComparisonOperatorType] = new DefaultOpengisogc_ComparisonOperatorTypeFormat {}
  implicit lazy val Opengisogc_ArithmeticOperatorsTypeFormat: scalaxb.XMLFormat[opengis.ogc.ArithmeticOperatorsType] = new DefaultOpengisogc_ArithmeticOperatorsTypeFormat {}
  implicit lazy val Opengisogc_SimpleArithmeticFormat: scalaxb.XMLFormat[opengis.ogc.SimpleArithmetic] = new DefaultOpengisogc_SimpleArithmeticFormat {}
  implicit lazy val Opengisogc_FunctionsTypeFormat: scalaxb.XMLFormat[opengis.ogc.FunctionsType] = new DefaultOpengisogc_FunctionsTypeFormat {}
  implicit lazy val Opengisogc_FunctionNamesTypeFormat: scalaxb.XMLFormat[opengis.ogc.FunctionNamesType] = new DefaultOpengisogc_FunctionNamesTypeFormat {}
  implicit lazy val Opengisogc_FunctionNamesTypeSequence1Format: scalaxb.XMLFormat[opengis.ogc.FunctionNamesTypeSequence1] = new DefaultOpengisogc_FunctionNamesTypeSequence1Format {}
  implicit lazy val Opengisogc_FunctionNameTypeFormat: scalaxb.XMLFormat[opengis.ogc.FunctionNameType] = new DefaultOpengisogc_FunctionNameTypeFormat {}
  implicit lazy val Opengisogc_Id_CapabilitiesTypeFormat: scalaxb.XMLFormat[opengis.ogc.Id_CapabilitiesType] = new DefaultOpengisogc_Id_CapabilitiesTypeFormat {}
  implicit lazy val Opengisogc_EIDFormat: scalaxb.XMLFormat[opengis.ogc.EID] = new DefaultOpengisogc_EIDFormat {}
  implicit lazy val Opengisogc_FIDFormat: scalaxb.XMLFormat[opengis.ogc.FID] = new DefaultOpengisogc_FIDFormat {}
  implicit lazy val Opengisogc_SortByTypeFormat: scalaxb.XMLFormat[opengis.ogc.SortByType] = new DefaultOpengisogc_SortByTypeFormat {}
  implicit lazy val Opengisogc_SortPropertyTypeFormat: scalaxb.XMLFormat[opengis.ogc.SortPropertyType] = new DefaultOpengisogc_SortPropertyTypeFormat {}
  implicit lazy val Opengisogc_SortOrderTypeFormat: scalaxb.XMLFormat[opengis.ogc.SortOrderType] = new DefaultOpengisogc_SortOrderTypeFormat {}
  implicit lazy val Opengisgml_SignTypeFormat: scalaxb.XMLFormat[opengis.gml.SignType] = new DefaultOpengisgml_SignTypeFormat {}
  implicit lazy val Opengisgml_CodeTypableFormat: scalaxb.XMLFormat[opengis.gml.CodeTypable] = new DefaultOpengisgml_CodeTypableFormat {}
  implicit lazy val Opengisgml_CodeTypeFormat: scalaxb.XMLFormat[opengis.gml.CodeType] = new DefaultOpengisgml_CodeTypeFormat {}
  implicit lazy val Opengisgml_CodeListTypeFormat: scalaxb.XMLFormat[opengis.gml.CodeListType] = new DefaultOpengisgml_CodeListTypeFormat {}
  implicit lazy val Opengisgml_CodeOrNullListTypableFormat: scalaxb.XMLFormat[opengis.gml.CodeOrNullListTypable] = new DefaultOpengisgml_CodeOrNullListTypableFormat {}
  implicit lazy val Opengisgml_CodeOrNullListTypeFormat: scalaxb.XMLFormat[opengis.gml.CodeOrNullListType] = new DefaultOpengisgml_CodeOrNullListTypeFormat {}
  implicit lazy val Opengisgml_MeasureTypableFormat: scalaxb.XMLFormat[opengis.gml.MeasureTypable] = new DefaultOpengisgml_MeasureTypableFormat {}
  implicit lazy val Opengisgml_MeasureTypeFormat: scalaxb.XMLFormat[opengis.gml.MeasureType] = new DefaultOpengisgml_MeasureTypeFormat {}
  implicit lazy val Opengisgml_MeasureListTypeFormat: scalaxb.XMLFormat[opengis.gml.MeasureListType] = new DefaultOpengisgml_MeasureListTypeFormat {}
  implicit lazy val Opengisgml_MeasureOrNullListTypableFormat: scalaxb.XMLFormat[opengis.gml.MeasureOrNullListTypable] = new DefaultOpengisgml_MeasureOrNullListTypableFormat {}
  implicit lazy val Opengisgml_MeasureOrNullListTypeFormat: scalaxb.XMLFormat[opengis.gml.MeasureOrNullListType] = new DefaultOpengisgml_MeasureOrNullListTypeFormat {}
  implicit lazy val Opengisgml_CoordinatesTypeFormat: scalaxb.XMLFormat[opengis.gml.CoordinatesType] = new DefaultOpengisgml_CoordinatesTypeFormat {}
  implicit lazy val Opengisgml_AbstractCoordinateOperationBaseTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractCoordinateOperationBaseType] = new DefaultOpengisgml_AbstractCoordinateOperationBaseTypeFormat {}
  implicit lazy val Opengisgml_AbstractCoordinateOperationTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractCoordinateOperationType] = new DefaultOpengisgml_AbstractCoordinateOperationTypeFormat {}
  implicit lazy val Opengisgml_CoordinateOperationRefTypeFormat: scalaxb.XMLFormat[opengis.gml.CoordinateOperationRefType] = new DefaultOpengisgml_CoordinateOperationRefTypeFormat {}
  implicit lazy val Opengisgml_CoordinateOperationRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.CoordinateOperationRefTypeSequence1] = new DefaultOpengisgml_CoordinateOperationRefTypeSequence1Format {}
  implicit lazy val Opengisgml_ConcatenatedOperationTypeFormat: scalaxb.XMLFormat[opengis.gml.ConcatenatedOperationType] = new DefaultOpengisgml_ConcatenatedOperationTypeFormat {}
  implicit lazy val Opengisgml_ConcatenatedOperationRefTypeFormat: scalaxb.XMLFormat[opengis.gml.ConcatenatedOperationRefType] = new DefaultOpengisgml_ConcatenatedOperationRefTypeFormat {}
  implicit lazy val Opengisgml_ConcatenatedOperationRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.ConcatenatedOperationRefTypeSequence1] = new DefaultOpengisgml_ConcatenatedOperationRefTypeSequence1Format {}
  implicit lazy val Opengisgml_SingleOperationRefTypeFormat: scalaxb.XMLFormat[opengis.gml.SingleOperationRefType] = new DefaultOpengisgml_SingleOperationRefTypeFormat {}
  implicit lazy val Opengisgml_SingleOperationRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.SingleOperationRefTypeSequence1] = new DefaultOpengisgml_SingleOperationRefTypeSequence1Format {}
  implicit lazy val Opengisgml_PassThroughOperationTypeFormat: scalaxb.XMLFormat[opengis.gml.PassThroughOperationType] = new DefaultOpengisgml_PassThroughOperationTypeFormat {}
  implicit lazy val Opengisgml_PassThroughOperationRefTypeFormat: scalaxb.XMLFormat[opengis.gml.PassThroughOperationRefType] = new DefaultOpengisgml_PassThroughOperationRefTypeFormat {}
  implicit lazy val Opengisgml_PassThroughOperationRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.PassThroughOperationRefTypeSequence1] = new DefaultOpengisgml_PassThroughOperationRefTypeSequence1Format {}
  implicit lazy val Opengisgml_OperationRefTypeFormat: scalaxb.XMLFormat[opengis.gml.OperationRefType] = new DefaultOpengisgml_OperationRefTypeFormat {}
  implicit lazy val Opengisgml_OperationRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.OperationRefTypeSequence1] = new DefaultOpengisgml_OperationRefTypeSequence1Format {}
  implicit lazy val Opengisgml_AbstractGeneralConversionTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractGeneralConversionType] = new DefaultOpengisgml_AbstractGeneralConversionTypeFormat {}
  implicit lazy val Opengisgml_GeneralConversionRefTypeFormat: scalaxb.XMLFormat[opengis.gml.GeneralConversionRefType] = new DefaultOpengisgml_GeneralConversionRefTypeFormat {}
  implicit lazy val Opengisgml_GeneralConversionRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.GeneralConversionRefTypeSequence1] = new DefaultOpengisgml_GeneralConversionRefTypeSequence1Format {}
  implicit lazy val Opengisgml_ConversionTypeFormat: scalaxb.XMLFormat[opengis.gml.ConversionType] = new DefaultOpengisgml_ConversionTypeFormat {}
  implicit lazy val Opengisgml_ConversionRefTypeFormat: scalaxb.XMLFormat[opengis.gml.ConversionRefType] = new DefaultOpengisgml_ConversionRefTypeFormat {}
  implicit lazy val Opengisgml_ConversionRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.ConversionRefTypeSequence1] = new DefaultOpengisgml_ConversionRefTypeSequence1Format {}
  implicit lazy val Opengisgml_AbstractGeneralTransformationTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractGeneralTransformationType] = new DefaultOpengisgml_AbstractGeneralTransformationTypeFormat {}
  implicit lazy val Opengisgml_GeneralTransformationRefTypeFormat: scalaxb.XMLFormat[opengis.gml.GeneralTransformationRefType] = new DefaultOpengisgml_GeneralTransformationRefTypeFormat {}
  implicit lazy val Opengisgml_GeneralTransformationRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.GeneralTransformationRefTypeSequence1] = new DefaultOpengisgml_GeneralTransformationRefTypeSequence1Format {}
  implicit lazy val Opengisgml_TransformationTypeFormat: scalaxb.XMLFormat[opengis.gml.TransformationType] = new DefaultOpengisgml_TransformationTypeFormat {}
  implicit lazy val Opengisgml_TransformationRefTypeFormat: scalaxb.XMLFormat[opengis.gml.TransformationRefType] = new DefaultOpengisgml_TransformationRefTypeFormat {}
  implicit lazy val Opengisgml_TransformationRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.TransformationRefTypeSequence1] = new DefaultOpengisgml_TransformationRefTypeSequence1Format {}
  implicit lazy val Opengisgml_AbstractGeneralParameterValueTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractGeneralParameterValueType] = new DefaultOpengisgml_AbstractGeneralParameterValueTypeFormat {}
  implicit lazy val Opengisgml_ParameterValueTypeFormat: scalaxb.XMLFormat[opengis.gml.ParameterValueType] = new DefaultOpengisgml_ParameterValueTypeFormat {}
  implicit lazy val Opengisgml_ParameterValueGroupTypeFormat: scalaxb.XMLFormat[opengis.gml.ParameterValueGroupType] = new DefaultOpengisgml_ParameterValueGroupTypeFormat {}
  implicit lazy val Opengisgml_OperationMethodBaseTypeFormat: scalaxb.XMLFormat[opengis.gml.OperationMethodBaseType] = new DefaultOpengisgml_OperationMethodBaseTypeFormat {}
  implicit lazy val Opengisgml_OperationMethodTypeFormat: scalaxb.XMLFormat[opengis.gml.OperationMethodType] = new DefaultOpengisgml_OperationMethodTypeFormat {}
  implicit lazy val Opengisgml_OperationMethodRefTypeFormat: scalaxb.XMLFormat[opengis.gml.OperationMethodRefType] = new DefaultOpengisgml_OperationMethodRefTypeFormat {}
  implicit lazy val Opengisgml_OperationMethodRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.OperationMethodRefTypeSequence1] = new DefaultOpengisgml_OperationMethodRefTypeSequence1Format {}
  implicit lazy val Opengisgml_AbstractGeneralOperationParameterTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractGeneralOperationParameterType] = new DefaultOpengisgml_AbstractGeneralOperationParameterTypeFormat {}
  implicit lazy val Opengisgml_AbstractGeneralOperationParameterRefTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractGeneralOperationParameterRefType] = new DefaultOpengisgml_AbstractGeneralOperationParameterRefTypeFormat {}
  implicit lazy val Opengisgml_AbstractGeneralOperationParameterRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.AbstractGeneralOperationParameterRefTypeSequence1] = new DefaultOpengisgml_AbstractGeneralOperationParameterRefTypeSequence1Format {}
  implicit lazy val Opengisgml_OperationParameterBaseTypeFormat: scalaxb.XMLFormat[opengis.gml.OperationParameterBaseType] = new DefaultOpengisgml_OperationParameterBaseTypeFormat {}
  implicit lazy val Opengisgml_OperationParameterTypeFormat: scalaxb.XMLFormat[opengis.gml.OperationParameterType] = new DefaultOpengisgml_OperationParameterTypeFormat {}
  implicit lazy val Opengisgml_OperationParameterRefTypeFormat: scalaxb.XMLFormat[opengis.gml.OperationParameterRefType] = new DefaultOpengisgml_OperationParameterRefTypeFormat {}
  implicit lazy val Opengisgml_OperationParameterRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.OperationParameterRefTypeSequence1] = new DefaultOpengisgml_OperationParameterRefTypeSequence1Format {}
  implicit lazy val Opengisgml_OperationParameterGroupBaseTypeFormat: scalaxb.XMLFormat[opengis.gml.OperationParameterGroupBaseType] = new DefaultOpengisgml_OperationParameterGroupBaseTypeFormat {}
  implicit lazy val Opengisgml_OperationParameterGroupTypeFormat: scalaxb.XMLFormat[opengis.gml.OperationParameterGroupType] = new DefaultOpengisgml_OperationParameterGroupTypeFormat {}
  implicit lazy val Opengisgml_OperationParameterGroupRefTypeFormat: scalaxb.XMLFormat[opengis.gml.OperationParameterGroupRefType] = new DefaultOpengisgml_OperationParameterGroupRefTypeFormat {}
  implicit lazy val Opengisgml_OperationParameterGroupRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.OperationParameterGroupRefTypeSequence1] = new DefaultOpengisgml_OperationParameterGroupRefTypeSequence1Format {}
  implicit lazy val Opengisgml_CoordinateReferenceSystemRefTypeFormat: scalaxb.XMLFormat[opengis.gml.CoordinateReferenceSystemRefType] = new DefaultOpengisgml_CoordinateReferenceSystemRefTypeFormat {}
  implicit lazy val Opengisgml_CoordinateReferenceSystemRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.CoordinateReferenceSystemRefTypeSequence1] = new DefaultOpengisgml_CoordinateReferenceSystemRefTypeSequence1Format {}
  implicit lazy val Opengisgml_CompoundCRSTypeFormat: scalaxb.XMLFormat[opengis.gml.CompoundCRSType] = new DefaultOpengisgml_CompoundCRSTypeFormat {}
  implicit lazy val Opengisgml_CompoundCRSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.CompoundCRSRefType] = new DefaultOpengisgml_CompoundCRSRefTypeFormat {}
  implicit lazy val Opengisgml_CompoundCRSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.CompoundCRSRefTypeSequence1] = new DefaultOpengisgml_CompoundCRSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_GeographicCRSTypeFormat: scalaxb.XMLFormat[opengis.gml.GeographicCRSType] = new DefaultOpengisgml_GeographicCRSTypeFormat {}
  implicit lazy val Opengisgml_GeographicCRSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.GeographicCRSRefType] = new DefaultOpengisgml_GeographicCRSRefTypeFormat {}
  implicit lazy val Opengisgml_GeographicCRSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.GeographicCRSRefTypeSequence1] = new DefaultOpengisgml_GeographicCRSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_VerticalCRSTypeFormat: scalaxb.XMLFormat[opengis.gml.VerticalCRSType] = new DefaultOpengisgml_VerticalCRSTypeFormat {}
  implicit lazy val Opengisgml_VerticalCRSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.VerticalCRSRefType] = new DefaultOpengisgml_VerticalCRSRefTypeFormat {}
  implicit lazy val Opengisgml_VerticalCRSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.VerticalCRSRefTypeSequence1] = new DefaultOpengisgml_VerticalCRSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_GeocentricCRSTypeFormat: scalaxb.XMLFormat[opengis.gml.GeocentricCRSType] = new DefaultOpengisgml_GeocentricCRSTypeFormat {}
  implicit lazy val Opengisgml_GeocentricCRSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.GeocentricCRSRefType] = new DefaultOpengisgml_GeocentricCRSRefTypeFormat {}
  implicit lazy val Opengisgml_GeocentricCRSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.GeocentricCRSRefTypeSequence1] = new DefaultOpengisgml_GeocentricCRSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_AbstractGeneralDerivedCRSTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractGeneralDerivedCRSType] = new DefaultOpengisgml_AbstractGeneralDerivedCRSTypeFormat {}
  implicit lazy val Opengisgml_ProjectedCRSTypeFormat: scalaxb.XMLFormat[opengis.gml.ProjectedCRSType] = new DefaultOpengisgml_ProjectedCRSTypeFormat {}
  implicit lazy val Opengisgml_ProjectedCRSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.ProjectedCRSRefType] = new DefaultOpengisgml_ProjectedCRSRefTypeFormat {}
  implicit lazy val Opengisgml_ProjectedCRSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.ProjectedCRSRefTypeSequence1] = new DefaultOpengisgml_ProjectedCRSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_DerivedCRSTypeFormat: scalaxb.XMLFormat[opengis.gml.DerivedCRSType] = new DefaultOpengisgml_DerivedCRSTypeFormat {}
  implicit lazy val Opengisgml_DerivedCRSTypeTypeFormat: scalaxb.XMLFormat[opengis.gml.DerivedCRSTypeType] = new DefaultOpengisgml_DerivedCRSTypeTypeFormat {}
  implicit lazy val Opengisgml_DerivedCRSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.DerivedCRSRefType] = new DefaultOpengisgml_DerivedCRSRefTypeFormat {}
  implicit lazy val Opengisgml_DerivedCRSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.DerivedCRSRefTypeSequence1] = new DefaultOpengisgml_DerivedCRSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_EngineeringCRSTypeFormat: scalaxb.XMLFormat[opengis.gml.EngineeringCRSType] = new DefaultOpengisgml_EngineeringCRSTypeFormat {}
  implicit lazy val Opengisgml_EngineeringCRSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.EngineeringCRSRefType] = new DefaultOpengisgml_EngineeringCRSRefTypeFormat {}
  implicit lazy val Opengisgml_EngineeringCRSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.EngineeringCRSRefTypeSequence1] = new DefaultOpengisgml_EngineeringCRSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_ImageCRSTypeFormat: scalaxb.XMLFormat[opengis.gml.ImageCRSType] = new DefaultOpengisgml_ImageCRSTypeFormat {}
  implicit lazy val Opengisgml_ImageCRSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.ImageCRSRefType] = new DefaultOpengisgml_ImageCRSRefTypeFormat {}
  implicit lazy val Opengisgml_ImageCRSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.ImageCRSRefTypeSequence1] = new DefaultOpengisgml_ImageCRSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_TemporalCRSTypeFormat: scalaxb.XMLFormat[opengis.gml.TemporalCRSType] = new DefaultOpengisgml_TemporalCRSTypeFormat {}
  implicit lazy val Opengisgml_TemporalCRSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.TemporalCRSRefType] = new DefaultOpengisgml_TemporalCRSRefTypeFormat {}
  implicit lazy val Opengisgml_TemporalCRSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.TemporalCRSRefTypeSequence1] = new DefaultOpengisgml_TemporalCRSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_CoordinateSystemAxisBaseTypeFormat: scalaxb.XMLFormat[opengis.gml.CoordinateSystemAxisBaseType] = new DefaultOpengisgml_CoordinateSystemAxisBaseTypeFormat {}
  implicit lazy val Opengisgml_CoordinateSystemAxisTypeFormat: scalaxb.XMLFormat[opengis.gml.CoordinateSystemAxisType] = new DefaultOpengisgml_CoordinateSystemAxisTypeFormat {}
  implicit lazy val Opengisgml_CoordinateSystemAxisRefTypeFormat: scalaxb.XMLFormat[opengis.gml.CoordinateSystemAxisRefType] = new DefaultOpengisgml_CoordinateSystemAxisRefTypeFormat {}
  implicit lazy val Opengisgml_CoordinateSystemAxisRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.CoordinateSystemAxisRefTypeSequence1] = new DefaultOpengisgml_CoordinateSystemAxisRefTypeSequence1Format {}
  implicit lazy val Opengisgml_AbstractCoordinateSystemBaseTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractCoordinateSystemBaseType] = new DefaultOpengisgml_AbstractCoordinateSystemBaseTypeFormat {}
  implicit lazy val Opengisgml_AbstractCoordinateSystemTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractCoordinateSystemType] = new DefaultOpengisgml_AbstractCoordinateSystemTypeFormat {}
  implicit lazy val Opengisgml_CoordinateSystemRefTypeFormat: scalaxb.XMLFormat[opengis.gml.CoordinateSystemRefType] = new DefaultOpengisgml_CoordinateSystemRefTypeFormat {}
  implicit lazy val Opengisgml_CoordinateSystemRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.CoordinateSystemRefTypeSequence1] = new DefaultOpengisgml_CoordinateSystemRefTypeSequence1Format {}
  implicit lazy val Opengisgml_EllipsoidalCSTypeFormat: scalaxb.XMLFormat[opengis.gml.EllipsoidalCSType] = new DefaultOpengisgml_EllipsoidalCSTypeFormat {}
  implicit lazy val Opengisgml_EllipsoidalCSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.EllipsoidalCSRefType] = new DefaultOpengisgml_EllipsoidalCSRefTypeFormat {}
  implicit lazy val Opengisgml_EllipsoidalCSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.EllipsoidalCSRefTypeSequence1] = new DefaultOpengisgml_EllipsoidalCSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_CartesianCSTypeFormat: scalaxb.XMLFormat[opengis.gml.CartesianCSType] = new DefaultOpengisgml_CartesianCSTypeFormat {}
  implicit lazy val Opengisgml_CartesianCSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.CartesianCSRefType] = new DefaultOpengisgml_CartesianCSRefTypeFormat {}
  implicit lazy val Opengisgml_CartesianCSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.CartesianCSRefTypeSequence1] = new DefaultOpengisgml_CartesianCSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_VerticalCSTypeFormat: scalaxb.XMLFormat[opengis.gml.VerticalCSType] = new DefaultOpengisgml_VerticalCSTypeFormat {}
  implicit lazy val Opengisgml_VerticalCSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.VerticalCSRefType] = new DefaultOpengisgml_VerticalCSRefTypeFormat {}
  implicit lazy val Opengisgml_VerticalCSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.VerticalCSRefTypeSequence1] = new DefaultOpengisgml_VerticalCSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_TemporalCSTypeFormat: scalaxb.XMLFormat[opengis.gml.TemporalCSType] = new DefaultOpengisgml_TemporalCSTypeFormat {}
  implicit lazy val Opengisgml_TemporalCSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.TemporalCSRefType] = new DefaultOpengisgml_TemporalCSRefTypeFormat {}
  implicit lazy val Opengisgml_TemporalCSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.TemporalCSRefTypeSequence1] = new DefaultOpengisgml_TemporalCSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_LinearCSTypeFormat: scalaxb.XMLFormat[opengis.gml.LinearCSType] = new DefaultOpengisgml_LinearCSTypeFormat {}
  implicit lazy val Opengisgml_LinearCSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.LinearCSRefType] = new DefaultOpengisgml_LinearCSRefTypeFormat {}
  implicit lazy val Opengisgml_LinearCSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.LinearCSRefTypeSequence1] = new DefaultOpengisgml_LinearCSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_UserDefinedCSTypeFormat: scalaxb.XMLFormat[opengis.gml.UserDefinedCSType] = new DefaultOpengisgml_UserDefinedCSTypeFormat {}
  implicit lazy val Opengisgml_UserDefinedCSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.UserDefinedCSRefType] = new DefaultOpengisgml_UserDefinedCSRefTypeFormat {}
  implicit lazy val Opengisgml_UserDefinedCSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.UserDefinedCSRefTypeSequence1] = new DefaultOpengisgml_UserDefinedCSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_SphericalCSTypeFormat: scalaxb.XMLFormat[opengis.gml.SphericalCSType] = new DefaultOpengisgml_SphericalCSTypeFormat {}
  implicit lazy val Opengisgml_SphericalCSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.SphericalCSRefType] = new DefaultOpengisgml_SphericalCSRefTypeFormat {}
  implicit lazy val Opengisgml_SphericalCSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.SphericalCSRefTypeSequence1] = new DefaultOpengisgml_SphericalCSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_PolarCSTypeFormat: scalaxb.XMLFormat[opengis.gml.PolarCSType] = new DefaultOpengisgml_PolarCSTypeFormat {}
  implicit lazy val Opengisgml_PolarCSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.PolarCSRefType] = new DefaultOpengisgml_PolarCSRefTypeFormat {}
  implicit lazy val Opengisgml_PolarCSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.PolarCSRefTypeSequence1] = new DefaultOpengisgml_PolarCSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_CylindricalCSTypeFormat: scalaxb.XMLFormat[opengis.gml.CylindricalCSType] = new DefaultOpengisgml_CylindricalCSTypeFormat {}
  implicit lazy val Opengisgml_CylindricalCSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.CylindricalCSRefType] = new DefaultOpengisgml_CylindricalCSRefTypeFormat {}
  implicit lazy val Opengisgml_CylindricalCSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.CylindricalCSRefTypeSequence1] = new DefaultOpengisgml_CylindricalCSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_ObliqueCartesianCSTypeFormat: scalaxb.XMLFormat[opengis.gml.ObliqueCartesianCSType] = new DefaultOpengisgml_ObliqueCartesianCSTypeFormat {}
  implicit lazy val Opengisgml_ObliqueCartesianCSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.ObliqueCartesianCSRefType] = new DefaultOpengisgml_ObliqueCartesianCSRefTypeFormat {}
  implicit lazy val Opengisgml_ObliqueCartesianCSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.ObliqueCartesianCSRefTypeSequence1] = new DefaultOpengisgml_ObliqueCartesianCSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_AbstractCoverageTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractCoverageType] = new DefaultOpengisgml_AbstractCoverageTypeFormat {}
  implicit lazy val Opengisgml_AbstractContinuousCoverageTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractContinuousCoverageType] = new DefaultOpengisgml_AbstractContinuousCoverageTypeFormat {}
  implicit lazy val Opengisgml_AbstractDiscreteCoverageTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractDiscreteCoverageType] = new DefaultOpengisgml_AbstractDiscreteCoverageTypeFormat {}
  implicit lazy val Opengisgml_DomainSetTypableFormat: scalaxb.XMLFormat[opengis.gml.DomainSetTypable] = new DefaultOpengisgml_DomainSetTypableFormat {}
  implicit lazy val Opengisgml_DomainSetTypeFormat: scalaxb.XMLFormat[opengis.gml.DomainSetType] = new DefaultOpengisgml_DomainSetTypeFormat {}
  implicit lazy val Opengisgml_RangeSetTypeFormat: scalaxb.XMLFormat[opengis.gml.RangeSetType] = new DefaultOpengisgml_RangeSetTypeFormat {}
  implicit lazy val Opengisgml_CoverageFunctionTypeFormat: scalaxb.XMLFormat[opengis.gml.CoverageFunctionType] = new DefaultOpengisgml_CoverageFunctionTypeFormat {}
  implicit lazy val Opengisgml_DataBlockTypeFormat: scalaxb.XMLFormat[opengis.gml.DataBlockType] = new DefaultOpengisgml_DataBlockTypeFormat {}
  implicit lazy val Opengisgml_FileTypeFormat: scalaxb.XMLFormat[opengis.gml.FileType] = new DefaultOpengisgml_FileTypeFormat {}
  implicit lazy val Opengisgml_FileValueModelTypeFormat: scalaxb.XMLFormat[opengis.gml.FileValueModelType] = new DefaultOpengisgml_FileValueModelTypeFormat {}
  implicit lazy val Opengisgml_RangeParametersTypeFormat: scalaxb.XMLFormat[opengis.gml.RangeParametersType] = new DefaultOpengisgml_RangeParametersTypeFormat {}
  implicit lazy val Opengisgml_RangeParametersTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.RangeParametersTypeSequence1] = new DefaultOpengisgml_RangeParametersTypeSequence1Format {}
  implicit lazy val Opengisgml_GridFunctionTypableFormat: scalaxb.XMLFormat[opengis.gml.GridFunctionTypable] = new DefaultOpengisgml_GridFunctionTypableFormat {}
  implicit lazy val Opengisgml_GridFunctionTypeFormat: scalaxb.XMLFormat[opengis.gml.GridFunctionType] = new DefaultOpengisgml_GridFunctionTypeFormat {}
  implicit lazy val Opengisgml_IndexMapTypeFormat: scalaxb.XMLFormat[opengis.gml.IndexMapType] = new DefaultOpengisgml_IndexMapTypeFormat {}
  implicit lazy val Opengisgml_SequenceRuleTypeFormat: scalaxb.XMLFormat[opengis.gml.SequenceRuleType] = new DefaultOpengisgml_SequenceRuleTypeFormat {}
  implicit lazy val Opengisgml_SequenceRuleNamesFormat: scalaxb.XMLFormat[opengis.gml.SequenceRuleNames] = new DefaultOpengisgml_SequenceRuleNamesFormat {}
  implicit lazy val Opengisgml_IncrementOrderFormat: scalaxb.XMLFormat[opengis.gml.IncrementOrder] = new DefaultOpengisgml_IncrementOrderFormat {}
  implicit lazy val Opengisgml_MultiPointCoverageTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiPointCoverageType] = new DefaultOpengisgml_MultiPointCoverageTypeFormat {}
  implicit lazy val Opengisgml_MultiPointDomainTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiPointDomainType] = new DefaultOpengisgml_MultiPointDomainTypeFormat {}
  implicit lazy val Opengisgml_MultiPointDomainTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.MultiPointDomainTypeSequence1] = new DefaultOpengisgml_MultiPointDomainTypeSequence1Format {}
  implicit lazy val Opengisgml_MultiCurveCoverageTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiCurveCoverageType] = new DefaultOpengisgml_MultiCurveCoverageTypeFormat {}
  implicit lazy val Opengisgml_MultiCurveDomainTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiCurveDomainType] = new DefaultOpengisgml_MultiCurveDomainTypeFormat {}
  implicit lazy val Opengisgml_MultiCurveDomainTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.MultiCurveDomainTypeSequence1] = new DefaultOpengisgml_MultiCurveDomainTypeSequence1Format {}
  implicit lazy val Opengisgml_MultiSurfaceCoverageTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiSurfaceCoverageType] = new DefaultOpengisgml_MultiSurfaceCoverageTypeFormat {}
  implicit lazy val Opengisgml_MultiSurfaceDomainTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiSurfaceDomainType] = new DefaultOpengisgml_MultiSurfaceDomainTypeFormat {}
  implicit lazy val Opengisgml_MultiSurfaceDomainTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.MultiSurfaceDomainTypeSequence1] = new DefaultOpengisgml_MultiSurfaceDomainTypeSequence1Format {}
  implicit lazy val Opengisgml_MultiSolidCoverageTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiSolidCoverageType] = new DefaultOpengisgml_MultiSolidCoverageTypeFormat {}
  implicit lazy val Opengisgml_MultiSolidDomainTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiSolidDomainType] = new DefaultOpengisgml_MultiSolidDomainTypeFormat {}
  implicit lazy val Opengisgml_MultiSolidDomainTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.MultiSolidDomainTypeSequence1] = new DefaultOpengisgml_MultiSolidDomainTypeSequence1Format {}
  implicit lazy val Opengisgml_GridCoverageTypeFormat: scalaxb.XMLFormat[opengis.gml.GridCoverageType] = new DefaultOpengisgml_GridCoverageTypeFormat {}
  implicit lazy val Opengisgml_GridDomainTypeFormat: scalaxb.XMLFormat[opengis.gml.GridDomainType] = new DefaultOpengisgml_GridDomainTypeFormat {}
  implicit lazy val Opengisgml_GridDomainTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.GridDomainTypeSequence1] = new DefaultOpengisgml_GridDomainTypeSequence1Format {}
  implicit lazy val Opengisgml_RectifiedGridCoverageTypeFormat: scalaxb.XMLFormat[opengis.gml.RectifiedGridCoverageType] = new DefaultOpengisgml_RectifiedGridCoverageTypeFormat {}
  implicit lazy val Opengisgml_RectifiedGridDomainTypeFormat: scalaxb.XMLFormat[opengis.gml.RectifiedGridDomainType] = new DefaultOpengisgml_RectifiedGridDomainTypeFormat {}
  implicit lazy val Opengisgml_RectifiedGridDomainTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.RectifiedGridDomainTypeSequence1] = new DefaultOpengisgml_RectifiedGridDomainTypeSequence1Format {}
  implicit lazy val Opengisgml_AbstractPositionalAccuracyTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractPositionalAccuracyType] = new DefaultOpengisgml_AbstractPositionalAccuracyTypeFormat {}
  implicit lazy val Opengisgml_AbsoluteExternalPositionalAccuracyTypeFormat: scalaxb.XMLFormat[opengis.gml.AbsoluteExternalPositionalAccuracyType] = new DefaultOpengisgml_AbsoluteExternalPositionalAccuracyTypeFormat {}
  implicit lazy val Opengisgml_RelativeInternalPositionalAccuracyTypeFormat: scalaxb.XMLFormat[opengis.gml.RelativeInternalPositionalAccuracyType] = new DefaultOpengisgml_RelativeInternalPositionalAccuracyTypeFormat {}
  implicit lazy val Opengisgml_CovarianceMatrixTypeFormat: scalaxb.XMLFormat[opengis.gml.CovarianceMatrixType] = new DefaultOpengisgml_CovarianceMatrixTypeFormat {}
  implicit lazy val Opengisgml_CovarianceElementTypeFormat: scalaxb.XMLFormat[opengis.gml.CovarianceElementType] = new DefaultOpengisgml_CovarianceElementTypeFormat {}
  implicit lazy val Opengisgml_AbstractDatumBaseTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractDatumBaseType] = new DefaultOpengisgml_AbstractDatumBaseTypeFormat {}
  implicit lazy val Opengisgml_AbstractDatumTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractDatumType] = new DefaultOpengisgml_AbstractDatumTypeFormat {}
  implicit lazy val Opengisgml_DatumRefTypeFormat: scalaxb.XMLFormat[opengis.gml.DatumRefType] = new DefaultOpengisgml_DatumRefTypeFormat {}
  implicit lazy val Opengisgml_DatumRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.DatumRefTypeSequence1] = new DefaultOpengisgml_DatumRefTypeSequence1Format {}
  implicit lazy val Opengisgml_EngineeringDatumTypeFormat: scalaxb.XMLFormat[opengis.gml.EngineeringDatumType] = new DefaultOpengisgml_EngineeringDatumTypeFormat {}
  implicit lazy val Opengisgml_EngineeringDatumRefTypeFormat: scalaxb.XMLFormat[opengis.gml.EngineeringDatumRefType] = new DefaultOpengisgml_EngineeringDatumRefTypeFormat {}
  implicit lazy val Opengisgml_EngineeringDatumRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.EngineeringDatumRefTypeSequence1] = new DefaultOpengisgml_EngineeringDatumRefTypeSequence1Format {}
  implicit lazy val Opengisgml_ImageDatumTypeFormat: scalaxb.XMLFormat[opengis.gml.ImageDatumType] = new DefaultOpengisgml_ImageDatumTypeFormat {}
  implicit lazy val Opengisgml_PixelInCellTypeFormat: scalaxb.XMLFormat[opengis.gml.PixelInCellType] = new DefaultOpengisgml_PixelInCellTypeFormat {}
  implicit lazy val Opengisgml_ImageDatumRefTypeFormat: scalaxb.XMLFormat[opengis.gml.ImageDatumRefType] = new DefaultOpengisgml_ImageDatumRefTypeFormat {}
  implicit lazy val Opengisgml_ImageDatumRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.ImageDatumRefTypeSequence1] = new DefaultOpengisgml_ImageDatumRefTypeSequence1Format {}
  implicit lazy val Opengisgml_VerticalDatumTypeFormat: scalaxb.XMLFormat[opengis.gml.VerticalDatumType] = new DefaultOpengisgml_VerticalDatumTypeFormat {}
  implicit lazy val Opengisgml_VerticalDatumTypeTypeFormat: scalaxb.XMLFormat[opengis.gml.VerticalDatumTypeType] = new DefaultOpengisgml_VerticalDatumTypeTypeFormat {}
  implicit lazy val Opengisgml_VerticalDatumRefTypeFormat: scalaxb.XMLFormat[opengis.gml.VerticalDatumRefType] = new DefaultOpengisgml_VerticalDatumRefTypeFormat {}
  implicit lazy val Opengisgml_VerticalDatumRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.VerticalDatumRefTypeSequence1] = new DefaultOpengisgml_VerticalDatumRefTypeSequence1Format {}
  implicit lazy val Opengisgml_TemporalDatumBaseTypeFormat: scalaxb.XMLFormat[opengis.gml.TemporalDatumBaseType] = new DefaultOpengisgml_TemporalDatumBaseTypeFormat {}
  implicit lazy val Opengisgml_TemporalDatumTypeFormat: scalaxb.XMLFormat[opengis.gml.TemporalDatumType] = new DefaultOpengisgml_TemporalDatumTypeFormat {}
  implicit lazy val Opengisgml_TemporalDatumRefTypeFormat: scalaxb.XMLFormat[opengis.gml.TemporalDatumRefType] = new DefaultOpengisgml_TemporalDatumRefTypeFormat {}
  implicit lazy val Opengisgml_TemporalDatumRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.TemporalDatumRefTypeSequence1] = new DefaultOpengisgml_TemporalDatumRefTypeSequence1Format {}
  implicit lazy val Opengisgml_GeodeticDatumTypeFormat: scalaxb.XMLFormat[opengis.gml.GeodeticDatumType] = new DefaultOpengisgml_GeodeticDatumTypeFormat {}
  implicit lazy val Opengisgml_GeodeticDatumRefTypeFormat: scalaxb.XMLFormat[opengis.gml.GeodeticDatumRefType] = new DefaultOpengisgml_GeodeticDatumRefTypeFormat {}
  implicit lazy val Opengisgml_GeodeticDatumRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.GeodeticDatumRefTypeSequence1] = new DefaultOpengisgml_GeodeticDatumRefTypeSequence1Format {}
  implicit lazy val Opengisgml_PrimeMeridianBaseTypeFormat: scalaxb.XMLFormat[opengis.gml.PrimeMeridianBaseType] = new DefaultOpengisgml_PrimeMeridianBaseTypeFormat {}
  implicit lazy val Opengisgml_PrimeMeridianTypeFormat: scalaxb.XMLFormat[opengis.gml.PrimeMeridianType] = new DefaultOpengisgml_PrimeMeridianTypeFormat {}
  implicit lazy val Opengisgml_PrimeMeridianRefTypeFormat: scalaxb.XMLFormat[opengis.gml.PrimeMeridianRefType] = new DefaultOpengisgml_PrimeMeridianRefTypeFormat {}
  implicit lazy val Opengisgml_PrimeMeridianRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.PrimeMeridianRefTypeSequence1] = new DefaultOpengisgml_PrimeMeridianRefTypeSequence1Format {}
  implicit lazy val Opengisgml_EllipsoidBaseTypeFormat: scalaxb.XMLFormat[opengis.gml.EllipsoidBaseType] = new DefaultOpengisgml_EllipsoidBaseTypeFormat {}
  implicit lazy val Opengisgml_EllipsoidTypeFormat: scalaxb.XMLFormat[opengis.gml.EllipsoidType] = new DefaultOpengisgml_EllipsoidTypeFormat {}
  implicit lazy val Opengisgml_EllipsoidRefTypeFormat: scalaxb.XMLFormat[opengis.gml.EllipsoidRefType] = new DefaultOpengisgml_EllipsoidRefTypeFormat {}
  implicit lazy val Opengisgml_EllipsoidRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.EllipsoidRefTypeSequence1] = new DefaultOpengisgml_EllipsoidRefTypeSequence1Format {}
  implicit lazy val Opengisgml_SecondDefiningParameterTypeFormat: scalaxb.XMLFormat[opengis.gml.SecondDefiningParameterType] = new DefaultOpengisgml_SecondDefiningParameterTypeFormat {}
  implicit lazy val Opengisgml_IsSphereFormat: scalaxb.XMLFormat[opengis.gml.IsSphere] = new DefaultOpengisgml_IsSphereFormat {}
  implicit lazy val Opengisgml_DefaultStylePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.DefaultStylePropertyType] = new DefaultOpengisgml_DefaultStylePropertyTypeFormat {}
  implicit lazy val Opengisgml_AbstractStyleTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractStyleType] = new DefaultOpengisgml_AbstractStyleTypeFormat {}
  implicit lazy val Opengisgml_StyleTypeFormat: scalaxb.XMLFormat[opengis.gml.StyleType] = new DefaultOpengisgml_StyleTypeFormat {}
  implicit lazy val Opengisgml_FeatureStylePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.FeatureStylePropertyType] = new DefaultOpengisgml_FeatureStylePropertyTypeFormat {}
  implicit lazy val Opengisgml_FeatureStyleTypeFormat: scalaxb.XMLFormat[opengis.gml.FeatureStyleType] = new DefaultOpengisgml_FeatureStyleTypeFormat {}
  implicit lazy val Opengisgml_QueryGrammarEnumerationFormat: scalaxb.XMLFormat[opengis.gml.QueryGrammarEnumeration] = new DefaultOpengisgml_QueryGrammarEnumerationFormat {}
  implicit lazy val Opengisgml_BaseStyleDescriptorTypableFormat: scalaxb.XMLFormat[opengis.gml.BaseStyleDescriptorTypable] = new DefaultOpengisgml_BaseStyleDescriptorTypableFormat {}
  implicit lazy val Opengisgml_BaseStyleDescriptorTypeFormat: scalaxb.XMLFormat[opengis.gml.BaseStyleDescriptorType] = new DefaultOpengisgml_BaseStyleDescriptorTypeFormat {}
  implicit lazy val Opengisgml_GeometryStylePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.GeometryStylePropertyType] = new DefaultOpengisgml_GeometryStylePropertyTypeFormat {}
  implicit lazy val Opengisgml_GeometryStyleTypeFormat: scalaxb.XMLFormat[opengis.gml.GeometryStyleType] = new DefaultOpengisgml_GeometryStyleTypeFormat {}
  implicit lazy val Opengisgml_TopologyStylePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.TopologyStylePropertyType] = new DefaultOpengisgml_TopologyStylePropertyTypeFormat {}
  implicit lazy val Opengisgml_TopologyStyleTypeFormat: scalaxb.XMLFormat[opengis.gml.TopologyStyleType] = new DefaultOpengisgml_TopologyStyleTypeFormat {}
  implicit lazy val Opengisgml_LabelStylePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.LabelStylePropertyType] = new DefaultOpengisgml_LabelStylePropertyTypeFormat {}
  implicit lazy val Opengisgml_LabelStyleTypeFormat: scalaxb.XMLFormat[opengis.gml.LabelStyleType] = new DefaultOpengisgml_LabelStyleTypeFormat {}
  implicit lazy val Opengisgml_GraphStylePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.GraphStylePropertyType] = new DefaultOpengisgml_GraphStylePropertyTypeFormat {}
  implicit lazy val Opengisgml_GraphStyleTypeFormat: scalaxb.XMLFormat[opengis.gml.GraphStyleType] = new DefaultOpengisgml_GraphStyleTypeFormat {}
  implicit lazy val Opengisgml_SymbolTypeFormat: scalaxb.XMLFormat[opengis.gml.SymbolType] = new DefaultOpengisgml_SymbolTypeFormat {}
  implicit lazy val Opengisgml_SymbolTypeEnumerationFormat: scalaxb.XMLFormat[opengis.gml.SymbolTypeEnumeration] = new DefaultOpengisgml_SymbolTypeEnumerationFormat {}
  implicit lazy val Opengisgml_LabelTypeFormat: scalaxb.XMLFormat[opengis.gml.LabelType] = new DefaultOpengisgml_LabelTypeFormat {}
  implicit lazy val Opengisgml_StyleVariationTypeFormat: scalaxb.XMLFormat[opengis.gml.StyleVariationType] = new DefaultOpengisgml_StyleVariationTypeFormat {}
  implicit lazy val Opengisgml_GraphTypeTypeFormat: scalaxb.XMLFormat[opengis.gml.GraphTypeType] = new DefaultOpengisgml_GraphTypeTypeFormat {}
  implicit lazy val Opengisgml_DrawingTypeTypeFormat: scalaxb.XMLFormat[opengis.gml.DrawingTypeType] = new DefaultOpengisgml_DrawingTypeTypeFormat {}
  implicit lazy val Opengisgml_LineTypeTypeFormat: scalaxb.XMLFormat[opengis.gml.LineTypeType] = new DefaultOpengisgml_LineTypeTypeFormat {}
  implicit lazy val Opengisgml_AesheticCriteriaTypeFormat: scalaxb.XMLFormat[opengis.gml.AesheticCriteriaType] = new DefaultOpengisgml_AesheticCriteriaTypeFormat {}
  implicit lazy val Opengisgml_DefinitionTypableFormat: scalaxb.XMLFormat[opengis.gml.DefinitionTypable] = new DefaultOpengisgml_DefinitionTypableFormat {}
  implicit lazy val Opengisgml_DefinitionTypeFormat: scalaxb.XMLFormat[opengis.gml.DefinitionType] = new DefaultOpengisgml_DefinitionTypeFormat {}
  implicit lazy val Opengisgml_DictionaryTypeFormat: scalaxb.XMLFormat[opengis.gml.DictionaryType] = new DefaultOpengisgml_DictionaryTypeFormat {}
  implicit lazy val Opengisgml_DictionaryEntryTypeFormat: scalaxb.XMLFormat[opengis.gml.DictionaryEntryType] = new DefaultOpengisgml_DictionaryEntryTypeFormat {}
  implicit lazy val Opengisgml_DictionaryEntryTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.DictionaryEntryTypeSequence1] = new DefaultOpengisgml_DictionaryEntryTypeSequence1Format {}
  implicit lazy val Opengisgml_IndirectEntryTypeFormat: scalaxb.XMLFormat[opengis.gml.IndirectEntryType] = new DefaultOpengisgml_IndirectEntryTypeFormat {}
  implicit lazy val Opengisgml_DefinitionProxyTypeFormat: scalaxb.XMLFormat[opengis.gml.DefinitionProxyType] = new DefaultOpengisgml_DefinitionProxyTypeFormat {}
  implicit lazy val Opengisgml_StandardDefinitionPropertiesSequenceFormat: scalaxb.XMLFormat[opengis.gml.StandardDefinitionPropertiesSequence] = new DefaultOpengisgml_StandardDefinitionPropertiesSequenceFormat {}
  implicit lazy val Opengisgml_DirectionPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.DirectionPropertyType] = new DefaultOpengisgml_DirectionPropertyTypeFormat {}
  implicit lazy val Opengisgml_DirectionVectorTypeFormat: scalaxb.XMLFormat[opengis.gml.DirectionVectorType] = new DefaultOpengisgml_DirectionVectorTypeFormat {}
  implicit lazy val Opengisgml_DirectionVectorTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.DirectionVectorTypeSequence1] = new DefaultOpengisgml_DirectionVectorTypeSequence1Format {}
  implicit lazy val Opengisgml_CompassPointEnumerationFormat: scalaxb.XMLFormat[opengis.gml.CompassPointEnumeration] = new DefaultOpengisgml_CompassPointEnumerationFormat {}
  implicit lazy val Opengisgml_AbstractTimeSliceTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractTimeSliceType] = new DefaultOpengisgml_AbstractTimeSliceTypeFormat {}
  implicit lazy val Opengisgml_MovingObjectStatusTypeFormat: scalaxb.XMLFormat[opengis.gml.MovingObjectStatusType] = new DefaultOpengisgml_MovingObjectStatusTypeFormat {}
  implicit lazy val Opengisgml_HistoryPropertyTypableFormat: scalaxb.XMLFormat[opengis.gml.HistoryPropertyTypable] = new DefaultOpengisgml_HistoryPropertyTypableFormat {}
  implicit lazy val Opengisgml_HistoryPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.HistoryPropertyType] = new DefaultOpengisgml_HistoryPropertyTypeFormat {}
  implicit lazy val Opengisgml_HistoryPropertyTypableSequence1Format: scalaxb.XMLFormat[opengis.gml.HistoryPropertyTypableSequence1] = new DefaultOpengisgml_HistoryPropertyTypableSequence1Format {}
  implicit lazy val Opengisgml_TrackTypeFormat: scalaxb.XMLFormat[opengis.gml.TrackType] = new DefaultOpengisgml_TrackTypeFormat {}
  implicit lazy val Opengisgml_TrackTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.TrackTypeSequence1] = new DefaultOpengisgml_TrackTypeSequence1Format {}
  implicit lazy val Opengisgml_DynamicFeatureTypeFormat: scalaxb.XMLFormat[opengis.gml.DynamicFeatureType] = new DefaultOpengisgml_DynamicFeatureTypeFormat {}
  implicit lazy val Opengisgml_DynamicFeatureCollectionTypeFormat: scalaxb.XMLFormat[opengis.gml.DynamicFeatureCollectionType] = new DefaultOpengisgml_DynamicFeatureCollectionTypeFormat {}
  implicit lazy val Opengisgml_DynamicPropertiesSequenceFormat: scalaxb.XMLFormat[opengis.gml.DynamicPropertiesSequence] = new DefaultOpengisgml_DynamicPropertiesSequenceFormat {}
  implicit lazy val Opengisgml_AbstractFeatureTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractFeatureType] = new DefaultOpengisgml_AbstractFeatureTypeFormat {}
  implicit lazy val Opengisgml_BoundingShapeTypeFormat: scalaxb.XMLFormat[opengis.gml.BoundingShapeType] = new DefaultOpengisgml_BoundingShapeTypeFormat {}
  implicit lazy val Opengisgml_EnvelopeWithTimePeriodTypeFormat: scalaxb.XMLFormat[opengis.gml.EnvelopeWithTimePeriodType] = new DefaultOpengisgml_EnvelopeWithTimePeriodTypeFormat {}
  implicit lazy val Opengisgml_FeaturePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.FeaturePropertyType] = new DefaultOpengisgml_FeaturePropertyTypeFormat {}
  implicit lazy val Opengisgml_FeaturePropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.FeaturePropertyTypeSequence1] = new DefaultOpengisgml_FeaturePropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_FeatureArrayPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.FeatureArrayPropertyType] = new DefaultOpengisgml_FeatureArrayPropertyTypeFormat {}
  implicit lazy val Opengisgml_AbstractFeatureCollectionTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractFeatureCollectionType] = new DefaultOpengisgml_AbstractFeatureCollectionTypeFormat {}
  implicit lazy val Opengisgml_FeatureCollectionTypableFormat: scalaxb.XMLFormat[opengis.gml.FeatureCollectionTypable] = new DefaultOpengisgml_FeatureCollectionTypableFormat {}
  implicit lazy val Opengisgml_FeatureCollectionTypeFormat: scalaxb.XMLFormat[opengis.gml.FeatureCollectionType] = new DefaultOpengisgml_FeatureCollectionTypeFormat {}
  implicit lazy val Opengisgml_BoundedFeatureTypeFormat: scalaxb.XMLFormat[opengis.gml.BoundedFeatureType] = new DefaultOpengisgml_BoundedFeatureTypeFormat {}
  implicit lazy val Opengisgml_LocationPropertyTypableFormat: scalaxb.XMLFormat[opengis.gml.LocationPropertyTypable] = new DefaultOpengisgml_LocationPropertyTypableFormat {}
  implicit lazy val Opengisgml_LocationPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.LocationPropertyType] = new DefaultOpengisgml_LocationPropertyTypeFormat {}
  implicit lazy val Opengisgml_PriorityLocationPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.PriorityLocationPropertyType] = new DefaultOpengisgml_PriorityLocationPropertyTypeFormat {}
  implicit lazy val Opengisgml_AbstractGeometricAggregateTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractGeometricAggregateType] = new DefaultOpengisgml_AbstractGeometricAggregateTypeFormat {}
  implicit lazy val Opengisgml_MultiGeometryTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiGeometryType] = new DefaultOpengisgml_MultiGeometryTypeFormat {}
  implicit lazy val Opengisgml_MultiGeometryPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiGeometryPropertyType] = new DefaultOpengisgml_MultiGeometryPropertyTypeFormat {}
  implicit lazy val Opengisgml_MultiGeometryPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.MultiGeometryPropertyTypeSequence1] = new DefaultOpengisgml_MultiGeometryPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_MultiPointTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiPointType] = new DefaultOpengisgml_MultiPointTypeFormat {}
  implicit lazy val Opengisgml_MultiPointPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiPointPropertyType] = new DefaultOpengisgml_MultiPointPropertyTypeFormat {}
  implicit lazy val Opengisgml_MultiPointPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.MultiPointPropertyTypeSequence1] = new DefaultOpengisgml_MultiPointPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_MultiCurveTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiCurveType] = new DefaultOpengisgml_MultiCurveTypeFormat {}
  implicit lazy val Opengisgml_MultiCurvePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiCurvePropertyType] = new DefaultOpengisgml_MultiCurvePropertyTypeFormat {}
  implicit lazy val Opengisgml_MultiCurvePropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.MultiCurvePropertyTypeSequence1] = new DefaultOpengisgml_MultiCurvePropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_MultiSurfaceTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiSurfaceType] = new DefaultOpengisgml_MultiSurfaceTypeFormat {}
  implicit lazy val Opengisgml_MultiSurfacePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiSurfacePropertyType] = new DefaultOpengisgml_MultiSurfacePropertyTypeFormat {}
  implicit lazy val Opengisgml_MultiSurfacePropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.MultiSurfacePropertyTypeSequence1] = new DefaultOpengisgml_MultiSurfacePropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_MultiSolidTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiSolidType] = new DefaultOpengisgml_MultiSolidTypeFormat {}
  implicit lazy val Opengisgml_MultiSolidPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiSolidPropertyType] = new DefaultOpengisgml_MultiSolidPropertyTypeFormat {}
  implicit lazy val Opengisgml_MultiSolidPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.MultiSolidPropertyTypeSequence1] = new DefaultOpengisgml_MultiSolidPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_MultiLineStringTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiLineStringType] = new DefaultOpengisgml_MultiLineStringTypeFormat {}
  implicit lazy val Opengisgml_MultiLineStringPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiLineStringPropertyType] = new DefaultOpengisgml_MultiLineStringPropertyTypeFormat {}
  implicit lazy val Opengisgml_MultiLineStringPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.MultiLineStringPropertyTypeSequence1] = new DefaultOpengisgml_MultiLineStringPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_MultiPolygonTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiPolygonType] = new DefaultOpengisgml_MultiPolygonTypeFormat {}
  implicit lazy val Opengisgml_MultiPolygonPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.MultiPolygonPropertyType] = new DefaultOpengisgml_MultiPolygonPropertyTypeFormat {}
  implicit lazy val Opengisgml_MultiPolygonPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.MultiPolygonPropertyTypeSequence1] = new DefaultOpengisgml_MultiPolygonPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_GeometryPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.GeometryPropertyType] = new DefaultOpengisgml_GeometryPropertyTypeFormat {}
  implicit lazy val Opengisgml_GeometryPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.GeometryPropertyTypeSequence1] = new DefaultOpengisgml_GeometryPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_GeometryArrayPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.GeometryArrayPropertyType] = new DefaultOpengisgml_GeometryArrayPropertyTypeFormat {}
  implicit lazy val Opengisgml_AbstractGeometryTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractGeometryType] = new DefaultOpengisgml_AbstractGeometryTypeFormat {}
  implicit lazy val Opengisgml_AbstractGeometricPrimitiveTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractGeometricPrimitiveType] = new DefaultOpengisgml_AbstractGeometricPrimitiveTypeFormat {}
  implicit lazy val Opengisgml_GeometricPrimitivePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.GeometricPrimitivePropertyType] = new DefaultOpengisgml_GeometricPrimitivePropertyTypeFormat {}
  implicit lazy val Opengisgml_GeometricPrimitivePropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.GeometricPrimitivePropertyTypeSequence1] = new DefaultOpengisgml_GeometricPrimitivePropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_PointTypeFormat: scalaxb.XMLFormat[opengis.gml.PointType] = new DefaultOpengisgml_PointTypeFormat {}
  implicit lazy val Opengisgml_PointPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.PointPropertyType] = new DefaultOpengisgml_PointPropertyTypeFormat {}
  implicit lazy val Opengisgml_PointPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.PointPropertyTypeSequence1] = new DefaultOpengisgml_PointPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_PointArrayPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.PointArrayPropertyType] = new DefaultOpengisgml_PointArrayPropertyTypeFormat {}
  implicit lazy val Opengisgml_AbstractCurveTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractCurveType] = new DefaultOpengisgml_AbstractCurveTypeFormat {}
  implicit lazy val Opengisgml_CurvePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.CurvePropertyType] = new DefaultOpengisgml_CurvePropertyTypeFormat {}
  implicit lazy val Opengisgml_CurvePropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.CurvePropertyTypeSequence1] = new DefaultOpengisgml_CurvePropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_CurveArrayPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.CurveArrayPropertyType] = new DefaultOpengisgml_CurveArrayPropertyTypeFormat {}
  implicit lazy val Opengisgml_LineStringTypeFormat: scalaxb.XMLFormat[opengis.gml.LineStringType] = new DefaultOpengisgml_LineStringTypeFormat {}
  implicit lazy val Opengisgml_DirectPositionTypeFormat: scalaxb.XMLFormat[opengis.gml.DirectPositionType] = new DefaultOpengisgml_DirectPositionTypeFormat {}
  implicit lazy val Opengisgml_DirectPositionListTypeFormat: scalaxb.XMLFormat[opengis.gml.DirectPositionListType] = new DefaultOpengisgml_DirectPositionListTypeFormat {}
  implicit lazy val Opengisgml_VectorTypeFormat: scalaxb.XMLFormat[opengis.gml.VectorType] = new DefaultOpengisgml_VectorTypeFormat {}
  implicit lazy val Opengisgml_EnvelopeTypableFormat: scalaxb.XMLFormat[opengis.gml.EnvelopeTypable] = new DefaultOpengisgml_EnvelopeTypableFormat {}
  implicit lazy val Opengisgml_EnvelopeTypeFormat: scalaxb.XMLFormat[opengis.gml.EnvelopeType] = new DefaultOpengisgml_EnvelopeTypeFormat {}
  implicit lazy val Opengisgml_EnvelopeTypableSequence1Format: scalaxb.XMLFormat[opengis.gml.EnvelopeTypableSequence1] = new DefaultOpengisgml_EnvelopeTypableSequence1Format {}
  implicit lazy val Opengisgml_CoordTypeFormat: scalaxb.XMLFormat[opengis.gml.CoordType] = new DefaultOpengisgml_CoordTypeFormat {}
  implicit lazy val Opengisgml_LineStringPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.LineStringPropertyType] = new DefaultOpengisgml_LineStringPropertyTypeFormat {}
  implicit lazy val Opengisgml_LineStringPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.LineStringPropertyTypeSequence1] = new DefaultOpengisgml_LineStringPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_SRSInformationGroupFormat: scalaxb.AttributeGroupFormat[opengis.gml.SRSInformationGroup] = new DefaultOpengisgml_SRSInformationGroupFormat {}
  implicit lazy val Opengisgml_SRSReferenceGroupFormat: scalaxb.AttributeGroupFormat[opengis.gml.SRSReferenceGroup] = new DefaultOpengisgml_SRSReferenceGroupFormat {}
  implicit lazy val Opengisgml_AbstractSurfaceTypableFormat: scalaxb.XMLFormat[opengis.gml.AbstractSurfaceTypable] = new DefaultOpengisgml_AbstractSurfaceTypableFormat {}
  implicit lazy val Opengisgml_AbstractSurfaceTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractSurfaceType] = new DefaultOpengisgml_AbstractSurfaceTypeFormat {}
  implicit lazy val Opengisgml_SurfacePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.SurfacePropertyType] = new DefaultOpengisgml_SurfacePropertyTypeFormat {}
  implicit lazy val Opengisgml_SurfacePropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.SurfacePropertyTypeSequence1] = new DefaultOpengisgml_SurfacePropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_SurfaceArrayPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.SurfaceArrayPropertyType] = new DefaultOpengisgml_SurfaceArrayPropertyTypeFormat {}
  implicit lazy val Opengisgml_PolygonTypeFormat: scalaxb.XMLFormat[opengis.gml.PolygonType] = new DefaultOpengisgml_PolygonTypeFormat {}
  implicit lazy val Opengisgml_AbstractRingTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractRingType] = new DefaultOpengisgml_AbstractRingTypeFormat {}
  implicit lazy val Opengisgml_AbstractRingPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractRingPropertyType] = new DefaultOpengisgml_AbstractRingPropertyTypeFormat {}
  implicit lazy val Opengisgml_LinearRingTypeFormat: scalaxb.XMLFormat[opengis.gml.LinearRingType] = new DefaultOpengisgml_LinearRingTypeFormat {}
  implicit lazy val Opengisgml_LinearRingPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.LinearRingPropertyType] = new DefaultOpengisgml_LinearRingPropertyTypeFormat {}
  implicit lazy val Opengisgml_PolygonPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.PolygonPropertyType] = new DefaultOpengisgml_PolygonPropertyTypeFormat {}
  implicit lazy val Opengisgml_PolygonPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.PolygonPropertyTypeSequence1] = new DefaultOpengisgml_PolygonPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_CompositeCurveTypeFormat: scalaxb.XMLFormat[opengis.gml.CompositeCurveType] = new DefaultOpengisgml_CompositeCurveTypeFormat {}
  implicit lazy val Opengisgml_CompositeCurvePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.CompositeCurvePropertyType] = new DefaultOpengisgml_CompositeCurvePropertyTypeFormat {}
  implicit lazy val Opengisgml_CompositeCurvePropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.CompositeCurvePropertyTypeSequence1] = new DefaultOpengisgml_CompositeCurvePropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_CompositeSurfaceTypeFormat: scalaxb.XMLFormat[opengis.gml.CompositeSurfaceType] = new DefaultOpengisgml_CompositeSurfaceTypeFormat {}
  implicit lazy val Opengisgml_CompositeSurfacePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.CompositeSurfacePropertyType] = new DefaultOpengisgml_CompositeSurfacePropertyTypeFormat {}
  implicit lazy val Opengisgml_CompositeSurfacePropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.CompositeSurfacePropertyTypeSequence1] = new DefaultOpengisgml_CompositeSurfacePropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_CompositeSolidTypeFormat: scalaxb.XMLFormat[opengis.gml.CompositeSolidType] = new DefaultOpengisgml_CompositeSolidTypeFormat {}
  implicit lazy val Opengisgml_CompositeSolidPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.CompositeSolidPropertyType] = new DefaultOpengisgml_CompositeSolidPropertyTypeFormat {}
  implicit lazy val Opengisgml_CompositeSolidPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.CompositeSolidPropertyTypeSequence1] = new DefaultOpengisgml_CompositeSolidPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_GeometricComplexTypeFormat: scalaxb.XMLFormat[opengis.gml.GeometricComplexType] = new DefaultOpengisgml_GeometricComplexTypeFormat {}
  implicit lazy val Opengisgml_GeometricComplexPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.GeometricComplexPropertyType] = new DefaultOpengisgml_GeometricComplexPropertyTypeFormat {}
  implicit lazy val Opengisgml_CurveTypeFormat: scalaxb.XMLFormat[opengis.gml.CurveType] = new DefaultOpengisgml_CurveTypeFormat {}
  implicit lazy val Opengisgml_OrientableCurveTypeFormat: scalaxb.XMLFormat[opengis.gml.OrientableCurveType] = new DefaultOpengisgml_OrientableCurveTypeFormat {}
  implicit lazy val Opengisgml_AbstractCurveSegmentTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractCurveSegmentType] = new DefaultOpengisgml_AbstractCurveSegmentTypeFormat {}
  implicit lazy val Opengisgml_CurveSegmentArrayPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.CurveSegmentArrayPropertyType] = new DefaultOpengisgml_CurveSegmentArrayPropertyTypeFormat {}
  implicit lazy val Opengisgml_LineStringSegmentTypeFormat: scalaxb.XMLFormat[opengis.gml.LineStringSegmentType] = new DefaultOpengisgml_LineStringSegmentTypeFormat {}
  implicit lazy val Opengisgml_ArcStringTypableFormat: scalaxb.XMLFormat[opengis.gml.ArcStringTypable] = new DefaultOpengisgml_ArcStringTypableFormat {}
  implicit lazy val Opengisgml_ArcStringTypeFormat: scalaxb.XMLFormat[opengis.gml.ArcStringType] = new DefaultOpengisgml_ArcStringTypeFormat {}
  implicit lazy val Opengisgml_ArcTypableFormat: scalaxb.XMLFormat[opengis.gml.ArcTypable] = new DefaultOpengisgml_ArcTypableFormat {}
  implicit lazy val Opengisgml_ArcTypeFormat: scalaxb.XMLFormat[opengis.gml.ArcType] = new DefaultOpengisgml_ArcTypeFormat {}
  implicit lazy val Opengisgml_CircleTypeFormat: scalaxb.XMLFormat[opengis.gml.CircleType] = new DefaultOpengisgml_CircleTypeFormat {}
  implicit lazy val Opengisgml_ArcStringByBulgeTypableFormat: scalaxb.XMLFormat[opengis.gml.ArcStringByBulgeTypable] = new DefaultOpengisgml_ArcStringByBulgeTypableFormat {}
  implicit lazy val Opengisgml_ArcStringByBulgeTypeFormat: scalaxb.XMLFormat[opengis.gml.ArcStringByBulgeType] = new DefaultOpengisgml_ArcStringByBulgeTypeFormat {}
  implicit lazy val Opengisgml_ArcByBulgeTypeFormat: scalaxb.XMLFormat[opengis.gml.ArcByBulgeType] = new DefaultOpengisgml_ArcByBulgeTypeFormat {}
  implicit lazy val Opengisgml_ArcByCenterPointTypableFormat: scalaxb.XMLFormat[opengis.gml.ArcByCenterPointTypable] = new DefaultOpengisgml_ArcByCenterPointTypableFormat {}
  implicit lazy val Opengisgml_ArcByCenterPointTypeFormat: scalaxb.XMLFormat[opengis.gml.ArcByCenterPointType] = new DefaultOpengisgml_ArcByCenterPointTypeFormat {}
  implicit lazy val Opengisgml_CircleByCenterPointTypeFormat: scalaxb.XMLFormat[opengis.gml.CircleByCenterPointType] = new DefaultOpengisgml_CircleByCenterPointTypeFormat {}
  implicit lazy val Opengisgml_OffsetCurveTypeFormat: scalaxb.XMLFormat[opengis.gml.OffsetCurveType] = new DefaultOpengisgml_OffsetCurveTypeFormat {}
  implicit lazy val Opengisgml_AffinePlacementTypeFormat: scalaxb.XMLFormat[opengis.gml.AffinePlacementType] = new DefaultOpengisgml_AffinePlacementTypeFormat {}
  implicit lazy val Opengisgml_RefLocationFormat: scalaxb.XMLFormat[opengis.gml.RefLocation] = new DefaultOpengisgml_RefLocationFormat {}
  implicit lazy val Opengisgml_ClothoidTypeFormat: scalaxb.XMLFormat[opengis.gml.ClothoidType] = new DefaultOpengisgml_ClothoidTypeFormat {}
  implicit lazy val Opengisgml_GeodesicStringTypableFormat: scalaxb.XMLFormat[opengis.gml.GeodesicStringTypable] = new DefaultOpengisgml_GeodesicStringTypableFormat {}
  implicit lazy val Opengisgml_GeodesicStringTypeFormat: scalaxb.XMLFormat[opengis.gml.GeodesicStringType] = new DefaultOpengisgml_GeodesicStringTypeFormat {}
  implicit lazy val Opengisgml_GeodesicTypeFormat: scalaxb.XMLFormat[opengis.gml.GeodesicType] = new DefaultOpengisgml_GeodesicTypeFormat {}
  implicit lazy val Opengisgml_CubicSplineTypeFormat: scalaxb.XMLFormat[opengis.gml.CubicSplineType] = new DefaultOpengisgml_CubicSplineTypeFormat {}
  implicit lazy val Opengisgml_KnotTypeFormat: scalaxb.XMLFormat[opengis.gml.KnotType] = new DefaultOpengisgml_KnotTypeFormat {}
  implicit lazy val Opengisgml_KnotPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.KnotPropertyType] = new DefaultOpengisgml_KnotPropertyTypeFormat {}
  implicit lazy val Opengisgml_BSplineTypableFormat: scalaxb.XMLFormat[opengis.gml.BSplineTypable] = new DefaultOpengisgml_BSplineTypableFormat {}
  implicit lazy val Opengisgml_BSplineTypeFormat: scalaxb.XMLFormat[opengis.gml.BSplineType] = new DefaultOpengisgml_BSplineTypeFormat {}
  implicit lazy val Opengisgml_BezierTypeFormat: scalaxb.XMLFormat[opengis.gml.BezierType] = new DefaultOpengisgml_BezierTypeFormat {}
  implicit lazy val Opengisgml_SurfaceTypableFormat: scalaxb.XMLFormat[opengis.gml.SurfaceTypable] = new DefaultOpengisgml_SurfaceTypableFormat {}
  implicit lazy val Opengisgml_SurfaceTypeFormat: scalaxb.XMLFormat[opengis.gml.SurfaceType] = new DefaultOpengisgml_SurfaceTypeFormat {}
  implicit lazy val Opengisgml_OrientableSurfaceTypeFormat: scalaxb.XMLFormat[opengis.gml.OrientableSurfaceType] = new DefaultOpengisgml_OrientableSurfaceTypeFormat {}
  implicit lazy val Opengisgml_AbstractSurfacePatchTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractSurfacePatchType] = new DefaultOpengisgml_AbstractSurfacePatchTypeFormat {}
  implicit lazy val Opengisgml_SurfacePatchArrayPropertyTypableFormat: scalaxb.XMLFormat[opengis.gml.SurfacePatchArrayPropertyTypable] = new DefaultOpengisgml_SurfacePatchArrayPropertyTypableFormat {}
  implicit lazy val Opengisgml_SurfacePatchArrayPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.SurfacePatchArrayPropertyType] = new DefaultOpengisgml_SurfacePatchArrayPropertyTypeFormat {}
  implicit lazy val Opengisgml_SurfacePatchArrayPropertyTypableSequence1Format: scalaxb.XMLFormat[opengis.gml.SurfacePatchArrayPropertyTypableSequence1] = new DefaultOpengisgml_SurfacePatchArrayPropertyTypableSequence1Format {}
  implicit lazy val Opengisgml_PolygonPatchTypeFormat: scalaxb.XMLFormat[opengis.gml.PolygonPatchType] = new DefaultOpengisgml_PolygonPatchTypeFormat {}
  implicit lazy val Opengisgml_TriangleTypeFormat: scalaxb.XMLFormat[opengis.gml.TriangleType] = new DefaultOpengisgml_TriangleTypeFormat {}
  implicit lazy val Opengisgml_RectangleTypeFormat: scalaxb.XMLFormat[opengis.gml.RectangleType] = new DefaultOpengisgml_RectangleTypeFormat {}
  implicit lazy val Opengisgml_RingTypeFormat: scalaxb.XMLFormat[opengis.gml.RingType] = new DefaultOpengisgml_RingTypeFormat {}
  implicit lazy val Opengisgml_RingPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.RingPropertyType] = new DefaultOpengisgml_RingPropertyTypeFormat {}
  implicit lazy val Opengisgml_RowFormat: scalaxb.XMLFormat[opengis.gml.Row] = new DefaultOpengisgml_RowFormat {}
  implicit lazy val Opengisgml_AbstractParametricCurveSurfaceTypableFormat: scalaxb.XMLFormat[opengis.gml.AbstractParametricCurveSurfaceTypable] = new DefaultOpengisgml_AbstractParametricCurveSurfaceTypableFormat {}
  implicit lazy val Opengisgml_AbstractParametricCurveSurfaceTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractParametricCurveSurfaceType] = new DefaultOpengisgml_AbstractParametricCurveSurfaceTypeFormat {}
  implicit lazy val Opengisgml_AbstractGriddedSurfaceTypableFormat: scalaxb.XMLFormat[opengis.gml.AbstractGriddedSurfaceTypable] = new DefaultOpengisgml_AbstractGriddedSurfaceTypableFormat {}
  implicit lazy val Opengisgml_AbstractGriddedSurfaceTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractGriddedSurfaceType] = new DefaultOpengisgml_AbstractGriddedSurfaceTypeFormat {}
  implicit lazy val Opengisgml_ConeTypeFormat: scalaxb.XMLFormat[opengis.gml.ConeType] = new DefaultOpengisgml_ConeTypeFormat {}
  implicit lazy val Opengisgml_CylinderTypeFormat: scalaxb.XMLFormat[opengis.gml.CylinderType] = new DefaultOpengisgml_CylinderTypeFormat {}
  implicit lazy val Opengisgml_SphereTypeFormat: scalaxb.XMLFormat[opengis.gml.SphereType] = new DefaultOpengisgml_SphereTypeFormat {}
  implicit lazy val Opengisgml_PolyhedralSurfaceTypeFormat: scalaxb.XMLFormat[opengis.gml.PolyhedralSurfaceType] = new DefaultOpengisgml_PolyhedralSurfaceTypeFormat {}
  implicit lazy val Opengisgml_PolygonPatchArrayPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.PolygonPatchArrayPropertyType] = new DefaultOpengisgml_PolygonPatchArrayPropertyTypeFormat {}
  implicit lazy val Opengisgml_PolygonPatchArrayPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.PolygonPatchArrayPropertyTypeSequence1] = new DefaultOpengisgml_PolygonPatchArrayPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_TrianglePatchArrayPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.TrianglePatchArrayPropertyType] = new DefaultOpengisgml_TrianglePatchArrayPropertyTypeFormat {}
  implicit lazy val Opengisgml_TrianglePatchArrayPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.TrianglePatchArrayPropertyTypeSequence1] = new DefaultOpengisgml_TrianglePatchArrayPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_TriangulatedSurfaceTypableFormat: scalaxb.XMLFormat[opengis.gml.TriangulatedSurfaceTypable] = new DefaultOpengisgml_TriangulatedSurfaceTypableFormat {}
  implicit lazy val Opengisgml_TriangulatedSurfaceTypeFormat: scalaxb.XMLFormat[opengis.gml.TriangulatedSurfaceType] = new DefaultOpengisgml_TriangulatedSurfaceTypeFormat {}
  implicit lazy val Opengisgml_ControlPointFormat: scalaxb.XMLFormat[opengis.gml.ControlPoint] = new DefaultOpengisgml_ControlPointFormat {}
  implicit lazy val Opengisgml_TinTypeFormat: scalaxb.XMLFormat[opengis.gml.TinType] = new DefaultOpengisgml_TinTypeFormat {}
  implicit lazy val Opengisgml_LineStringSegmentArrayPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.LineStringSegmentArrayPropertyType] = new DefaultOpengisgml_LineStringSegmentArrayPropertyTypeFormat {}
  implicit lazy val Opengisgml_AbstractSolidTypableFormat: scalaxb.XMLFormat[opengis.gml.AbstractSolidTypable] = new DefaultOpengisgml_AbstractSolidTypableFormat {}
  implicit lazy val Opengisgml_AbstractSolidTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractSolidType] = new DefaultOpengisgml_AbstractSolidTypeFormat {}
  implicit lazy val Opengisgml_SolidPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.SolidPropertyType] = new DefaultOpengisgml_SolidPropertyTypeFormat {}
  implicit lazy val Opengisgml_SolidPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.SolidPropertyTypeSequence1] = new DefaultOpengisgml_SolidPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_SolidArrayPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.SolidArrayPropertyType] = new DefaultOpengisgml_SolidArrayPropertyTypeFormat {}
  implicit lazy val Opengisgml_SolidArrayPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.SolidArrayPropertyTypeSequence1] = new DefaultOpengisgml_SolidArrayPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_SolidTypeFormat: scalaxb.XMLFormat[opengis.gml.SolidType] = new DefaultOpengisgml_SolidTypeFormat {}
  implicit lazy val Opengisgml_CurveInterpolationTypeFormat: scalaxb.XMLFormat[opengis.gml.CurveInterpolationType] = new DefaultOpengisgml_CurveInterpolationTypeFormat {}
  implicit lazy val Opengisgml_SurfaceInterpolationTypeFormat: scalaxb.XMLFormat[opengis.gml.SurfaceInterpolationType] = new DefaultOpengisgml_SurfaceInterpolationTypeFormat {}
  implicit lazy val Opengisgml_KnotTypesTypeFormat: scalaxb.XMLFormat[opengis.gml.KnotTypesType] = new DefaultOpengisgml_KnotTypesTypeFormat {}
  implicit lazy val Opengisgml_PointGridSequenceFormat: scalaxb.XMLFormat[opengis.gml.PointGridSequence] = new DefaultOpengisgml_PointGridSequenceFormat {}
  implicit lazy val Opengisgml_AbstractGMLTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractGMLType] = new DefaultOpengisgml_AbstractGMLTypeFormat {}
  implicit lazy val Opengisgml_BagTypeFormat: scalaxb.XMLFormat[opengis.gml.BagType] = new DefaultOpengisgml_BagTypeFormat {}
  implicit lazy val Opengisgml_ArrayTypeFormat: scalaxb.XMLFormat[opengis.gml.ArrayType] = new DefaultOpengisgml_ArrayTypeFormat {}
  implicit lazy val Opengisgml_AbstractMetaDataTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractMetaDataType] = new DefaultOpengisgml_AbstractMetaDataTypeFormat {}
  implicit lazy val Opengisgml_GenericMetaDataTypeFormat: scalaxb.XMLFormat[opengis.gml.GenericMetaDataType] = new DefaultOpengisgml_GenericMetaDataTypeFormat {}
  implicit lazy val Opengisgml_AssociationTypeFormat: scalaxb.XMLFormat[opengis.gml.AssociationType] = new DefaultOpengisgml_AssociationTypeFormat {}
  implicit lazy val Opengisgml_AssociationTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.AssociationTypeSequence1] = new DefaultOpengisgml_AssociationTypeSequence1Format {}
  implicit lazy val Opengisgml_ReferenceTypeFormat: scalaxb.XMLFormat[opengis.gml.ReferenceType] = new DefaultOpengisgml_ReferenceTypeFormat {}
  implicit lazy val Opengisgml_ArrayAssociationTypeFormat: scalaxb.XMLFormat[opengis.gml.ArrayAssociationType] = new DefaultOpengisgml_ArrayAssociationTypeFormat {}
  implicit lazy val Opengisgml_MetaDataPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.MetaDataPropertyType] = new DefaultOpengisgml_MetaDataPropertyTypeFormat {}
  implicit lazy val Opengisgml_StringOrRefTypeFormat: scalaxb.XMLFormat[opengis.gml.StringOrRefType] = new DefaultOpengisgml_StringOrRefTypeFormat {}
  implicit lazy val Opengisgml_StandardObjectPropertiesSequenceFormat: scalaxb.XMLFormat[opengis.gml.StandardObjectPropertiesSequence] = new DefaultOpengisgml_StandardObjectPropertiesSequenceFormat {}
  implicit lazy val Opengisgml_AssociationAttributeGroupFormat: scalaxb.AttributeGroupFormat[opengis.gml.AssociationAttributeGroup] = new DefaultOpengisgml_AssociationAttributeGroupFormat {}
  implicit lazy val Opengisgml_GridTypableFormat: scalaxb.XMLFormat[opengis.gml.GridTypable] = new DefaultOpengisgml_GridTypableFormat {}
  implicit lazy val Opengisgml_GridTypeFormat: scalaxb.XMLFormat[opengis.gml.GridType] = new DefaultOpengisgml_GridTypeFormat {}
  implicit lazy val Opengisgml_GridLimitsTypeFormat: scalaxb.XMLFormat[opengis.gml.GridLimitsType] = new DefaultOpengisgml_GridLimitsTypeFormat {}
  implicit lazy val Opengisgml_GridEnvelopeTypeFormat: scalaxb.XMLFormat[opengis.gml.GridEnvelopeType] = new DefaultOpengisgml_GridEnvelopeTypeFormat {}
  implicit lazy val Opengisgml_RectifiedGridTypeFormat: scalaxb.XMLFormat[opengis.gml.RectifiedGridType] = new DefaultOpengisgml_RectifiedGridTypeFormat {}
  implicit lazy val Opengisgml_LengthTypeFormat: scalaxb.XMLFormat[opengis.gml.LengthType] = new DefaultOpengisgml_LengthTypeFormat {}
  implicit lazy val Opengisgml_ScaleTypeFormat: scalaxb.XMLFormat[opengis.gml.ScaleType] = new DefaultOpengisgml_ScaleTypeFormat {}
  implicit lazy val Opengisgml_TimeTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeType] = new DefaultOpengisgml_TimeTypeFormat {}
  implicit lazy val Opengisgml_GridLengthTypeFormat: scalaxb.XMLFormat[opengis.gml.GridLengthType] = new DefaultOpengisgml_GridLengthTypeFormat {}
  implicit lazy val Opengisgml_AreaTypeFormat: scalaxb.XMLFormat[opengis.gml.AreaType] = new DefaultOpengisgml_AreaTypeFormat {}
  implicit lazy val Opengisgml_VolumeTypeFormat: scalaxb.XMLFormat[opengis.gml.VolumeType] = new DefaultOpengisgml_VolumeTypeFormat {}
  implicit lazy val Opengisgml_SpeedTypeFormat: scalaxb.XMLFormat[opengis.gml.SpeedType] = new DefaultOpengisgml_SpeedTypeFormat {}
  implicit lazy val Opengisgml_AngleChoiceTypeFormat: scalaxb.XMLFormat[opengis.gml.AngleChoiceType] = new DefaultOpengisgml_AngleChoiceTypeFormat {}
  implicit lazy val Opengisgml_AngleTypeFormat: scalaxb.XMLFormat[opengis.gml.AngleType] = new DefaultOpengisgml_AngleTypeFormat {}
  implicit lazy val Opengisgml_DMSAngleTypeFormat: scalaxb.XMLFormat[opengis.gml.DMSAngleType] = new DefaultOpengisgml_DMSAngleTypeFormat {}
  implicit lazy val Opengisgml_DMSAngleTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.DMSAngleTypeSequence1] = new DefaultOpengisgml_DMSAngleTypeSequence1Format {}
  implicit lazy val Opengisgml_DegreesTypeFormat: scalaxb.XMLFormat[opengis.gml.DegreesType] = new DefaultOpengisgml_DegreesTypeFormat {}
  implicit lazy val Opengisgml_TargetPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.TargetPropertyType] = new DefaultOpengisgml_TargetPropertyTypeFormat {}
  implicit lazy val Opengisgml_ObservationTypableFormat: scalaxb.XMLFormat[opengis.gml.ObservationTypable] = new DefaultOpengisgml_ObservationTypableFormat {}
  implicit lazy val Opengisgml_ObservationTypeFormat: scalaxb.XMLFormat[opengis.gml.ObservationType] = new DefaultOpengisgml_ObservationTypeFormat {}
  implicit lazy val Opengisgml_DirectedObservationTypableFormat: scalaxb.XMLFormat[opengis.gml.DirectedObservationTypable] = new DefaultOpengisgml_DirectedObservationTypableFormat {}
  implicit lazy val Opengisgml_DirectedObservationTypeFormat: scalaxb.XMLFormat[opengis.gml.DirectedObservationType] = new DefaultOpengisgml_DirectedObservationTypeFormat {}
  implicit lazy val Opengisgml_DirectedObservationAtDistanceTypeFormat: scalaxb.XMLFormat[opengis.gml.DirectedObservationAtDistanceType] = new DefaultOpengisgml_DirectedObservationAtDistanceTypeFormat {}
  implicit lazy val Opengisgml_AbstractReferenceSystemBaseTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractReferenceSystemBaseType] = new DefaultOpengisgml_AbstractReferenceSystemBaseTypeFormat {}
  implicit lazy val Opengisgml_AbstractReferenceSystemTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractReferenceSystemType] = new DefaultOpengisgml_AbstractReferenceSystemTypeFormat {}
  implicit lazy val Opengisgml_ReferenceSystemRefTypeFormat: scalaxb.XMLFormat[opengis.gml.ReferenceSystemRefType] = new DefaultOpengisgml_ReferenceSystemRefTypeFormat {}
  implicit lazy val Opengisgml_ReferenceSystemRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.ReferenceSystemRefTypeSequence1] = new DefaultOpengisgml_ReferenceSystemRefTypeSequence1Format {}
  implicit lazy val Opengisgml_CRSRefTypeFormat: scalaxb.XMLFormat[opengis.gml.CRSRefType] = new DefaultOpengisgml_CRSRefTypeFormat {}
  implicit lazy val Opengisgml_CRSRefTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.CRSRefTypeSequence1] = new DefaultOpengisgml_CRSRefTypeSequence1Format {}
  implicit lazy val Opengisgml_IdentifierTypeFormat: scalaxb.XMLFormat[opengis.gml.IdentifierType] = new DefaultOpengisgml_IdentifierTypeFormat {}
  implicit lazy val Opengisgml_ExtentTypeFormat: scalaxb.XMLFormat[opengis.gml.ExtentType] = new DefaultOpengisgml_ExtentTypeFormat {}
  implicit lazy val Opengisgml_AbstractTimeObjectTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractTimeObjectType] = new DefaultOpengisgml_AbstractTimeObjectTypeFormat {}
  implicit lazy val Opengisgml_AbstractTimePrimitiveTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractTimePrimitiveType] = new DefaultOpengisgml_AbstractTimePrimitiveTypeFormat {}
  implicit lazy val Opengisgml_TimePrimitivePropertyTypableFormat: scalaxb.XMLFormat[opengis.gml.TimePrimitivePropertyTypable] = new DefaultOpengisgml_TimePrimitivePropertyTypableFormat {}
  implicit lazy val Opengisgml_TimePrimitivePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.TimePrimitivePropertyType] = new DefaultOpengisgml_TimePrimitivePropertyTypeFormat {}
  implicit lazy val Opengisgml_TimePrimitivePropertyTypableSequence1Format: scalaxb.XMLFormat[opengis.gml.TimePrimitivePropertyTypableSequence1] = new DefaultOpengisgml_TimePrimitivePropertyTypableSequence1Format {}
  implicit lazy val Opengisgml_RelativePositionFormat: scalaxb.XMLFormat[opengis.gml.RelativePosition] = new DefaultOpengisgml_RelativePositionFormat {}
  implicit lazy val Opengisgml_RelatedTimeTypeFormat: scalaxb.XMLFormat[opengis.gml.RelatedTimeType] = new DefaultOpengisgml_RelatedTimeTypeFormat {}
  implicit lazy val Opengisgml_AbstractTimeComplexTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractTimeComplexType] = new DefaultOpengisgml_AbstractTimeComplexTypeFormat {}
  implicit lazy val Opengisgml_AbstractTimeGeometricPrimitiveTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractTimeGeometricPrimitiveType] = new DefaultOpengisgml_AbstractTimeGeometricPrimitiveTypeFormat {}
  implicit lazy val Opengisgml_TimeGeometricPrimitivePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeGeometricPrimitivePropertyType] = new DefaultOpengisgml_TimeGeometricPrimitivePropertyTypeFormat {}
  implicit lazy val Opengisgml_TimeGeometricPrimitivePropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.TimeGeometricPrimitivePropertyTypeSequence1] = new DefaultOpengisgml_TimeGeometricPrimitivePropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_TimeInstantTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeInstantType] = new DefaultOpengisgml_TimeInstantTypeFormat {}
  implicit lazy val Opengisgml_TimeInstantPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeInstantPropertyType] = new DefaultOpengisgml_TimeInstantPropertyTypeFormat {}
  implicit lazy val Opengisgml_TimeInstantPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.TimeInstantPropertyTypeSequence1] = new DefaultOpengisgml_TimeInstantPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_TimePeriodTypeFormat: scalaxb.XMLFormat[opengis.gml.TimePeriodType] = new DefaultOpengisgml_TimePeriodTypeFormat {}
  implicit lazy val Opengisgml_TimePeriodPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.TimePeriodPropertyType] = new DefaultOpengisgml_TimePeriodPropertyTypeFormat {}
  implicit lazy val Opengisgml_TimePeriodPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.TimePeriodPropertyTypeSequence1] = new DefaultOpengisgml_TimePeriodPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_TimeIntervalLengthTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeIntervalLengthType] = new DefaultOpengisgml_TimeIntervalLengthTypeFormat {}
  implicit lazy val Opengisgml_TimePositionTypeFormat: scalaxb.XMLFormat[opengis.gml.TimePositionType] = new DefaultOpengisgml_TimePositionTypeFormat {}
  implicit lazy val Opengisgml_TimeIndeterminateValueTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeIndeterminateValueType] = new DefaultOpengisgml_TimeIndeterminateValueTypeFormat {}
  implicit lazy val Opengisgml_AbstractTimeReferenceSystemTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractTimeReferenceSystemType] = new DefaultOpengisgml_AbstractTimeReferenceSystemTypeFormat {}
  implicit lazy val Opengisgml_TimeCoordinateSystemTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeCoordinateSystemType] = new DefaultOpengisgml_TimeCoordinateSystemTypeFormat {}
  implicit lazy val Opengisgml_TimeOrdinalReferenceSystemTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeOrdinalReferenceSystemType] = new DefaultOpengisgml_TimeOrdinalReferenceSystemTypeFormat {}
  implicit lazy val Opengisgml_TimeOrdinalEraTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeOrdinalEraType] = new DefaultOpengisgml_TimeOrdinalEraTypeFormat {}
  implicit lazy val Opengisgml_TimeOrdinalEraPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeOrdinalEraPropertyType] = new DefaultOpengisgml_TimeOrdinalEraPropertyTypeFormat {}
  implicit lazy val Opengisgml_TimeOrdinalEraPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.TimeOrdinalEraPropertyTypeSequence1] = new DefaultOpengisgml_TimeOrdinalEraPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_TimeCalendarTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeCalendarType] = new DefaultOpengisgml_TimeCalendarTypeFormat {}
  implicit lazy val Opengisgml_TimeCalendarPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeCalendarPropertyType] = new DefaultOpengisgml_TimeCalendarPropertyTypeFormat {}
  implicit lazy val Opengisgml_TimeCalendarPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.TimeCalendarPropertyTypeSequence1] = new DefaultOpengisgml_TimeCalendarPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_TimeCalendarEraTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeCalendarEraType] = new DefaultOpengisgml_TimeCalendarEraTypeFormat {}
  implicit lazy val Opengisgml_TimeCalendarEraPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeCalendarEraPropertyType] = new DefaultOpengisgml_TimeCalendarEraPropertyTypeFormat {}
  implicit lazy val Opengisgml_TimeCalendarEraPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.TimeCalendarEraPropertyTypeSequence1] = new DefaultOpengisgml_TimeCalendarEraPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_TimeClockTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeClockType] = new DefaultOpengisgml_TimeClockTypeFormat {}
  implicit lazy val Opengisgml_TimeClockPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeClockPropertyType] = new DefaultOpengisgml_TimeClockPropertyTypeFormat {}
  implicit lazy val Opengisgml_TimeClockPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.TimeClockPropertyTypeSequence1] = new DefaultOpengisgml_TimeClockPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_TimeTopologyComplexTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeTopologyComplexType] = new DefaultOpengisgml_TimeTopologyComplexTypeFormat {}
  implicit lazy val Opengisgml_TimeTopologyComplexPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeTopologyComplexPropertyType] = new DefaultOpengisgml_TimeTopologyComplexPropertyTypeFormat {}
  implicit lazy val Opengisgml_TimeTopologyComplexPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.TimeTopologyComplexPropertyTypeSequence1] = new DefaultOpengisgml_TimeTopologyComplexPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_AbstractTimeTopologyPrimitiveTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractTimeTopologyPrimitiveType] = new DefaultOpengisgml_AbstractTimeTopologyPrimitiveTypeFormat {}
  implicit lazy val Opengisgml_TimeTopologyPrimitivePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeTopologyPrimitivePropertyType] = new DefaultOpengisgml_TimeTopologyPrimitivePropertyTypeFormat {}
  implicit lazy val Opengisgml_TimeTopologyPrimitivePropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.TimeTopologyPrimitivePropertyTypeSequence1] = new DefaultOpengisgml_TimeTopologyPrimitivePropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_TimeNodeTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeNodeType] = new DefaultOpengisgml_TimeNodeTypeFormat {}
  implicit lazy val Opengisgml_TimeNodePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeNodePropertyType] = new DefaultOpengisgml_TimeNodePropertyTypeFormat {}
  implicit lazy val Opengisgml_TimeNodePropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.TimeNodePropertyTypeSequence1] = new DefaultOpengisgml_TimeNodePropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_TimeEdgeTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeEdgeType] = new DefaultOpengisgml_TimeEdgeTypeFormat {}
  implicit lazy val Opengisgml_TimeEdgePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.TimeEdgePropertyType] = new DefaultOpengisgml_TimeEdgePropertyTypeFormat {}
  implicit lazy val Opengisgml_TimeEdgePropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.TimeEdgePropertyTypeSequence1] = new DefaultOpengisgml_TimeEdgePropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_SuccessionTypeFormat: scalaxb.XMLFormat[opengis.gml.SuccessionType] = new DefaultOpengisgml_SuccessionTypeFormat {}
  implicit lazy val Opengisgml_AbstractTopologyTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractTopologyType] = new DefaultOpengisgml_AbstractTopologyTypeFormat {}
  implicit lazy val Opengisgml_AbstractTopoPrimitiveTypeFormat: scalaxb.XMLFormat[opengis.gml.AbstractTopoPrimitiveType] = new DefaultOpengisgml_AbstractTopoPrimitiveTypeFormat {}
  implicit lazy val Opengisgml_IsolatedPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.IsolatedPropertyType] = new DefaultOpengisgml_IsolatedPropertyTypeFormat {}
  implicit lazy val Opengisgml_ContainerPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.ContainerPropertyType] = new DefaultOpengisgml_ContainerPropertyTypeFormat {}
  implicit lazy val Opengisgml_NodeTypeFormat: scalaxb.XMLFormat[opengis.gml.NodeType] = new DefaultOpengisgml_NodeTypeFormat {}
  implicit lazy val Opengisgml_DirectedNodePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.DirectedNodePropertyType] = new DefaultOpengisgml_DirectedNodePropertyTypeFormat {}
  implicit lazy val Opengisgml_DirectedNodePropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.DirectedNodePropertyTypeSequence1] = new DefaultOpengisgml_DirectedNodePropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_EdgeTypeFormat: scalaxb.XMLFormat[opengis.gml.EdgeType] = new DefaultOpengisgml_EdgeTypeFormat {}
  implicit lazy val Opengisgml_DirectedEdgePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.DirectedEdgePropertyType] = new DefaultOpengisgml_DirectedEdgePropertyTypeFormat {}
  implicit lazy val Opengisgml_DirectedEdgePropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.DirectedEdgePropertyTypeSequence1] = new DefaultOpengisgml_DirectedEdgePropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_FaceTypeFormat: scalaxb.XMLFormat[opengis.gml.FaceType] = new DefaultOpengisgml_FaceTypeFormat {}
  implicit lazy val Opengisgml_DirectedFacePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.DirectedFacePropertyType] = new DefaultOpengisgml_DirectedFacePropertyTypeFormat {}
  implicit lazy val Opengisgml_DirectedFacePropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.DirectedFacePropertyTypeSequence1] = new DefaultOpengisgml_DirectedFacePropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_TopoSolidTypeFormat: scalaxb.XMLFormat[opengis.gml.TopoSolidType] = new DefaultOpengisgml_TopoSolidTypeFormat {}
  implicit lazy val Opengisgml_DirectedTopoSolidPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.DirectedTopoSolidPropertyType] = new DefaultOpengisgml_DirectedTopoSolidPropertyTypeFormat {}
  implicit lazy val Opengisgml_DirectedTopoSolidPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.DirectedTopoSolidPropertyTypeSequence1] = new DefaultOpengisgml_DirectedTopoSolidPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_TopoPointTypeFormat: scalaxb.XMLFormat[opengis.gml.TopoPointType] = new DefaultOpengisgml_TopoPointTypeFormat {}
  implicit lazy val Opengisgml_TopoPointPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.TopoPointPropertyType] = new DefaultOpengisgml_TopoPointPropertyTypeFormat {}
  implicit lazy val Opengisgml_TopoCurveTypeFormat: scalaxb.XMLFormat[opengis.gml.TopoCurveType] = new DefaultOpengisgml_TopoCurveTypeFormat {}
  implicit lazy val Opengisgml_TopoCurvePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.TopoCurvePropertyType] = new DefaultOpengisgml_TopoCurvePropertyTypeFormat {}
  implicit lazy val Opengisgml_TopoSurfaceTypeFormat: scalaxb.XMLFormat[opengis.gml.TopoSurfaceType] = new DefaultOpengisgml_TopoSurfaceTypeFormat {}
  implicit lazy val Opengisgml_TopoSurfacePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.TopoSurfacePropertyType] = new DefaultOpengisgml_TopoSurfacePropertyTypeFormat {}
  implicit lazy val Opengisgml_TopoVolumeTypeFormat: scalaxb.XMLFormat[opengis.gml.TopoVolumeType] = new DefaultOpengisgml_TopoVolumeTypeFormat {}
  implicit lazy val Opengisgml_TopoVolumePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.TopoVolumePropertyType] = new DefaultOpengisgml_TopoVolumePropertyTypeFormat {}
  implicit lazy val Opengisgml_TopoComplexTypeFormat: scalaxb.XMLFormat[opengis.gml.TopoComplexType] = new DefaultOpengisgml_TopoComplexTypeFormat {}
  implicit lazy val Opengisgml_TopoComplexMemberTypeFormat: scalaxb.XMLFormat[opengis.gml.TopoComplexMemberType] = new DefaultOpengisgml_TopoComplexMemberTypeFormat {}
  implicit lazy val Opengisgml_TopoPrimitiveMemberTypeFormat: scalaxb.XMLFormat[opengis.gml.TopoPrimitiveMemberType] = new DefaultOpengisgml_TopoPrimitiveMemberTypeFormat {}
  implicit lazy val Opengisgml_TopoPrimitiveArrayAssociationTypeFormat: scalaxb.XMLFormat[opengis.gml.TopoPrimitiveArrayAssociationType] = new DefaultOpengisgml_TopoPrimitiveArrayAssociationTypeFormat {}
  implicit lazy val Opengisgml_UnitOfMeasureTypableFormat: scalaxb.XMLFormat[opengis.gml.UnitOfMeasureTypable] = new DefaultOpengisgml_UnitOfMeasureTypableFormat {}
  implicit lazy val Opengisgml_UnitOfMeasureTypeFormat: scalaxb.XMLFormat[opengis.gml.UnitOfMeasureType] = new DefaultOpengisgml_UnitOfMeasureTypeFormat {}
  implicit lazy val Opengisgml_UnitDefinitionTypableFormat: scalaxb.XMLFormat[opengis.gml.UnitDefinitionTypable] = new DefaultOpengisgml_UnitDefinitionTypableFormat {}
  implicit lazy val Opengisgml_UnitDefinitionTypeFormat: scalaxb.XMLFormat[opengis.gml.UnitDefinitionType] = new DefaultOpengisgml_UnitDefinitionTypeFormat {}
  implicit lazy val Opengisgml_BaseUnitTypeFormat: scalaxb.XMLFormat[opengis.gml.BaseUnitType] = new DefaultOpengisgml_BaseUnitTypeFormat {}
  implicit lazy val Opengisgml_DerivedUnitTypeFormat: scalaxb.XMLFormat[opengis.gml.DerivedUnitType] = new DefaultOpengisgml_DerivedUnitTypeFormat {}
  implicit lazy val Opengisgml_ConventionalUnitTypeFormat: scalaxb.XMLFormat[opengis.gml.ConventionalUnitType] = new DefaultOpengisgml_ConventionalUnitTypeFormat {}
  implicit lazy val Opengisgml_DerivationUnitTermTypeFormat: scalaxb.XMLFormat[opengis.gml.DerivationUnitTermType] = new DefaultOpengisgml_DerivationUnitTermTypeFormat {}
  implicit lazy val Opengisgml_ConversionToPreferredUnitTypeFormat: scalaxb.XMLFormat[opengis.gml.ConversionToPreferredUnitType] = new DefaultOpengisgml_ConversionToPreferredUnitTypeFormat {}
  implicit lazy val Opengisgml_FormulaTypeFormat: scalaxb.XMLFormat[opengis.gml.FormulaType] = new DefaultOpengisgml_FormulaTypeFormat {}
  implicit lazy val Opengisgml_CompositeValueTypableFormat: scalaxb.XMLFormat[opengis.gml.CompositeValueTypable] = new DefaultOpengisgml_CompositeValueTypableFormat {}
  implicit lazy val Opengisgml_CompositeValueTypeFormat: scalaxb.XMLFormat[opengis.gml.CompositeValueType] = new DefaultOpengisgml_CompositeValueTypeFormat {}
  implicit lazy val Opengisgml_ValueArrayTypeFormat: scalaxb.XMLFormat[opengis.gml.ValueArrayType] = new DefaultOpengisgml_ValueArrayTypeFormat {}
  implicit lazy val Opengisgml_QuantityExtentTypeFormat: scalaxb.XMLFormat[opengis.gml.QuantityExtentType] = new DefaultOpengisgml_QuantityExtentTypeFormat {}
  implicit lazy val Opengisgml_CategoryExtentTypeFormat: scalaxb.XMLFormat[opengis.gml.CategoryExtentType] = new DefaultOpengisgml_CategoryExtentTypeFormat {}
  implicit lazy val Opengisgml_ValuePropertyTypableFormat: scalaxb.XMLFormat[opengis.gml.ValuePropertyTypable] = new DefaultOpengisgml_ValuePropertyTypableFormat {}
  implicit lazy val Opengisgml_ValuePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.ValuePropertyType] = new DefaultOpengisgml_ValuePropertyTypeFormat {}
  implicit lazy val Opengisgml_ValuePropertyTypableSequence1Format: scalaxb.XMLFormat[opengis.gml.ValuePropertyTypableSequence1] = new DefaultOpengisgml_ValuePropertyTypableSequence1Format {}
  implicit lazy val Opengisgml_ValueArrayPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.ValueArrayPropertyType] = new DefaultOpengisgml_ValueArrayPropertyTypeFormat {}
  implicit lazy val Opengisgml_ScalarValuePropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.ScalarValuePropertyType] = new DefaultOpengisgml_ScalarValuePropertyTypeFormat {}
  implicit lazy val Opengisgml_ScalarValuePropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.ScalarValuePropertyTypeSequence1] = new DefaultOpengisgml_ScalarValuePropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_BooleanPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.BooleanPropertyType] = new DefaultOpengisgml_BooleanPropertyTypeFormat {}
  implicit lazy val Opengisgml_BooleanPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.BooleanPropertyTypeSequence1] = new DefaultOpengisgml_BooleanPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_CategoryPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.CategoryPropertyType] = new DefaultOpengisgml_CategoryPropertyTypeFormat {}
  implicit lazy val Opengisgml_CategoryPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.CategoryPropertyTypeSequence1] = new DefaultOpengisgml_CategoryPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_QuantityPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.QuantityPropertyType] = new DefaultOpengisgml_QuantityPropertyTypeFormat {}
  implicit lazy val Opengisgml_QuantityPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.QuantityPropertyTypeSequence1] = new DefaultOpengisgml_QuantityPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_CountPropertyTypeFormat: scalaxb.XMLFormat[opengis.gml.CountPropertyType] = new DefaultOpengisgml_CountPropertyTypeFormat {}
  implicit lazy val Opengisgml_CountPropertyTypeSequence1Format: scalaxb.XMLFormat[opengis.gml.CountPropertyTypeSequence1] = new DefaultOpengisgml_CountPropertyTypeSequence1Format {}
  implicit lazy val Opengisgml_ReferenceSystemFormat: scalaxb.AttributeGroupFormat[opengis.gml.ReferenceSystem] = new DefaultOpengisgml_ReferenceSystemFormat {}
  implicit lazy val Opengisgmlsmil_AnimateTypeFormat: scalaxb.XMLFormat[opengis.gml.smil.AnimateType] = new DefaultOpengisgmlsmil_AnimateTypeFormat {}
  implicit lazy val Opengisgmlsmil_AnimateMotionTypeFormat: scalaxb.XMLFormat[opengis.gml.smil.AnimateMotionType] = new DefaultOpengisgmlsmil_AnimateMotionTypeFormat {}
  implicit lazy val Opengisgmlsmil_AnimateColorTypeFormat: scalaxb.XMLFormat[opengis.gml.smil.AnimateColorType] = new DefaultOpengisgmlsmil_AnimateColorTypeFormat {}
  implicit lazy val Opengisgmlsmil_SetTypeFormat: scalaxb.XMLFormat[opengis.gml.smil.SetType] = new DefaultOpengisgmlsmil_SetTypeFormat {}
  implicit lazy val Opengisgmlsmil_BasicTimingAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.BasicTimingAttrs] = new DefaultOpengisgmlsmil_BasicTimingAttrsFormat {}
  implicit lazy val Opengisgmlsmil_CoreAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.CoreAttrs] = new DefaultOpengisgmlsmil_CoreAttrsFormat {}
  implicit lazy val Opengisgmlsmil_TimingAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.TimingAttrs] = new DefaultOpengisgmlsmil_TimingAttrsFormat {}
  implicit lazy val Opengisgmlsmil_AnimatePrototypableFormat: scalaxb.XMLFormat[opengis.gml.smil.AnimatePrototypable] = new DefaultOpengisgmlsmil_AnimatePrototypableFormat {}
  implicit lazy val Opengisgmlsmil_AnimatePrototypeFormat: scalaxb.XMLFormat[opengis.gml.smil.AnimatePrototype] = new DefaultOpengisgmlsmil_AnimatePrototypeFormat {}
  implicit lazy val Opengisgmlsmil_AttributeTypeFormat: scalaxb.XMLFormat[opengis.gml.smil.AttributeType] = new DefaultOpengisgmlsmil_AttributeTypeFormat {}
  implicit lazy val Opengisgmlsmil_AdditiveFormat: scalaxb.XMLFormat[opengis.gml.smil.Additive] = new DefaultOpengisgmlsmil_AdditiveFormat {}
  implicit lazy val Opengisgmlsmil_AccumulateFormat: scalaxb.XMLFormat[opengis.gml.smil.Accumulate] = new DefaultOpengisgmlsmil_AccumulateFormat {}
  implicit lazy val Opengisgmlsmil_CalcModeFormat: scalaxb.XMLFormat[opengis.gml.smil.CalcMode] = new DefaultOpengisgmlsmil_CalcModeFormat {}
  implicit lazy val Opengisgmlsmil_AnimateMotionPrototypableFormat: scalaxb.XMLFormat[opengis.gml.smil.AnimateMotionPrototypable] = new DefaultOpengisgmlsmil_AnimateMotionPrototypableFormat {}
  implicit lazy val Opengisgmlsmil_AnimateMotionPrototypeFormat: scalaxb.XMLFormat[opengis.gml.smil.AnimateMotionPrototype] = new DefaultOpengisgmlsmil_AnimateMotionPrototypeFormat {}
  implicit lazy val Opengisgmlsmil_AnimateColorPrototypableFormat: scalaxb.XMLFormat[opengis.gml.smil.AnimateColorPrototypable] = new DefaultOpengisgmlsmil_AnimateColorPrototypableFormat {}
  implicit lazy val Opengisgmlsmil_AnimateColorPrototypeFormat: scalaxb.XMLFormat[opengis.gml.smil.AnimateColorPrototype] = new DefaultOpengisgmlsmil_AnimateColorPrototypeFormat {}
  implicit lazy val Opengisgmlsmil_SetPrototypableFormat: scalaxb.XMLFormat[opengis.gml.smil.SetPrototypable] = new DefaultOpengisgmlsmil_SetPrototypableFormat {}
  implicit lazy val Opengisgmlsmil_SetPrototypeFormat: scalaxb.XMLFormat[opengis.gml.smil.SetPrototype] = new DefaultOpengisgmlsmil_SetPrototypeFormat {}
  implicit lazy val Opengisgmlsmil_SyncBehaviorTypeFormat: scalaxb.XMLFormat[opengis.gml.smil.SyncBehaviorType] = new DefaultOpengisgmlsmil_SyncBehaviorTypeFormat {}
  implicit lazy val Opengisgmlsmil_SyncBehaviorDefaultTypeFormat: scalaxb.XMLFormat[opengis.gml.smil.SyncBehaviorDefaultType] = new DefaultOpengisgmlsmil_SyncBehaviorDefaultTypeFormat {}
  implicit lazy val Opengisgmlsmil_RestartTimingTypeFormat: scalaxb.XMLFormat[opengis.gml.smil.RestartTimingType] = new DefaultOpengisgmlsmil_RestartTimingTypeFormat {}
  implicit lazy val Opengisgmlsmil_RestartDefaultTypeFormat: scalaxb.XMLFormat[opengis.gml.smil.RestartDefaultType] = new DefaultOpengisgmlsmil_RestartDefaultTypeFormat {}
  implicit lazy val Opengisgmlsmil_FillTimingAttrsTypeFormat: scalaxb.XMLFormat[opengis.gml.smil.FillTimingAttrsType] = new DefaultOpengisgmlsmil_FillTimingAttrsTypeFormat {}
  implicit lazy val Opengisgmlsmil_FillDefaultTypeFormat: scalaxb.XMLFormat[opengis.gml.smil.FillDefaultType] = new DefaultOpengisgmlsmil_FillDefaultTypeFormat {}
  implicit lazy val Opengisgmlsmil_MinMaxTimingAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.MinMaxTimingAttrs] = new DefaultOpengisgmlsmil_MinMaxTimingAttrsFormat {}
  implicit lazy val Opengisgmlsmil_RepeatTimingAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.RepeatTimingAttrs] = new DefaultOpengisgmlsmil_RepeatTimingAttrsFormat {}
  implicit lazy val Opengisgmlsmil_BeginEndTimingAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.BeginEndTimingAttrs] = new DefaultOpengisgmlsmil_BeginEndTimingAttrsFormat {}
  implicit lazy val Opengisgmlsmil_FillTimingAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.FillTimingAttrs] = new DefaultOpengisgmlsmil_FillTimingAttrsFormat {}
  implicit lazy val Opengisgmlsmil_RestartTimingAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.RestartTimingAttrs] = new DefaultOpengisgmlsmil_RestartTimingAttrsFormat {}
  implicit lazy val Opengisgmlsmil_SyncBehaviorAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.SyncBehaviorAttrs] = new DefaultOpengisgmlsmil_SyncBehaviorAttrsFormat {}
  implicit lazy val Opengisgmlsmil_AnimTargetAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.AnimTargetAttrs] = new DefaultOpengisgmlsmil_AnimTargetAttrsFormat {}
  implicit lazy val Opengisgmlsmil_AnimValuesAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.AnimValuesAttrs] = new DefaultOpengisgmlsmil_AnimValuesAttrsFormat {}
  implicit lazy val Opengisgmlsmil_AnimNamedTargetAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.AnimNamedTargetAttrs] = new DefaultOpengisgmlsmil_AnimNamedTargetAttrsFormat {}
  implicit lazy val Opengisgmlsmil_SkipContentAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.SkipContentAttrs] = new DefaultOpengisgmlsmil_SkipContentAttrsFormat {}
  implicit lazy val Opengisgmlsmil_StructureModuleAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.StructureModuleAttrs] = new DefaultOpengisgmlsmil_StructureModuleAttrsFormat {}
  implicit lazy val Opengisgmlsmil_AlternateContentAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.AlternateContentAttrs] = new DefaultOpengisgmlsmil_AlternateContentAttrsFormat {}
  implicit lazy val Opengisgmlsmil_AnimAddAccumAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.AnimAddAccumAttrs] = new DefaultOpengisgmlsmil_AnimAddAccumAttrsFormat {}
  implicit lazy val Opengisgmlsmil_AnimSetValuesAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.AnimSetValuesAttrs] = new DefaultOpengisgmlsmil_AnimSetValuesAttrsFormat {}
  implicit lazy val Opengisgmlsmil_AnimModeAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.AnimModeAttrs] = new DefaultOpengisgmlsmil_AnimModeAttrsFormat {}
  implicit lazy val Opengisgmlsmil_SyncBehaviorDefaultAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.SyncBehaviorDefaultAttrs] = new DefaultOpengisgmlsmil_SyncBehaviorDefaultAttrsFormat {}
  implicit lazy val Opengisgmlsmil_RestartDefaultAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.RestartDefaultAttrs] = new DefaultOpengisgmlsmil_RestartDefaultAttrsFormat {}
  implicit lazy val Opengisgmlsmil_FillDefaultAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.FillDefaultAttrs] = new DefaultOpengisgmlsmil_FillDefaultAttrsFormat {}
  implicit lazy val Opengisgmlsmil_DurTimingAttrsFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.DurTimingAttrs] = new DefaultOpengisgmlsmil_DurTimingAttrsFormat {}
  implicit lazy val Opengisgmlsmil_DeprecatedRepeatTimingFormat: scalaxb.AttributeGroupFormat[opengis.gml.smil.DeprecatedRepeatTiming] = new DefaultOpengisgmlsmil_DeprecatedRepeatTimingFormat {}
  implicit lazy val Opengissldows_KeywordsTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.KeywordsType] = new DefaultOpengissldows_KeywordsTypeFormat {}
  implicit lazy val Opengissldows_CodeTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.CodeType] = new DefaultOpengissldows_CodeTypeFormat {}
  implicit lazy val Opengissldows_ResponsiblePartyTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.ResponsiblePartyType] = new DefaultOpengissldows_ResponsiblePartyTypeFormat {}
  implicit lazy val Opengissldows_ResponsiblePartySubsetTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.ResponsiblePartySubsetType] = new DefaultOpengissldows_ResponsiblePartySubsetTypeFormat {}
  implicit lazy val Opengissldows_ContactTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.ContactType] = new DefaultOpengissldows_ContactTypeFormat {}
  implicit lazy val Opengissldows_OnlineResourceTypableFormat: scalaxb.XMLFormat[opengis.sld.ows.OnlineResourceTypable] = new DefaultOpengissldows_OnlineResourceTypableFormat {}
  implicit lazy val Opengissldows_OnlineResourceTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.OnlineResourceType] = new DefaultOpengissldows_OnlineResourceTypeFormat {}
  implicit lazy val Opengissldows_TelephoneTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.TelephoneType] = new DefaultOpengissldows_TelephoneTypeFormat {}
  implicit lazy val Opengissldows_AddressTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.AddressType] = new DefaultOpengissldows_AddressTypeFormat {}
  implicit lazy val Opengissldows_MetadataTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.MetadataType] = new DefaultOpengissldows_MetadataTypeFormat {}
  implicit lazy val Opengissldows_BoundingBoxTypableFormat: scalaxb.XMLFormat[opengis.sld.ows.BoundingBoxTypable] = new DefaultOpengissldows_BoundingBoxTypableFormat {}
  implicit lazy val Opengissldows_BoundingBoxTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.BoundingBoxType] = new DefaultOpengissldows_BoundingBoxTypeFormat {}
  implicit lazy val Opengissldows_WGS84BoundingBoxTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.WGS84BoundingBoxType] = new DefaultOpengissldows_WGS84BoundingBoxTypeFormat {}
  implicit lazy val Opengissldows_DescriptionTypableFormat: scalaxb.XMLFormat[opengis.sld.ows.DescriptionTypable] = new DefaultOpengissldows_DescriptionTypableFormat {}
  implicit lazy val Opengissldows_DescriptionTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.DescriptionType] = new DefaultOpengissldows_DescriptionTypeFormat {}
  implicit lazy val Opengissldows_IdentificationTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.IdentificationType] = new DefaultOpengissldows_IdentificationTypeFormat {}
  implicit lazy val Opengissldows_ExceptionReportFormat: scalaxb.XMLFormat[opengis.sld.ows.ExceptionReport] = new DefaultOpengissldows_ExceptionReportFormat {}
  implicit lazy val Opengissldows_ExceptionTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.ExceptionType] = new DefaultOpengissldows_ExceptionTypeFormat {}
  implicit lazy val Opengissldows_CapabilitiesBaseTypableFormat: scalaxb.XMLFormat[opengis.sld.ows.CapabilitiesBaseTypable] = new DefaultOpengissldows_CapabilitiesBaseTypableFormat {}
  implicit lazy val Opengissldows_CapabilitiesBaseTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.CapabilitiesBaseType] = new DefaultOpengissldows_CapabilitiesBaseTypeFormat {}
  implicit lazy val Opengissldows_GetCapabilitiesTypableFormat: scalaxb.XMLFormat[opengis.sld.ows.GetCapabilitiesTypable] = new DefaultOpengissldows_GetCapabilitiesTypableFormat {}
  implicit lazy val Opengissldows_GetCapabilitiesTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.GetCapabilitiesType] = new DefaultOpengissldows_GetCapabilitiesTypeFormat {}
  implicit lazy val Opengissldows_AcceptVersionsTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.AcceptVersionsType] = new DefaultOpengissldows_AcceptVersionsTypeFormat {}
  implicit lazy val Opengissldows_SectionsTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.SectionsType] = new DefaultOpengissldows_SectionsTypeFormat {}
  implicit lazy val Opengissldows_AcceptFormatsTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.AcceptFormatsType] = new DefaultOpengissldows_AcceptFormatsTypeFormat {}
  implicit lazy val Opengissldows_OperationsMetadataFormat: scalaxb.XMLFormat[opengis.sld.ows.OperationsMetadata] = new DefaultOpengissldows_OperationsMetadataFormat {}
  implicit lazy val Opengissldows_OperationFormat: scalaxb.XMLFormat[opengis.sld.ows.Operation] = new DefaultOpengissldows_OperationFormat {}
  implicit lazy val Opengissldows_DCPFormat: scalaxb.XMLFormat[opengis.sld.ows.DCP] = new DefaultOpengissldows_DCPFormat {}
  implicit lazy val Opengissldows_HTTPFormat: scalaxb.XMLFormat[opengis.sld.ows.HTTP] = new DefaultOpengissldows_HTTPFormat {}
  implicit lazy val Opengissldows_RequestMethodTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.RequestMethodType] = new DefaultOpengissldows_RequestMethodTypeFormat {}
  implicit lazy val Opengissldows_DomainTypeFormat: scalaxb.XMLFormat[opengis.sld.ows.DomainType] = new DefaultOpengissldows_DomainTypeFormat {}
  implicit lazy val Opengissldows_ServiceIdentificationFormat: scalaxb.XMLFormat[opengis.sld.ows.ServiceIdentification] = new DefaultOpengissldows_ServiceIdentificationFormat {}
  implicit lazy val Opengissldows_ServiceProviderFormat: scalaxb.XMLFormat[opengis.sld.ows.ServiceProvider] = new DefaultOpengissldows_ServiceProviderFormat {}
  implicit lazy val Opengisows_LanguageStringTypeFormat: scalaxb.XMLFormat[opengis.ows.LanguageStringType] = new DefaultOpengisows_LanguageStringTypeFormat {}
  implicit lazy val Opengisows_KeywordsTypeFormat: scalaxb.XMLFormat[opengis.ows.KeywordsType] = new DefaultOpengisows_KeywordsTypeFormat {}
  implicit lazy val Opengisows_CodeTypableFormat: scalaxb.XMLFormat[opengis.ows.CodeTypable] = new DefaultOpengisows_CodeTypableFormat {}
  implicit lazy val Opengisows_CodeTypeFormat: scalaxb.XMLFormat[opengis.ows.CodeType] = new DefaultOpengisows_CodeTypeFormat {}
  implicit lazy val Opengisows_ResponsiblePartyTypeFormat: scalaxb.XMLFormat[opengis.ows.ResponsiblePartyType] = new DefaultOpengisows_ResponsiblePartyTypeFormat {}
  implicit lazy val Opengisows_ResponsiblePartySubsetTypeFormat: scalaxb.XMLFormat[opengis.ows.ResponsiblePartySubsetType] = new DefaultOpengisows_ResponsiblePartySubsetTypeFormat {}
  implicit lazy val Opengisows_ContactTypeFormat: scalaxb.XMLFormat[opengis.ows.ContactType] = new DefaultOpengisows_ContactTypeFormat {}
  implicit lazy val Opengisows_OnlineResourceTypableFormat: scalaxb.XMLFormat[opengis.ows.OnlineResourceTypable] = new DefaultOpengisows_OnlineResourceTypableFormat {}
  implicit lazy val Opengisows_OnlineResourceTypeFormat: scalaxb.XMLFormat[opengis.ows.OnlineResourceType] = new DefaultOpengisows_OnlineResourceTypeFormat {}
  implicit lazy val Opengisows_TelephoneTypeFormat: scalaxb.XMLFormat[opengis.ows.TelephoneType] = new DefaultOpengisows_TelephoneTypeFormat {}
  implicit lazy val Opengisows_AddressTypeFormat: scalaxb.XMLFormat[opengis.ows.AddressType] = new DefaultOpengisows_AddressTypeFormat {}
  implicit lazy val Opengisows_MetadataTypeFormat: scalaxb.XMLFormat[opengis.ows.MetadataType] = new DefaultOpengisows_MetadataTypeFormat {}
  implicit lazy val Opengisows_BoundingBoxTypableFormat: scalaxb.XMLFormat[opengis.ows.BoundingBoxTypable] = new DefaultOpengisows_BoundingBoxTypableFormat {}
  implicit lazy val Opengisows_BoundingBoxTypeFormat: scalaxb.XMLFormat[opengis.ows.BoundingBoxType] = new DefaultOpengisows_BoundingBoxTypeFormat {}
  implicit lazy val Opengisows_WGS84BoundingBoxTypeFormat: scalaxb.XMLFormat[opengis.ows.WGS84BoundingBoxType] = new DefaultOpengisows_WGS84BoundingBoxTypeFormat {}
  implicit lazy val Opengisows_ContentsBaseTypableFormat: scalaxb.XMLFormat[opengis.ows.ContentsBaseTypable] = new DefaultOpengisows_ContentsBaseTypableFormat {}
  implicit lazy val Opengisows_ContentsBaseTypeFormat: scalaxb.XMLFormat[opengis.ows.ContentsBaseType] = new DefaultOpengisows_ContentsBaseTypeFormat {}
  implicit lazy val Opengisows_DatasetDescriptionSummaryBaseTypableFormat: scalaxb.XMLFormat[opengis.ows.DatasetDescriptionSummaryBaseTypable] = new DefaultOpengisows_DatasetDescriptionSummaryBaseTypableFormat {}
  implicit lazy val Opengisows_DatasetDescriptionSummaryBaseTypeFormat: scalaxb.XMLFormat[opengis.ows.DatasetDescriptionSummaryBaseType] = new DefaultOpengisows_DatasetDescriptionSummaryBaseTypeFormat {}
  implicit lazy val Opengisows_DescriptionTypableFormat: scalaxb.XMLFormat[opengis.ows.DescriptionTypable] = new DefaultOpengisows_DescriptionTypableFormat {}
  implicit lazy val Opengisows_DescriptionTypeFormat: scalaxb.XMLFormat[opengis.ows.DescriptionType] = new DefaultOpengisows_DescriptionTypeFormat {}
  implicit lazy val Opengisows_BasicIdentificationTypableFormat: scalaxb.XMLFormat[opengis.ows.BasicIdentificationTypable] = new DefaultOpengisows_BasicIdentificationTypableFormat {}
  implicit lazy val Opengisows_BasicIdentificationTypeFormat: scalaxb.XMLFormat[opengis.ows.BasicIdentificationType] = new DefaultOpengisows_BasicIdentificationTypeFormat {}
  implicit lazy val Opengisows_IdentificationTypeFormat: scalaxb.XMLFormat[opengis.ows.IdentificationType] = new DefaultOpengisows_IdentificationTypeFormat {}
  implicit lazy val Opengisows_DomainTypeFormat: scalaxb.XMLFormat[opengis.ows.DomainType] = new DefaultOpengisows_DomainTypeFormat {}
  implicit lazy val Opengisows_UnNamedDomainTypableFormat: scalaxb.XMLFormat[opengis.ows.UnNamedDomainTypable] = new DefaultOpengisows_UnNamedDomainTypableFormat {}
  implicit lazy val Opengisows_UnNamedDomainTypeFormat: scalaxb.XMLFormat[opengis.ows.UnNamedDomainType] = new DefaultOpengisows_UnNamedDomainTypeFormat {}
  implicit lazy val Opengisows_AnyValueFormat: scalaxb.XMLFormat[opengis.ows.AnyValue] = new DefaultOpengisows_AnyValueFormat {}
  implicit lazy val Opengisows_NoValuesFormat: scalaxb.XMLFormat[opengis.ows.NoValues] = new DefaultOpengisows_NoValuesFormat {}
  implicit lazy val Opengisows_ValuesReferenceFormat: scalaxb.XMLFormat[opengis.ows.ValuesReference] = new DefaultOpengisows_ValuesReferenceFormat {}
  implicit lazy val Opengisows_AllowedValuesFormat: scalaxb.XMLFormat[opengis.ows.AllowedValues] = new DefaultOpengisows_AllowedValuesFormat {}
  implicit lazy val Opengisows_ValueTypeFormat: scalaxb.XMLFormat[opengis.ows.ValueType] = new DefaultOpengisows_ValueTypeFormat {}
  implicit lazy val Opengisows_RangeTypeFormat: scalaxb.XMLFormat[opengis.ows.RangeType] = new DefaultOpengisows_RangeTypeFormat {}
  implicit lazy val Opengisows_RangeClosureFormat: scalaxb.XMLFormat[opengis.ows.RangeClosure] = new DefaultOpengisows_RangeClosureFormat {}
  implicit lazy val Opengisows_DomainMetadataTypeFormat: scalaxb.XMLFormat[opengis.ows.DomainMetadataType] = new DefaultOpengisows_DomainMetadataTypeFormat {}
  implicit lazy val Opengisows_ExceptionReportFormat: scalaxb.XMLFormat[opengis.ows.ExceptionReport] = new DefaultOpengisows_ExceptionReportFormat {}
  implicit lazy val Opengisows_ExceptionTypeFormat: scalaxb.XMLFormat[opengis.ows.ExceptionType] = new DefaultOpengisows_ExceptionTypeFormat {}
  implicit lazy val Opengisows_CapabilitiesBaseTypableFormat: scalaxb.XMLFormat[opengis.ows.CapabilitiesBaseTypable] = new DefaultOpengisows_CapabilitiesBaseTypableFormat {}
  implicit lazy val Opengisows_CapabilitiesBaseTypeFormat: scalaxb.XMLFormat[opengis.ows.CapabilitiesBaseType] = new DefaultOpengisows_CapabilitiesBaseTypeFormat {}
  implicit lazy val Opengisows_GetCapabilitiesTypableFormat: scalaxb.XMLFormat[opengis.ows.GetCapabilitiesTypable] = new DefaultOpengisows_GetCapabilitiesTypableFormat {}
  implicit lazy val Opengisows_GetCapabilitiesTypeFormat: scalaxb.XMLFormat[opengis.ows.GetCapabilitiesType] = new DefaultOpengisows_GetCapabilitiesTypeFormat {}
  implicit lazy val Opengisows_AcceptVersionsTypeFormat: scalaxb.XMLFormat[opengis.ows.AcceptVersionsType] = new DefaultOpengisows_AcceptVersionsTypeFormat {}
  implicit lazy val Opengisows_SectionsTypeFormat: scalaxb.XMLFormat[opengis.ows.SectionsType] = new DefaultOpengisows_SectionsTypeFormat {}
  implicit lazy val Opengisows_AcceptFormatsTypeFormat: scalaxb.XMLFormat[opengis.ows.AcceptFormatsType] = new DefaultOpengisows_AcceptFormatsTypeFormat {}
  implicit lazy val Opengisows_GetResourceByIdTypeFormat: scalaxb.XMLFormat[opengis.ows.GetResourceByIdType] = new DefaultOpengisows_GetResourceByIdTypeFormat {}
  implicit lazy val Opengisows_ServiceReferenceTypeFormat: scalaxb.XMLFormat[opengis.ows.ServiceReferenceType] = new DefaultOpengisows_ServiceReferenceTypeFormat {}
  implicit lazy val Opengisows_AbstractReferenceBaseTypableFormat: scalaxb.XMLFormat[opengis.ows.AbstractReferenceBaseTypable] = new DefaultOpengisows_AbstractReferenceBaseTypableFormat {}
  implicit lazy val Opengisows_AbstractReferenceBaseTypeFormat: scalaxb.XMLFormat[opengis.ows.AbstractReferenceBaseType] = new DefaultOpengisows_AbstractReferenceBaseTypeFormat {}
  implicit lazy val Opengisows_ReferenceTypableFormat: scalaxb.XMLFormat[opengis.ows.ReferenceTypable] = new DefaultOpengisows_ReferenceTypableFormat {}
  implicit lazy val Opengisows_ReferenceTypeFormat: scalaxb.XMLFormat[opengis.ows.ReferenceType] = new DefaultOpengisows_ReferenceTypeFormat {}
  implicit lazy val Opengisows_ReferenceGroupTypeFormat: scalaxb.XMLFormat[opengis.ows.ReferenceGroupType] = new DefaultOpengisows_ReferenceGroupTypeFormat {}
  implicit lazy val Opengisows_ManifestTypeFormat: scalaxb.XMLFormat[opengis.ows.ManifestType] = new DefaultOpengisows_ManifestTypeFormat {}
  implicit lazy val Opengisows_OperationsMetadataFormat: scalaxb.XMLFormat[opengis.ows.OperationsMetadata] = new DefaultOpengisows_OperationsMetadataFormat {}
  implicit lazy val Opengisows_OperationFormat: scalaxb.XMLFormat[opengis.ows.Operation] = new DefaultOpengisows_OperationFormat {}
  implicit lazy val Opengisows_DCPFormat: scalaxb.XMLFormat[opengis.ows.DCP] = new DefaultOpengisows_DCPFormat {}
  implicit lazy val Opengisows_HTTPFormat: scalaxb.XMLFormat[opengis.ows.HTTP] = new DefaultOpengisows_HTTPFormat {}
  implicit lazy val Opengisows_RequestMethodTypeFormat: scalaxb.XMLFormat[opengis.ows.RequestMethodType] = new DefaultOpengisows_RequestMethodTypeFormat {}
  implicit lazy val Opengisows_ServiceIdentificationFormat: scalaxb.XMLFormat[opengis.ows.ServiceIdentification] = new DefaultOpengisows_ServiceIdentificationFormat {}
  implicit lazy val Opengisows_ServiceProviderFormat: scalaxb.XMLFormat[opengis.ows.ServiceProvider] = new DefaultOpengisows_ServiceProviderFormat {}
  implicit lazy val Opengisse_FeatureTypeStyleTypeFormat: scalaxb.XMLFormat[opengis.se.FeatureTypeStyleType] = new DefaultOpengisse_FeatureTypeStyleTypeFormat {}
  implicit lazy val Opengisse_CoverageStyleTypeFormat: scalaxb.XMLFormat[opengis.se.CoverageStyleType] = new DefaultOpengisse_CoverageStyleTypeFormat {}
  implicit lazy val Opengisse_RuleTypeFormat: scalaxb.XMLFormat[opengis.se.RuleType] = new DefaultOpengisse_RuleTypeFormat {}
  implicit lazy val Opengisse_LegendGraphicTypeFormat: scalaxb.XMLFormat[opengis.se.LegendGraphicType] = new DefaultOpengisse_LegendGraphicTypeFormat {}
  implicit lazy val Opengisse_ElseFilterTypeFormat: scalaxb.XMLFormat[opengis.se.ElseFilterType] = new DefaultOpengisse_ElseFilterTypeFormat {}
  implicit lazy val Opengisse_SymbolizerTypeFormat: scalaxb.XMLFormat[opengis.se.SymbolizerType] = new DefaultOpengisse_SymbolizerTypeFormat {}
  implicit lazy val Opengisse_BaseSymbolizerTypeFormat: scalaxb.XMLFormat[opengis.se.BaseSymbolizerType] = new DefaultOpengisse_BaseSymbolizerTypeFormat {}
  implicit lazy val Opengisse_LineSymbolizerTypeFormat: scalaxb.XMLFormat[opengis.se.LineSymbolizerType] = new DefaultOpengisse_LineSymbolizerTypeFormat {}
  implicit lazy val Opengisse_GeometryTypeFormat: scalaxb.XMLFormat[opengis.se.GeometryType] = new DefaultOpengisse_GeometryTypeFormat {}
  implicit lazy val Opengisse_StrokeTypeFormat: scalaxb.XMLFormat[opengis.se.StrokeType] = new DefaultOpengisse_StrokeTypeFormat {}
  implicit lazy val Opengisse_SvgParameterTypeFormat: scalaxb.XMLFormat[opengis.se.SvgParameterType] = new DefaultOpengisse_SvgParameterTypeFormat {}
  implicit lazy val Opengisse_ParameterValueTypableFormat: scalaxb.XMLFormat[opengis.se.ParameterValueTypable] = new DefaultOpengisse_ParameterValueTypableFormat {}
  implicit lazy val Opengisse_ParameterValueTypeFormat: scalaxb.XMLFormat[opengis.se.ParameterValueType] = new DefaultOpengisse_ParameterValueTypeFormat {}
  implicit lazy val Opengisse_ParameterValueTypableSequence1Format: scalaxb.XMLFormat[opengis.se.ParameterValueTypableSequence1] = new DefaultOpengisse_ParameterValueTypableSequence1Format {}
  implicit lazy val Opengisse_GraphicFillTypeFormat: scalaxb.XMLFormat[opengis.se.GraphicFillType] = new DefaultOpengisse_GraphicFillTypeFormat {}
  implicit lazy val Opengisse_GraphicStrokeTypeFormat: scalaxb.XMLFormat[opengis.se.GraphicStrokeType] = new DefaultOpengisse_GraphicStrokeTypeFormat {}
  implicit lazy val Opengisse_PolygonSymbolizerTypeFormat: scalaxb.XMLFormat[opengis.se.PolygonSymbolizerType] = new DefaultOpengisse_PolygonSymbolizerTypeFormat {}
  implicit lazy val Opengisse_FillTypeFormat: scalaxb.XMLFormat[opengis.se.FillType] = new DefaultOpengisse_FillTypeFormat {}
  implicit lazy val Opengisse_PointSymbolizerTypeFormat: scalaxb.XMLFormat[opengis.se.PointSymbolizerType] = new DefaultOpengisse_PointSymbolizerTypeFormat {}
  implicit lazy val Opengisse_GraphicTypeFormat: scalaxb.XMLFormat[opengis.se.GraphicType] = new DefaultOpengisse_GraphicTypeFormat {}
  implicit lazy val Opengisse_ExternalGraphicTypeFormat: scalaxb.XMLFormat[opengis.se.ExternalGraphicType] = new DefaultOpengisse_ExternalGraphicTypeFormat {}
  implicit lazy val Opengisse_ColorReplacementTypeFormat: scalaxb.XMLFormat[opengis.se.ColorReplacementType] = new DefaultOpengisse_ColorReplacementTypeFormat {}
  implicit lazy val Opengisse_MarkTypeFormat: scalaxb.XMLFormat[opengis.se.MarkType] = new DefaultOpengisse_MarkTypeFormat {}
  implicit lazy val Opengisse_MarkTypeSequence1Format: scalaxb.XMLFormat[opengis.se.MarkTypeSequence1] = new DefaultOpengisse_MarkTypeSequence1Format {}
  implicit lazy val Opengisse_TextSymbolizerTypeFormat: scalaxb.XMLFormat[opengis.se.TextSymbolizerType] = new DefaultOpengisse_TextSymbolizerTypeFormat {}
  implicit lazy val Opengisse_FontTypeFormat: scalaxb.XMLFormat[opengis.se.FontType] = new DefaultOpengisse_FontTypeFormat {}
  implicit lazy val Opengisse_LabelPlacementTypeFormat: scalaxb.XMLFormat[opengis.se.LabelPlacementType] = new DefaultOpengisse_LabelPlacementTypeFormat {}
  implicit lazy val Opengisse_PointPlacementTypeFormat: scalaxb.XMLFormat[opengis.se.PointPlacementType] = new DefaultOpengisse_PointPlacementTypeFormat {}
  implicit lazy val Opengisse_AnchorPointTypeFormat: scalaxb.XMLFormat[opengis.se.AnchorPointType] = new DefaultOpengisse_AnchorPointTypeFormat {}
  implicit lazy val Opengisse_DisplacementTypeFormat: scalaxb.XMLFormat[opengis.se.DisplacementType] = new DefaultOpengisse_DisplacementTypeFormat {}
  implicit lazy val Opengisse_LinePlacementTypeFormat: scalaxb.XMLFormat[opengis.se.LinePlacementType] = new DefaultOpengisse_LinePlacementTypeFormat {}
  implicit lazy val Opengisse_HaloTypeFormat: scalaxb.XMLFormat[opengis.se.HaloType] = new DefaultOpengisse_HaloTypeFormat {}
  implicit lazy val Opengisse_RasterSymbolizerTypeFormat: scalaxb.XMLFormat[opengis.se.RasterSymbolizerType] = new DefaultOpengisse_RasterSymbolizerTypeFormat {}
  implicit lazy val Opengisse_ChannelSelectionTypeFormat: scalaxb.XMLFormat[opengis.se.ChannelSelectionType] = new DefaultOpengisse_ChannelSelectionTypeFormat {}
  implicit lazy val Opengisse_ChannelSelectionTypeSequence1Format: scalaxb.XMLFormat[opengis.se.ChannelSelectionTypeSequence1] = new DefaultOpengisse_ChannelSelectionTypeSequence1Format {}
  implicit lazy val Opengisse_SelectedChannelTypeFormat: scalaxb.XMLFormat[opengis.se.SelectedChannelType] = new DefaultOpengisse_SelectedChannelTypeFormat {}
  implicit lazy val Opengisse_OverlapBehaviorFormat: scalaxb.XMLFormat[opengis.se.OverlapBehavior] = new DefaultOpengisse_OverlapBehaviorFormat {}
  implicit lazy val Opengisse_ColorMapTypeFormat: scalaxb.XMLFormat[opengis.se.ColorMapType] = new DefaultOpengisse_ColorMapTypeFormat {}
  implicit lazy val Opengisse_ContrastEnhancementTypeFormat: scalaxb.XMLFormat[opengis.se.ContrastEnhancementType] = new DefaultOpengisse_ContrastEnhancementTypeFormat {}
  implicit lazy val Opengisse_NormalizeTypeFormat: scalaxb.XMLFormat[opengis.se.NormalizeType] = new DefaultOpengisse_NormalizeTypeFormat {}
  implicit lazy val Opengisse_HistogramTypeFormat: scalaxb.XMLFormat[opengis.se.HistogramType] = new DefaultOpengisse_HistogramTypeFormat {}
  implicit lazy val Opengisse_ShadedReliefTypeFormat: scalaxb.XMLFormat[opengis.se.ShadedReliefType] = new DefaultOpengisse_ShadedReliefTypeFormat {}
  implicit lazy val Opengisse_ImageOutlineTypeFormat: scalaxb.XMLFormat[opengis.se.ImageOutlineType] = new DefaultOpengisse_ImageOutlineTypeFormat {}
  implicit lazy val Opengisse_FunctionTypeFormat: scalaxb.XMLFormat[opengis.se.FunctionType] = new DefaultOpengisse_FunctionTypeFormat {}
  implicit lazy val Opengisse_FormatNumberTypeFormat: scalaxb.XMLFormat[opengis.se.FormatNumberType] = new DefaultOpengisse_FormatNumberTypeFormat {}
  implicit lazy val Opengisse_FormatDateTypeFormat: scalaxb.XMLFormat[opengis.se.FormatDateType] = new DefaultOpengisse_FormatDateTypeFormat {}
  implicit lazy val Opengisse_SubstringTypeFormat: scalaxb.XMLFormat[opengis.se.SubstringType] = new DefaultOpengisse_SubstringTypeFormat {}
  implicit lazy val Opengisse_ConcatenateTypeFormat: scalaxb.XMLFormat[opengis.se.ConcatenateType] = new DefaultOpengisse_ConcatenateTypeFormat {}
  implicit lazy val Opengisse_ChangeCaseTypeFormat: scalaxb.XMLFormat[opengis.se.ChangeCaseType] = new DefaultOpengisse_ChangeCaseTypeFormat {}
  implicit lazy val Opengisse_DirectionTypeFormat: scalaxb.XMLFormat[opengis.se.DirectionType] = new DefaultOpengisse_DirectionTypeFormat {}
  implicit lazy val Opengisse_TrimTypeFormat: scalaxb.XMLFormat[opengis.se.TrimType] = new DefaultOpengisse_TrimTypeFormat {}
  implicit lazy val Opengisse_StripOffPositionTypeFormat: scalaxb.XMLFormat[opengis.se.StripOffPositionType] = new DefaultOpengisse_StripOffPositionTypeFormat {}
  implicit lazy val Opengisse_StringPositionTypeFormat: scalaxb.XMLFormat[opengis.se.StringPositionType] = new DefaultOpengisse_StringPositionTypeFormat {}
  implicit lazy val Opengisse_SearchDirectionTypeFormat: scalaxb.XMLFormat[opengis.se.SearchDirectionType] = new DefaultOpengisse_SearchDirectionTypeFormat {}
  implicit lazy val Opengisse_StringLengthTypeFormat: scalaxb.XMLFormat[opengis.se.StringLengthType] = new DefaultOpengisse_StringLengthTypeFormat {}
  implicit lazy val Opengisse_CategorizeTypeFormat: scalaxb.XMLFormat[opengis.se.CategorizeType] = new DefaultOpengisse_CategorizeTypeFormat {}
  implicit lazy val Opengisse_CategorizeTypeSequence1Format: scalaxb.XMLFormat[opengis.se.CategorizeTypeSequence1] = new DefaultOpengisse_CategorizeTypeSequence1Format {}
  implicit lazy val Opengisse_ThreshholdsBelongToTypeFormat: scalaxb.XMLFormat[opengis.se.ThreshholdsBelongToType] = new DefaultOpengisse_ThreshholdsBelongToTypeFormat {}
  implicit lazy val Opengisse_InterpolateTypeFormat: scalaxb.XMLFormat[opengis.se.InterpolateType] = new DefaultOpengisse_InterpolateTypeFormat {}
  implicit lazy val Opengisse_InterpolationPointTypeFormat: scalaxb.XMLFormat[opengis.se.InterpolationPointType] = new DefaultOpengisse_InterpolationPointTypeFormat {}
  implicit lazy val Opengisse_ModeTypeFormat: scalaxb.XMLFormat[opengis.se.ModeType] = new DefaultOpengisse_ModeTypeFormat {}
  implicit lazy val Opengisse_MethodTypeFormat: scalaxb.XMLFormat[opengis.se.MethodType] = new DefaultOpengisse_MethodTypeFormat {}
  implicit lazy val Opengisse_RecodeTypeFormat: scalaxb.XMLFormat[opengis.se.RecodeType] = new DefaultOpengisse_RecodeTypeFormat {}
  implicit lazy val Opengisse_MapItemTypeFormat: scalaxb.XMLFormat[opengis.se.MapItemType] = new DefaultOpengisse_MapItemTypeFormat {}
  implicit lazy val Opengisse_VersionTypeFormat: scalaxb.XMLFormat[opengis.se.VersionType] = new DefaultOpengisse_VersionTypeFormat {}
  implicit lazy val Opengisse_DescriptionTypeFormat: scalaxb.XMLFormat[opengis.se.DescriptionType] = new DefaultOpengisse_DescriptionTypeFormat {}
  implicit lazy val Opengisse_OnlineResourceTypeFormat: scalaxb.XMLFormat[opengis.se.OnlineResourceType] = new DefaultOpengisse_OnlineResourceTypeFormat {}
  implicit lazy val Opengisse_EncodingFormat: scalaxb.XMLFormat[opengis.se.Encoding] = new DefaultOpengisse_EncodingFormat {}
  implicit lazy val Opengisse_InlineContentTypeFormat: scalaxb.XMLFormat[opengis.se.InlineContentType] = new DefaultOpengisse_InlineContentTypeFormat {}
  implicit lazy val Opengissld_DescribeLayerResponseTypeFormat: scalaxb.XMLFormat[opengis.sld.DescribeLayerResponseType] = new DefaultOpengissld_DescribeLayerResponseTypeFormat {}
  implicit lazy val Opengissld_LayerDescriptionTypeFormat: scalaxb.XMLFormat[opengis.sld.LayerDescriptionType] = new DefaultOpengissld_LayerDescriptionTypeFormat {}
  implicit lazy val Opengissld_TypeNameTypeFormat: scalaxb.XMLFormat[opengis.sld.TypeNameType] = new DefaultOpengissld_TypeNameTypeFormat {}
  implicit lazy val Opengissld_OwsTypeTypeFormat: scalaxb.XMLFormat[opengis.sld.OwsTypeType] = new DefaultOpengissld_OwsTypeTypeFormat {}
  implicit lazy val Opengissld_GetMapTypeFormat: scalaxb.XMLFormat[opengis.sld.GetMapType] = new DefaultOpengissld_GetMapTypeFormat {}
  implicit lazy val Opengissld_SizeFormat: scalaxb.XMLFormat[opengis.sld.Size] = new DefaultOpengissld_SizeFormat {}
  implicit lazy val Opengissld_OutputTypeFormat: scalaxb.XMLFormat[opengis.sld.OutputType] = new DefaultOpengissld_OutputTypeFormat {}
  implicit lazy val Opengissld_ExceptionsTypeFormat: scalaxb.XMLFormat[opengis.sld.ExceptionsType] = new DefaultOpengissld_ExceptionsTypeFormat {}
  implicit lazy val Opengissld_ElevationTypeFormat: scalaxb.XMLFormat[opengis.sld.ElevationType] = new DefaultOpengissld_ElevationTypeFormat {}
  implicit lazy val Opengissld_IntervalTypeFormat: scalaxb.XMLFormat[opengis.sld.IntervalType] = new DefaultOpengissld_IntervalTypeFormat {}
  implicit lazy val Opengissld_StyledLayerDescriptorFormat: scalaxb.XMLFormat[opengis.sld.StyledLayerDescriptor] = new DefaultOpengissld_StyledLayerDescriptorFormat {}
  implicit lazy val Opengissld_UseSLDLibraryFormat: scalaxb.XMLFormat[opengis.sld.UseSLDLibrary] = new DefaultOpengissld_UseSLDLibraryFormat {}
  implicit lazy val Opengissld_NamedLayerFormat: scalaxb.XMLFormat[opengis.sld.NamedLayer] = new DefaultOpengissld_NamedLayerFormat {}
  implicit lazy val Opengissld_NamedStyleFormat: scalaxb.XMLFormat[opengis.sld.NamedStyle] = new DefaultOpengissld_NamedStyleFormat {}
  implicit lazy val Opengissld_UserLayerFormat: scalaxb.XMLFormat[opengis.sld.UserLayer] = new DefaultOpengissld_UserLayerFormat {}
  implicit lazy val Opengissld_RemoteOWSFormat: scalaxb.XMLFormat[opengis.sld.RemoteOWS] = new DefaultOpengissld_RemoteOWSFormat {}
  implicit lazy val Opengissld_ServiceFormat: scalaxb.XMLFormat[opengis.sld.Service] = new DefaultOpengissld_ServiceFormat {}
  implicit lazy val Opengissld_InlineFeatureFormat: scalaxb.XMLFormat[opengis.sld.InlineFeature] = new DefaultOpengissld_InlineFeatureFormat {}
  implicit lazy val Opengissld_LayerFeatureConstraintsFormat: scalaxb.XMLFormat[opengis.sld.LayerFeatureConstraints] = new DefaultOpengissld_LayerFeatureConstraintsFormat {}
  implicit lazy val Opengissld_FeatureTypeConstraintFormat: scalaxb.XMLFormat[opengis.sld.FeatureTypeConstraint] = new DefaultOpengissld_FeatureTypeConstraintFormat {}
  implicit lazy val Opengissld_LayerCoverageConstraintsFormat: scalaxb.XMLFormat[opengis.sld.LayerCoverageConstraints] = new DefaultOpengissld_LayerCoverageConstraintsFormat {}
  implicit lazy val Opengissld_CoverageConstraintFormat: scalaxb.XMLFormat[opengis.sld.CoverageConstraint] = new DefaultOpengissld_CoverageConstraintFormat {}
  implicit lazy val Opengissld_CoverageExtentFormat: scalaxb.XMLFormat[opengis.sld.CoverageExtent] = new DefaultOpengissld_CoverageExtentFormat {}
  implicit lazy val Opengissld_RangeAxisFormat: scalaxb.XMLFormat[opengis.sld.RangeAxis] = new DefaultOpengissld_RangeAxisFormat {}
  implicit lazy val Opengissld_ExtentFormat: scalaxb.XMLFormat[opengis.sld.Extent] = new DefaultOpengissld_ExtentFormat {}
  implicit lazy val Opengissld_UserStyleFormat: scalaxb.XMLFormat[opengis.sld.UserStyle] = new DefaultOpengissld_UserStyleFormat {}
  implicit lazy val Opengissld_UserDefinedSymbolizationFormat: scalaxb.XMLFormat[opengis.sld.UserDefinedSymbolization] = new DefaultOpengissld_UserDefinedSymbolizationFormat {}
  implicit lazy val Opengiswcs_RequestBaseTypableFormat: scalaxb.XMLFormat[opengis.wcs.RequestBaseTypable] = new DefaultOpengiswcs_RequestBaseTypableFormat {}
  implicit lazy val Opengiswcs_RequestBaseTypeFormat: scalaxb.XMLFormat[opengis.wcs.RequestBaseType] = new DefaultOpengiswcs_RequestBaseTypeFormat {}
  implicit lazy val Opengiswcs_TimeSequenceTypeFormat: scalaxb.XMLFormat[opengis.wcs.TimeSequenceType] = new DefaultOpengiswcs_TimeSequenceTypeFormat {}
  implicit lazy val Opengiswcs_TimePeriodTypeFormat: scalaxb.XMLFormat[opengis.wcs.TimePeriodType] = new DefaultOpengiswcs_TimePeriodTypeFormat {}
  implicit lazy val Opengiswcs_ContentsFormat: scalaxb.XMLFormat[opengis.wcs.Contents] = new DefaultOpengiswcs_ContentsFormat {}
  implicit lazy val Opengiswcs_CoverageSummaryTypeFormat: scalaxb.XMLFormat[opengis.wcs.CoverageSummaryType] = new DefaultOpengiswcs_CoverageSummaryTypeFormat {}
  implicit lazy val Opengiswcs_CoverageSummaryTypeSequence1Format: scalaxb.XMLFormat[opengis.wcs.CoverageSummaryTypeSequence1] = new DefaultOpengiswcs_CoverageSummaryTypeSequence1Format {}
  implicit lazy val Opengiswcs_CoveragesTypeFormat: scalaxb.XMLFormat[opengis.wcs.CoveragesType] = new DefaultOpengiswcs_CoveragesTypeFormat {}
  implicit lazy val Opengiswcs_DescribeCoverageFormat: scalaxb.XMLFormat[opengis.wcs.DescribeCoverage] = new DefaultOpengiswcs_DescribeCoverageFormat {}
  implicit lazy val Opengiswcs_CoverageDescriptionsFormat: scalaxb.XMLFormat[opengis.wcs.CoverageDescriptions] = new DefaultOpengiswcs_CoverageDescriptionsFormat {}
  implicit lazy val Opengiswcs_CoverageDescriptionTypeFormat: scalaxb.XMLFormat[opengis.wcs.CoverageDescriptionType] = new DefaultOpengiswcs_CoverageDescriptionTypeFormat {}
  implicit lazy val Opengiswcs_CoverageDomainTypeFormat: scalaxb.XMLFormat[opengis.wcs.CoverageDomainType] = new DefaultOpengiswcs_CoverageDomainTypeFormat {}
  implicit lazy val Opengiswcs_SpatialDomainTypeFormat: scalaxb.XMLFormat[opengis.wcs.SpatialDomainType] = new DefaultOpengiswcs_SpatialDomainTypeFormat {}
  implicit lazy val Opengiswcs_ImageCRSRefTypeFormat: scalaxb.XMLFormat[opengis.wcs.ImageCRSRefType] = new DefaultOpengiswcs_ImageCRSRefTypeFormat {}
  implicit lazy val Opengiswcs_RangeTypeFormat: scalaxb.XMLFormat[opengis.wcs.RangeType] = new DefaultOpengiswcs_RangeTypeFormat {}
  implicit lazy val Opengiswcs_FieldTypeFormat: scalaxb.XMLFormat[opengis.wcs.FieldType] = new DefaultOpengiswcs_FieldTypeFormat {}
  implicit lazy val Opengiswcs_AxisTypeFormat: scalaxb.XMLFormat[opengis.wcs.AxisType] = new DefaultOpengiswcs_AxisTypeFormat {}
  implicit lazy val Opengiswcs_AvailableKeysFormat: scalaxb.XMLFormat[opengis.wcs.AvailableKeys] = new DefaultOpengiswcs_AvailableKeysFormat {}
  implicit lazy val Opengiswcs_GetCapabilitiesFormat: scalaxb.XMLFormat[opengis.wcs.GetCapabilities] = new DefaultOpengiswcs_GetCapabilitiesFormat {}
  implicit lazy val Opengiswcs_CapabilitiesFormat: scalaxb.XMLFormat[opengis.wcs.Capabilities] = new DefaultOpengiswcs_CapabilitiesFormat {}
  implicit lazy val Opengiswcs_GetCoverageFormat: scalaxb.XMLFormat[opengis.wcs.GetCoverage] = new DefaultOpengiswcs_GetCoverageFormat {}
  implicit lazy val Opengiswcs_OutputTypeFormat: scalaxb.XMLFormat[opengis.wcs.OutputType] = new DefaultOpengiswcs_OutputTypeFormat {}
  implicit lazy val Opengiswcs_DomainSubsetTypeFormat: scalaxb.XMLFormat[opengis.wcs.DomainSubsetType] = new DefaultOpengiswcs_DomainSubsetTypeFormat {}
  implicit lazy val Opengiswcs_FieldSubsetFormat: scalaxb.XMLFormat[opengis.wcs.FieldSubset] = new DefaultOpengiswcs_FieldSubsetFormat {}
  implicit lazy val Opengiswcs_RangeSubsetTypeFormat: scalaxb.XMLFormat[opengis.wcs.RangeSubsetType] = new DefaultOpengiswcs_RangeSubsetTypeFormat {}
  implicit lazy val Opengiswcs_AxisSubsetFormat: scalaxb.XMLFormat[opengis.wcs.AxisSubset] = new DefaultOpengiswcs_AxisSubsetFormat {}
  implicit lazy val Opengiswcs_GridCrsTypeFormat: scalaxb.XMLFormat[opengis.wcs.GridCrsType] = new DefaultOpengiswcs_GridCrsTypeFormat {}
  implicit lazy val Opengiswcs_InterpolationMethodsFormat: scalaxb.XMLFormat[opengis.wcs.InterpolationMethods] = new DefaultOpengiswcs_InterpolationMethodsFormat {}
  implicit lazy val Opengiswcs_InterpolationMethodTypeFormat: scalaxb.XMLFormat[opengis.wcs.InterpolationMethodType] = new DefaultOpengiswcs_InterpolationMethodTypeFormat {}
  implicit lazy val Opengiswcs_InterpolationMethodBaseTypableFormat: scalaxb.XMLFormat[opengis.wcs.InterpolationMethodBaseTypable] = new DefaultOpengiswcs_InterpolationMethodBaseTypableFormat {}
  implicit lazy val Opengiswcs_InterpolationMethodBaseTypeFormat: scalaxb.XMLFormat[opengis.wcs.InterpolationMethodBaseType] = new DefaultOpengiswcs_InterpolationMethodBaseTypeFormat {}
  implicit lazy val Opengiswfs_BaseRequestTypeFormat: scalaxb.XMLFormat[opengis.wfs.BaseRequestType] = new DefaultOpengiswfs_BaseRequestTypeFormat {}
  implicit lazy val Opengiswfs_XlinkPropertyNameFormat: scalaxb.XMLFormat[opengis.wfs.XlinkPropertyName] = new DefaultOpengiswfs_XlinkPropertyNameFormat {}
  implicit lazy val Opengiswfs_StarStringTypeFormat: scalaxb.XMLFormat[opengis.wfs.StarStringType] = new DefaultOpengiswfs_StarStringTypeFormat {}
  implicit lazy val Opengiswfs_GetCapabilitiesTypeFormat: scalaxb.XMLFormat[opengis.wfs.GetCapabilitiesType] = new DefaultOpengiswfs_GetCapabilitiesTypeFormat {}
  implicit lazy val Opengiswfs_WFS_CapabilitiesTypeFormat: scalaxb.XMLFormat[opengis.wfs.WFS_CapabilitiesType] = new DefaultOpengiswfs_WFS_CapabilitiesTypeFormat {}
  implicit lazy val Opengiswfs_FeatureTypeListTypeFormat: scalaxb.XMLFormat[opengis.wfs.FeatureTypeListType] = new DefaultOpengiswfs_FeatureTypeListTypeFormat {}
  implicit lazy val Opengiswfs_NoSRSFormat: scalaxb.XMLFormat[opengis.wfs.NoSRS] = new DefaultOpengiswfs_NoSRSFormat {}
  implicit lazy val Opengiswfs_FeatureTypeTypeFormat: scalaxb.XMLFormat[opengis.wfs.FeatureTypeType] = new DefaultOpengiswfs_FeatureTypeTypeFormat {}
  implicit lazy val Opengiswfs_FeatureTypeTypeSequence1Format: scalaxb.XMLFormat[opengis.wfs.FeatureTypeTypeSequence1] = new DefaultOpengiswfs_FeatureTypeTypeSequence1Format {}
  implicit lazy val Opengiswfs_OperationsTypeFormat: scalaxb.XMLFormat[opengis.wfs.OperationsType] = new DefaultOpengiswfs_OperationsTypeFormat {}
  implicit lazy val Opengiswfs_OperationTypeFormat: scalaxb.XMLFormat[opengis.wfs.OperationType] = new DefaultOpengiswfs_OperationTypeFormat {}
  implicit lazy val Opengiswfs_OutputFormatListTypeFormat: scalaxb.XMLFormat[opengis.wfs.OutputFormatListType] = new DefaultOpengiswfs_OutputFormatListTypeFormat {}
  implicit lazy val Opengiswfs_OutputFormatListTypeSequence1Format: scalaxb.XMLFormat[opengis.wfs.OutputFormatListTypeSequence1] = new DefaultOpengiswfs_OutputFormatListTypeSequence1Format {}
  implicit lazy val Opengiswfs_TypeFormat: scalaxb.XMLFormat[opengis.wfs.Type] = new DefaultOpengiswfs_TypeFormat {}
  implicit lazy val Opengiswfs_FormatFormat: scalaxb.XMLFormat[opengis.wfs.Format] = new DefaultOpengiswfs_FormatFormat {}
  implicit lazy val Opengiswfs_MetadataURLTypeFormat: scalaxb.XMLFormat[opengis.wfs.MetadataURLType] = new DefaultOpengiswfs_MetadataURLTypeFormat {}
  implicit lazy val Opengiswfs_GMLObjectTypeListTypeFormat: scalaxb.XMLFormat[opengis.wfs.GMLObjectTypeListType] = new DefaultOpengiswfs_GMLObjectTypeListTypeFormat {}
  implicit lazy val Opengiswfs_GMLObjectTypeTypeFormat: scalaxb.XMLFormat[opengis.wfs.GMLObjectTypeType] = new DefaultOpengiswfs_GMLObjectTypeTypeFormat {}
  implicit lazy val Opengiswfs_DescribeFeatureTypeTypeFormat: scalaxb.XMLFormat[opengis.wfs.DescribeFeatureTypeType] = new DefaultOpengiswfs_DescribeFeatureTypeTypeFormat {}
  implicit lazy val Opengiswfs_GetFeatureTypeFormat: scalaxb.XMLFormat[opengis.wfs.GetFeatureType] = new DefaultOpengiswfs_GetFeatureTypeFormat {}
  implicit lazy val Opengiswfs_ResultTypeTypeFormat: scalaxb.XMLFormat[opengis.wfs.ResultTypeType] = new DefaultOpengiswfs_ResultTypeTypeFormat {}
  implicit lazy val Opengiswfs_QueryTypeFormat: scalaxb.XMLFormat[opengis.wfs.QueryType] = new DefaultOpengiswfs_QueryTypeFormat {}
  implicit lazy val Opengiswfs_FeatureCollectionTypeFormat: scalaxb.XMLFormat[opengis.wfs.FeatureCollectionType] = new DefaultOpengiswfs_FeatureCollectionTypeFormat {}
  implicit lazy val Opengiswfs_GetGmlObjectTypeFormat: scalaxb.XMLFormat[opengis.wfs.GetGmlObjectType] = new DefaultOpengiswfs_GetGmlObjectTypeFormat {}
  implicit lazy val Opengiswfs_GetFeatureWithLockTypeFormat: scalaxb.XMLFormat[opengis.wfs.GetFeatureWithLockType] = new DefaultOpengiswfs_GetFeatureWithLockTypeFormat {}
  implicit lazy val Opengiswfs_LockFeatureTypeFormat: scalaxb.XMLFormat[opengis.wfs.LockFeatureType] = new DefaultOpengiswfs_LockFeatureTypeFormat {}
  implicit lazy val Opengiswfs_AllSomeTypeFormat: scalaxb.XMLFormat[opengis.wfs.AllSomeType] = new DefaultOpengiswfs_AllSomeTypeFormat {}
  implicit lazy val Opengiswfs_LockTypeFormat: scalaxb.XMLFormat[opengis.wfs.LockType] = new DefaultOpengiswfs_LockTypeFormat {}
  implicit lazy val Opengiswfs_LockFeatureResponseTypeFormat: scalaxb.XMLFormat[opengis.wfs.LockFeatureResponseType] = new DefaultOpengiswfs_LockFeatureResponseTypeFormat {}
  implicit lazy val Opengiswfs_FeaturesLockedTypeFormat: scalaxb.XMLFormat[opengis.wfs.FeaturesLockedType] = new DefaultOpengiswfs_FeaturesLockedTypeFormat {}
  implicit lazy val Opengiswfs_FeaturesLockedTypeSequence1Format: scalaxb.XMLFormat[opengis.wfs.FeaturesLockedTypeSequence1] = new DefaultOpengiswfs_FeaturesLockedTypeSequence1Format {}
  implicit lazy val Opengiswfs_FeaturesNotLockedTypeFormat: scalaxb.XMLFormat[opengis.wfs.FeaturesNotLockedType] = new DefaultOpengiswfs_FeaturesNotLockedTypeFormat {}
  implicit lazy val Opengiswfs_FeaturesNotLockedTypeSequence1Format: scalaxb.XMLFormat[opengis.wfs.FeaturesNotLockedTypeSequence1] = new DefaultOpengiswfs_FeaturesNotLockedTypeSequence1Format {}
  implicit lazy val Opengiswfs_TransactionTypeFormat: scalaxb.XMLFormat[opengis.wfs.TransactionType] = new DefaultOpengiswfs_TransactionTypeFormat {}
  implicit lazy val Opengiswfs_InsertElementTypeFormat: scalaxb.XMLFormat[opengis.wfs.InsertElementType] = new DefaultOpengiswfs_InsertElementTypeFormat {}
  implicit lazy val Opengiswfs_IdentifierGenerationOptionTypeFormat: scalaxb.XMLFormat[opengis.wfs.IdentifierGenerationOptionType] = new DefaultOpengiswfs_IdentifierGenerationOptionTypeFormat {}
  implicit lazy val Opengiswfs_UpdateElementTypeFormat: scalaxb.XMLFormat[opengis.wfs.UpdateElementType] = new DefaultOpengiswfs_UpdateElementTypeFormat {}
  implicit lazy val Opengiswfs_PropertyTypeFormat: scalaxb.XMLFormat[opengis.wfs.PropertyType] = new DefaultOpengiswfs_PropertyTypeFormat {}
  implicit lazy val Opengiswfs_DeleteElementTypeFormat: scalaxb.XMLFormat[opengis.wfs.DeleteElementType] = new DefaultOpengiswfs_DeleteElementTypeFormat {}
  implicit lazy val Opengiswfs_NativeTypeFormat: scalaxb.XMLFormat[opengis.wfs.NativeType] = new DefaultOpengiswfs_NativeTypeFormat {}
  implicit lazy val Opengiswfs_TransactionResponseTypeFormat: scalaxb.XMLFormat[opengis.wfs.TransactionResponseType] = new DefaultOpengiswfs_TransactionResponseTypeFormat {}
  implicit lazy val Opengiswfs_TransactionSummaryTypeFormat: scalaxb.XMLFormat[opengis.wfs.TransactionSummaryType] = new DefaultOpengiswfs_TransactionSummaryTypeFormat {}
  implicit lazy val Opengiswfs_TransactionResultsTypeFormat: scalaxb.XMLFormat[opengis.wfs.TransactionResultsType] = new DefaultOpengiswfs_TransactionResultsTypeFormat {}
  implicit lazy val Opengiswfs_ActionTypeFormat: scalaxb.XMLFormat[opengis.wfs.ActionType] = new DefaultOpengiswfs_ActionTypeFormat {}
  implicit lazy val Opengiswfs_InsertResultsTypeFormat: scalaxb.XMLFormat[opengis.wfs.InsertResultsType] = new DefaultOpengiswfs_InsertResultsTypeFormat {}
  implicit lazy val Opengiswfs_InsertedFeatureTypeFormat: scalaxb.XMLFormat[opengis.wfs.InsertedFeatureType] = new DefaultOpengiswfs_InsertedFeatureTypeFormat {}
  implicit lazy val Opengiswms_WMS_CapabilitiesFormat: scalaxb.XMLFormat[opengis.wms.WMS_Capabilities] = new DefaultOpengiswms_WMS_CapabilitiesFormat {}
  implicit lazy val Opengiswms_KeywordListFormat: scalaxb.XMLFormat[opengis.wms.KeywordList] = new DefaultOpengiswms_KeywordListFormat {}
  implicit lazy val Opengiswms_KeywordFormat: scalaxb.XMLFormat[opengis.wms.Keyword] = new DefaultOpengiswms_KeywordFormat {}
  implicit lazy val Opengiswms_OnlineResourceFormat: scalaxb.XMLFormat[opengis.wms.OnlineResource] = new DefaultOpengiswms_OnlineResourceFormat {}
  implicit lazy val Opengiswms_NameFormat: scalaxb.XMLFormat[opengis.wms.Name] = new DefaultOpengiswms_NameFormat {}
  implicit lazy val Opengiswms_ServiceFormat: scalaxb.XMLFormat[opengis.wms.Service] = new DefaultOpengiswms_ServiceFormat {}
  implicit lazy val Opengiswms_ContactInformationFormat: scalaxb.XMLFormat[opengis.wms.ContactInformation] = new DefaultOpengiswms_ContactInformationFormat {}
  implicit lazy val Opengiswms_ContactPersonPrimaryFormat: scalaxb.XMLFormat[opengis.wms.ContactPersonPrimary] = new DefaultOpengiswms_ContactPersonPrimaryFormat {}
  implicit lazy val Opengiswms_ContactAddressFormat: scalaxb.XMLFormat[opengis.wms.ContactAddress] = new DefaultOpengiswms_ContactAddressFormat {}
  implicit lazy val Opengiswms_CapabilityFormat: scalaxb.XMLFormat[opengis.wms.Capability] = new DefaultOpengiswms_CapabilityFormat {}
  implicit lazy val Opengiswms_RequestFormat: scalaxb.XMLFormat[opengis.wms.Request] = new DefaultOpengiswms_RequestFormat {}
  implicit lazy val Opengiswms_OperationTypeFormat: scalaxb.XMLFormat[opengis.wms.OperationType] = new DefaultOpengiswms_OperationTypeFormat {}
  implicit lazy val Opengiswms_DCPTypeFormat: scalaxb.XMLFormat[opengis.wms.DCPType] = new DefaultOpengiswms_DCPTypeFormat {}
  implicit lazy val Opengiswms_HTTPFormat: scalaxb.XMLFormat[opengis.wms.HTTP] = new DefaultOpengiswms_HTTPFormat {}
  implicit lazy val Opengiswms_GetFormat: scalaxb.XMLFormat[opengis.wms.Get] = new DefaultOpengiswms_GetFormat {}
  implicit lazy val Opengiswms_PostFormat: scalaxb.XMLFormat[opengis.wms.Post] = new DefaultOpengiswms_PostFormat {}
  implicit lazy val Opengiswms_ExceptionFormat: scalaxb.XMLFormat[opengis.wms.Exception] = new DefaultOpengiswms_ExceptionFormat {}
  implicit lazy val Opengiswms_LayerFormat: scalaxb.XMLFormat[opengis.wms.Layer] = new DefaultOpengiswms_LayerFormat {}
  implicit lazy val Opengiswms_EX_GeographicBoundingBoxFormat: scalaxb.XMLFormat[opengis.wms.EX_GeographicBoundingBox] = new DefaultOpengiswms_EX_GeographicBoundingBoxFormat {}
  implicit lazy val Opengiswms_BoundingBoxFormat: scalaxb.XMLFormat[opengis.wms.BoundingBox] = new DefaultOpengiswms_BoundingBoxFormat {}
  implicit lazy val Opengiswms_DimensionFormat: scalaxb.XMLFormat[opengis.wms.Dimension] = new DefaultOpengiswms_DimensionFormat {}
  implicit lazy val Opengiswms_AttributionFormat: scalaxb.XMLFormat[opengis.wms.Attribution] = new DefaultOpengiswms_AttributionFormat {}
  implicit lazy val Opengiswms_LogoURLFormat: scalaxb.XMLFormat[opengis.wms.LogoURL] = new DefaultOpengiswms_LogoURLFormat {}
  implicit lazy val Opengiswms_MetadataURLFormat: scalaxb.XMLFormat[opengis.wms.MetadataURL] = new DefaultOpengiswms_MetadataURLFormat {}
  implicit lazy val Opengiswms_AuthorityURLFormat: scalaxb.XMLFormat[opengis.wms.AuthorityURL] = new DefaultOpengiswms_AuthorityURLFormat {}
  implicit lazy val Opengiswms_IdentifierFormat: scalaxb.XMLFormat[opengis.wms.Identifier] = new DefaultOpengiswms_IdentifierFormat {}
  implicit lazy val Opengiswms_DataURLFormat: scalaxb.XMLFormat[opengis.wms.DataURL] = new DefaultOpengiswms_DataURLFormat {}
  implicit lazy val Opengiswms_FeatureListURLFormat: scalaxb.XMLFormat[opengis.wms.FeatureListURL] = new DefaultOpengiswms_FeatureListURLFormat {}
  implicit lazy val Opengiswms_StyleFormat: scalaxb.XMLFormat[opengis.wms.Style] = new DefaultOpengiswms_StyleFormat {}
  implicit lazy val Opengiswms_LegendURLFormat: scalaxb.XMLFormat[opengis.wms.LegendURL] = new DefaultOpengiswms_LegendURLFormat {}
  implicit lazy val Opengiswms_StyleSheetURLFormat: scalaxb.XMLFormat[opengis.wms.StyleSheetURL] = new DefaultOpengiswms_StyleSheetURLFormat {}
  implicit lazy val Opengiswms_StyleURLFormat: scalaxb.XMLFormat[opengis.wms.StyleURL] = new DefaultOpengiswms_StyleURLFormat {}
  implicit lazy val Opengisogc_ServiceExceptionReportFormat: scalaxb.XMLFormat[opengis.ogc.ServiceExceptionReport] = new DefaultOpengisogc_ServiceExceptionReportFormat {}
  implicit lazy val Opengisogc_ServiceExceptionTypeFormat: scalaxb.XMLFormat[opengis.ogc.ServiceExceptionType] = new DefaultOpengisogc_ServiceExceptionTypeFormat {}
  implicit lazy val Opengiswmts_GetCapabilitiesFormat: scalaxb.XMLFormat[opengis.wmts.GetCapabilities] = new DefaultOpengiswmts_GetCapabilitiesFormat {}
  implicit lazy val Opengiswmts_CapabilitiesFormat: scalaxb.XMLFormat[opengis.wmts.Capabilities] = new DefaultOpengiswmts_CapabilitiesFormat {}
  implicit lazy val Opengiswmts_ContentsTypeFormat: scalaxb.XMLFormat[opengis.wmts.ContentsType] = new DefaultOpengiswmts_ContentsTypeFormat {}
  implicit lazy val Opengiswmts_LayerTypeFormat: scalaxb.XMLFormat[opengis.wmts.LayerType] = new DefaultOpengiswmts_LayerTypeFormat {}
  implicit lazy val Opengiswmts_StyleFormat: scalaxb.XMLFormat[opengis.wmts.Style] = new DefaultOpengiswmts_StyleFormat {}
  implicit lazy val Opengiswmts_LegendURLFormat: scalaxb.XMLFormat[opengis.wmts.LegendURL] = new DefaultOpengiswmts_LegendURLFormat {}
  implicit lazy val Opengiswmts_DimensionFormat: scalaxb.XMLFormat[opengis.wmts.Dimension] = new DefaultOpengiswmts_DimensionFormat {}
  implicit lazy val Opengiswmts_TileMatrixSetLinkFormat: scalaxb.XMLFormat[opengis.wmts.TileMatrixSetLink] = new DefaultOpengiswmts_TileMatrixSetLinkFormat {}
  implicit lazy val Opengiswmts_TileMatrixSetLimitsFormat: scalaxb.XMLFormat[opengis.wmts.TileMatrixSetLimits] = new DefaultOpengiswmts_TileMatrixSetLimitsFormat {}
  implicit lazy val Opengiswmts_TileMatrixLimitsFormat: scalaxb.XMLFormat[opengis.wmts.TileMatrixLimits] = new DefaultOpengiswmts_TileMatrixLimitsFormat {}
  implicit lazy val Opengiswmts_KnownResourceTypeCodeTypeFormat: scalaxb.XMLFormat[opengis.wmts.KnownResourceTypeCodeType] = new DefaultOpengiswmts_KnownResourceTypeCodeTypeFormat {}
  implicit lazy val Opengiswmts_URLTemplateTypeFormat: scalaxb.XMLFormat[opengis.wmts.URLTemplateType] = new DefaultOpengiswmts_URLTemplateTypeFormat {}
  implicit lazy val Opengiswmts_TileMatrixSetFormat: scalaxb.XMLFormat[opengis.wmts.TileMatrixSet] = new DefaultOpengiswmts_TileMatrixSetFormat {}
  implicit lazy val Opengiswmts_TileMatrixFormat: scalaxb.XMLFormat[opengis.wmts.TileMatrix] = new DefaultOpengiswmts_TileMatrixFormat {}
  implicit lazy val Opengiswmts_ThemesFormat: scalaxb.XMLFormat[opengis.wmts.Themes] = new DefaultOpengiswmts_ThemesFormat {}
  implicit lazy val Opengiswmts_ThemeFormat: scalaxb.XMLFormat[opengis.wmts.Theme] = new DefaultOpengiswmts_ThemeFormat {}
  implicit lazy val Opengiswmts_GetFeatureInfoFormat: scalaxb.XMLFormat[opengis.wmts.GetFeatureInfo] = new DefaultOpengiswmts_GetFeatureInfoFormat {}
  implicit lazy val Opengiswmts_FeatureInfoResponseFormat: scalaxb.XMLFormat[opengis.wmts.FeatureInfoResponse] = new DefaultOpengiswmts_FeatureInfoResponseFormat {}
  implicit lazy val Opengiswmts_GetTileFormat: scalaxb.XMLFormat[opengis.wmts.GetTile] = new DefaultOpengiswmts_GetTileFormat {}
  implicit lazy val Opengiswmts_DimensionNameValueFormat: scalaxb.XMLFormat[opengis.wmts.DimensionNameValue] = new DefaultOpengiswmts_DimensionNameValueFormat {}
  implicit lazy val Opengiswmts_RequestServiceTypeFormat: scalaxb.XMLFormat[opengis.wmts.RequestServiceType] = new DefaultOpengiswmts_RequestServiceTypeFormat {}
  implicit lazy val Opengiswmts_VersionTypeFormat: scalaxb.XMLFormat[opengis.wmts.VersionType] = new DefaultOpengiswmts_VersionTypeFormat {}
  implicit lazy val Opengiswmts_GetCapabilitiesValueTypeFormat: scalaxb.XMLFormat[opengis.wmts.GetCapabilitiesValueType] = new DefaultOpengiswmts_GetCapabilitiesValueTypeFormat {}
  implicit lazy val Opengiswmts_GetTileValueTypeFormat: scalaxb.XMLFormat[opengis.wmts.GetTileValueType] = new DefaultOpengiswmts_GetTileValueTypeFormat {}
  implicit lazy val Opengiswmts_GetFeatureInfoValueTypeFormat: scalaxb.XMLFormat[opengis.wmts.GetFeatureInfoValueType] = new DefaultOpengiswmts_GetFeatureInfoValueTypeFormat {}
  implicit lazy val Opengiswmts_BinaryPayloadFormat: scalaxb.XMLFormat[opengis.wmts.BinaryPayload] = new DefaultOpengiswmts_BinaryPayloadFormat {}
  implicit lazy val Opengiswmts_TextPayloadFormat: scalaxb.XMLFormat[opengis.wmts.TextPayload] = new DefaultOpengiswmts_TextPayloadFormat {}
  implicit lazy val Xlink_TypeTypeFormat: scalaxb.XMLFormat[xlink.TypeType] = new DefaultXlink_TypeTypeFormat {}
  implicit lazy val Xlink_ShowTypeFormat: scalaxb.XMLFormat[xlink.ShowType] = new DefaultXlink_ShowTypeFormat {}
  implicit lazy val Xlink_ActuateTypeFormat: scalaxb.XMLFormat[xlink.ActuateType] = new DefaultXlink_ActuateTypeFormat {}
  implicit lazy val Xlink_SimpleTypeFormat: scalaxb.XMLFormat[xlink.SimpleType] = new DefaultXlink_SimpleTypeFormat {}
  implicit lazy val Xlink_ExtendedFormat: scalaxb.XMLFormat[xlink.Extended] = new DefaultXlink_ExtendedFormat {}
  implicit lazy val Xlink_TitleEltTypeFormat: scalaxb.XMLFormat[xlink.TitleEltType] = new DefaultXlink_TitleEltTypeFormat {}
  implicit lazy val Xlink_ResourceTypeFormat: scalaxb.XMLFormat[xlink.ResourceType] = new DefaultXlink_ResourceTypeFormat {}
  implicit lazy val Xlink_LocatorTypeFormat: scalaxb.XMLFormat[xlink.LocatorType] = new DefaultXlink_LocatorTypeFormat {}
  implicit lazy val Xlink_ArcTypeFormat: scalaxb.XMLFormat[xlink.ArcType] = new DefaultXlink_ArcTypeFormat {}
  implicit lazy val Xlink_ArcModelSequenceFormat: scalaxb.XMLFormat[xlink.ArcModelSequence] = new DefaultXlink_ArcModelSequenceFormat {}
  implicit lazy val Xlink_ResourceModelSequenceFormat: scalaxb.XMLFormat[xlink.ResourceModelSequence] = new DefaultXlink_ResourceModelSequenceFormat {}
  implicit lazy val Xlink_SimpleModelSequenceFormat: scalaxb.XMLFormat[xlink.SimpleModelSequence] = new DefaultXlink_SimpleModelSequenceFormat {}
  implicit lazy val Xlink_TitleModelSequenceFormat: scalaxb.XMLFormat[xlink.TitleModelSequence] = new DefaultXlink_TitleModelSequenceFormat {}
  implicit lazy val Xlink_LocatorModelSequenceFormat: scalaxb.XMLFormat[xlink.LocatorModelSequence] = new DefaultXlink_LocatorModelSequenceFormat {}
  implicit lazy val Xlink_ArcAttrsFormat: scalaxb.AttributeGroupFormat[xlink.ArcAttrs] = new DefaultXlink_ArcAttrsFormat {}
  implicit lazy val Xlink_ResourceAttrsFormat: scalaxb.AttributeGroupFormat[xlink.ResourceAttrs] = new DefaultXlink_ResourceAttrsFormat {}
  implicit lazy val Xlink_ExtendedAttrsFormat: scalaxb.AttributeGroupFormat[xlink.ExtendedAttrs] = new DefaultXlink_ExtendedAttrsFormat {}
  implicit lazy val Xlink_SimpleAttrsFormat: scalaxb.AttributeGroupFormat[xlink.SimpleAttrs] = new DefaultXlink_SimpleAttrsFormat {}
  implicit lazy val Xlink_TitleAttrsFormat: scalaxb.AttributeGroupFormat[xlink.TitleAttrs] = new DefaultXlink_TitleAttrsFormat {}
  implicit lazy val Xlink_LocatorAttrsFormat: scalaxb.AttributeGroupFormat[xlink.LocatorAttrs] = new DefaultXlink_LocatorAttrsFormat {}

  def fromAnySchemaTypeHelper1(elem: scala.xml.Elem): Option[scalaxb.DataRecord[Any]] = {
    import scalaxb.{Helper, DataRecord, fromXML}

    val ns = Helper.nullOrEmpty(elem.scope.getURI(elem.prefix))
    val key = Some(elem.label)
    val (xsns, xstype) = Helper.instanceType(elem)

    (key, ns) match {
      case (Some("expression"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.ExpressionType](elem)))
      case (Some("Function"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.FunctionType](elem)))
      case (Some("Div"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinaryOperatorType](elem)))
      case (Some("Sub"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinaryOperatorType](elem)))
      case (Some("Add"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinaryOperatorType](elem)))
      case (Some("Mul"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinaryOperatorType](elem)))
      case (Some("PropertyName"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.PropertyNameType](elem)))
      case (Some("Literal"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.LiteralType](elem)))
      case (Some("Not"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.UnaryLogicOpType](elem)))
      case (Some("And"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinaryLogicOpType](elem)))
      case (Some("BBOX"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BBOXType](elem)))
      case (Some("DWithin"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.DistanceBufferType](elem)))
      case (Some("Intersects"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinarySpatialOpType](elem)))
      case (Some("Overlaps"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinarySpatialOpType](elem)))
      case (Some("Touches"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinarySpatialOpType](elem)))
      case (Some("Equals"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinarySpatialOpType](elem)))
      case (Some("PropertyIsBetween"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.PropertyIsBetweenType](elem)))
      case (Some("PropertyIsLike"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.PropertyIsLikeType](elem)))
      case (Some("PropertyIsLessThanOrEqualTo"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinaryComparisonOpType](elem)))
      case (Some("PropertyIsLessThan"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinaryComparisonOpType](elem)))
      case (Some("PropertyIsEqualTo"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinaryComparisonOpType](elem)))
      case (Some("Filter"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.FilterType](elem)))
      case (Some("FeatureId"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.FeatureIdType](elem)))
      case (Some("_Id"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.AbstractIdType](elem)))
      case (Some("GmlObjectId"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.GmlObjectIdType](elem)))
      case (Some("comparisonOps"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.ComparisonOpsType](elem)))
      case (Some("PropertyIsNotEqualTo"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinaryComparisonOpType](elem)))
      case (Some("PropertyIsGreaterThan"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinaryComparisonOpType](elem)))
      case (Some("PropertyIsGreaterThanOrEqualTo"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinaryComparisonOpType](elem)))
      case (Some("PropertyIsNull"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.PropertyIsNullType](elem)))
      case (Some("spatialOps"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.SpatialOpsType](elem)))
      case (Some("Disjoint"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinarySpatialOpType](elem)))
      case (Some("Within"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinarySpatialOpType](elem)))
      case (Some("Crosses"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinarySpatialOpType](elem)))
      case (Some("Contains"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinarySpatialOpType](elem)))
      case (Some("Beyond"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.DistanceBufferType](elem)))
      case (Some("logicOps"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.LogicOpsType](elem)))
      case (Some("Or"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.BinaryLogicOpType](elem)))
      case (Some("FID"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.FID](elem)))
      case (Some("SimpleArithmetic"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.SimpleArithmetic](elem)))
      case (Some("Filter_Capabilities"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.Filter_Capabilities](elem)))
      case (Some("LogicalOperators"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.LogicalOperators](elem)))
      case (Some("EID"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.EID](elem)))
      case (Some("SortBy"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.SortByType](elem)))
      case (Some("Null"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("operationParameterGroupRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.OperationParameterRefType](elem)))
      case (Some("maximumOccurs"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[BigInt](elem)))
      case (Some("groupName"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CodeTypable](elem)))
      case (Some("operationParameterRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.OperationParameterRefType](elem)))
      case (Some("parameterName"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CodeTypable](elem)))
      case (Some("abstractGeneralOperationParameterRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractGeneralOperationParameterRefType](elem)))
      case (Some("_GeneralOperationParameter"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractGeneralOperationParameterType](elem)))
      case (Some("usesParameter"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractGeneralOperationParameterRefType](elem)))
      case (Some("sourceDimensions"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[BigInt](elem)))
      case (Some("methodID"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.IdentifierType](elem)))
      case (Some("OperationMethod"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.OperationMethodType](elem)))
      case (Some("includesValue"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractGeneralParameterValueType](elem)))
      case (Some("valueOfParameter"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.OperationParameterRefType](elem)))
      case (Some("integerValueList"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Seq[BigInt]](elem)))
      case (Some("booleanValue"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Boolean](elem)))
      case (Some("stringValue"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("value"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MeasureTypable](elem)))
      case (Some("_generalParameterValue"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractGeneralParameterValueType](elem)))
      case (Some("Transformation"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TransformationType](elem)))
      case (Some("_GeneralTransformation"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractGeneralTransformationType](elem)))
      case (Some("usesValue"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ParameterValueType](elem)))
      case (Some("Conversion"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ConversionType](elem)))
      case (Some("_GeneralConversion"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractGeneralConversionType](elem)))
      case (Some("_Operation"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractCoordinateOperationType](elem)))
      case (Some("usesOperation"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.OperationRefType](elem)))
      case (Some("PassThroughOperation"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PassThroughOperationType](elem)))
      case (Some("_SingleOperation"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractCoordinateOperationType](elem)))
      case (Some("usesSingleOperation"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SingleOperationRefType](elem)))
      case (Some("coordinateOperationRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CoordinateOperationRefType](elem)))
      case (Some("sourceCRS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CRSRefType](elem)))
      case (Some("coordinateOperationID"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.IdentifierType](elem)))
      case (Some("_CoordinateOperation"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractCoordinateOperationType](elem)))
      case (Some("coordinateOperationName"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CodeTypable](elem)))
      case (Some("operationVersion"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("targetCRS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CRSRefType](elem)))
      case (Some("ConcatenatedOperation"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ConcatenatedOperationType](elem)))
      case (Some("concatenatedOperationRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ConcatenatedOperationRefType](elem)))
      case (Some("singleOperationRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SingleOperationRefType](elem)))
      case (Some("modifiedCoordinate"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[BigInt](elem)))
      case (Some("passThroughOperationRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PassThroughOperationRefType](elem)))
      case (Some("operationRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.OperationRefType](elem)))
      case (Some("generalConversionRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GeneralConversionRefType](elem)))
      case (Some("usesMethod"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.OperationMethodRefType](elem)))
      case (Some("conversionRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ConversionRefType](elem)))
      case (Some("generalTransformationRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GeneralTransformationRefType](elem)))
      case (Some("transformationRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TransformationRefType](elem)))
      case (Some("parameterValue"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ParameterValueType](elem)))
      case (Some("dmsAngleValue"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DMSAngleType](elem)))
      case (Some("integerValue"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[BigInt](elem)))
      case (Some("valueList"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MeasureListType](elem)))
      case (Some("valueFile"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[java.net.URI](elem)))
      case (Some("parameterValueGroup"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ParameterValueGroupType](elem)))
      case (Some("valuesOfGroup"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.OperationParameterGroupRefType](elem)))
      case (Some("methodName"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CodeTypable](elem)))
      case (Some("methodFormula"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CodeTypable](elem)))
      case (Some("targetDimensions"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[BigInt](elem)))
      case (Some("operationMethodRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.OperationMethodRefType](elem)))
      case (Some("minimumOccurs"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[BigInt](elem)))
      case (Some("OperationParameter"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.OperationParameterType](elem)))
      case (Some("parameterID"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.IdentifierType](elem)))
      case (Some("OperationParameterGroup"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.OperationParameterGroupType](elem)))
      case (Some("groupID"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.IdentifierType](elem)))
      case (Some("includesParameter"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractGeneralOperationParameterRefType](elem)))
      case (Some("temporalCRSRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TemporalCRSRefType](elem)))
      case (Some("usesTemporalCS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TemporalCSRefType](elem)))
      case (Some("imageCRSRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ImageCRSRefType](elem)))
      case (Some("usesObliqueCartesianCS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ObliqueCartesianCSRefType](elem)))
      case (Some("engineeringCRSRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.EngineeringCRSRefType](elem)))
      case (Some("EngineeringCRS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.EngineeringCRSType](elem)))
      case (Some("usesCS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CoordinateSystemRefType](elem)))
      case (Some("DerivedCRS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DerivedCRSType](elem)))
      case (Some("ProjectedCRS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ProjectedCRSType](elem)))
      case (Some("baseCRS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CoordinateReferenceSystemRefType](elem)))
      case (Some("geocentricCRSRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GeocentricCRSRefType](elem)))
      case (Some("usesCartesianCS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CartesianCSRefType](elem)))
      case (Some("verticalCRSRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.VerticalCRSRefType](elem)))
      case (Some("usesVerticalCS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.VerticalCSRefType](elem)))
      case (Some("geographicCRSRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GeographicCRSRefType](elem)))
      case (Some("usesEllipsoidalCS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.EllipsoidalCSRefType](elem)))
      case (Some("compoundCRSRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CompoundCRSRefType](elem)))
      case (Some("CompoundCRS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CompoundCRSType](elem)))
      case (Some("_CoordinateReferenceSystem"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractReferenceSystemType](elem)))
      case (Some("coordinateReferenceSystemRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CoordinateReferenceSystemRefType](elem)))
      case (Some("includesCRS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CoordinateReferenceSystemRefType](elem)))
      case (Some("GeographicCRS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GeographicCRSType](elem)))
      case (Some("usesGeodeticDatum"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GeodeticDatumRefType](elem)))
      case (Some("VerticalCRS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.VerticalCRSType](elem)))
      case (Some("usesVerticalDatum"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.VerticalDatumRefType](elem)))
      case (Some("GeocentricCRS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GeocentricCRSType](elem)))
      case (Some("usesSphericalCS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SphericalCSRefType](elem)))
      case (Some("_GeneralDerivedCRS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractGeneralDerivedCRSType](elem)))
      case (Some("definedByConversion"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GeneralConversionRefType](elem)))
      case (Some("projectedCRSRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ProjectedCRSRefType](elem)))
      case (Some("derivedCRSType"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DerivedCRSTypeType](elem)))
      case (Some("derivedCRSRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DerivedCRSRefType](elem)))
      case (Some("usesEngineeringDatum"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.EngineeringDatumRefType](elem)))
      case (Some("ImageCRS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ImageCRSType](elem)))
      case (Some("usesImageDatum"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ImageDatumRefType](elem)))
      case (Some("TemporalCRS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TemporalCRSType](elem)))
      case (Some("usesTemporalDatum"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TemporalDatumRefType](elem)))
      case (Some("obliqueCartesianCSRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ObliqueCartesianCSRefType](elem)))
      case (Some("cylindricalCSRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CylindricalCSRefType](elem)))
      case (Some("polarCSRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PolarCSRefType](elem)))
      case (Some("sphericalCSRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SphericalCSRefType](elem)))
      case (Some("userDefinedCSRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.UserDefinedCSRefType](elem)))
      case (Some("linearCSRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.LinearCSRefType](elem)))
      case (Some("temporalCSRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TemporalCSRefType](elem)))
      case (Some("verticalCSRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.VerticalCSRefType](elem)))
      case (Some("cartesianCSRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CartesianCSRefType](elem)))
      case (Some("ellipsoidalCSRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.EllipsoidalCSRefType](elem)))
      case (Some("coordinateSystemRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CoordinateSystemRefType](elem)))
      case (Some("csID"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.IdentifierType](elem)))
      case (Some("_CoordinateSystem"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractCoordinateSystemType](elem)))
      case (Some("axisDirection"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CodeTypable](elem)))
      case (Some("axisID"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.IdentifierType](elem)))
      case (Some("CoordinateSystemAxis"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CoordinateSystemAxisType](elem)))
      case (Some("axisAbbrev"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CodeTypable](elem)))
      case (Some("coordinateSystemAxisRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CoordinateSystemAxisRefType](elem)))
      case (Some("csName"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CodeTypable](elem)))
      case (Some("usesAxis"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CoordinateSystemAxisRefType](elem)))
      case (Some("EllipsoidalCS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.EllipsoidalCSType](elem)))
      case (Some("CartesianCS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CartesianCSType](elem)))
      case (Some("VerticalCS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.VerticalCSType](elem)))
      case (Some("TemporalCS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TemporalCSType](elem)))
      case (Some("LinearCS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.LinearCSType](elem)))
      case (Some("UserDefinedCS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.UserDefinedCSType](elem)))
      case (Some("SphericalCS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SphericalCSType](elem)))
      case (Some("PolarCS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PolarCSType](elem)))

      case _ => None
    }
  }

  def fromAnySchemaTypeHelper2(elem: scala.xml.Elem): Option[scalaxb.DataRecord[Any]] = {
    import scalaxb.{Helper, DataRecord, fromXML}

    val ns = Helper.nullOrEmpty(elem.scope.getURI(elem.prefix))
    val key = Some(elem.label)
    val (xsns, xstype) = Helper.instanceType(elem)

    (key, ns) match {
      case (Some("CylindricalCS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CylindricalCSType](elem)))
      case (Some("ObliqueCartesianCS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ObliqueCartesianCSType](elem)))
      case (Some("rectifiedGridDomain"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.RectifiedGridDomainType](elem)))
      case (Some("gridDomain"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GridDomainType](elem)))
      case (Some("multiSolidDomain"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiSolidDomainType](elem)))
      case (Some("multiSurfaceDomain"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiSurfaceDomainType](elem)))
      case (Some("multiCurveDomain"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiCurveDomainType](elem)))
      case (Some("multiPointDomain"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiPointDomainType](elem)))
      case (Some("IndexMap"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.IndexMapType](elem)))
      case (Some("MappingRule"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.StringOrRefType](elem)))
      case (Some("File"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.FileType](elem)))
      case (Some("tupleList"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CoordinatesType](elem)))
      case (Some("coverageFunction"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CoverageFunctionType](elem)))
      case (Some("domainSet"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DomainSetTypable](elem)))
      case (Some("_ContinuousCoverage"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractContinuousCoverageType](elem)))
      case (Some("_Coverage"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractCoverageType](elem)))
      case (Some("_DiscreteCoverage"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractDiscreteCoverageType](elem)))
      case (Some("rangeSet"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.RangeSetType](elem)))
      case (Some("DataBlock"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DataBlockType](elem)))
      case (Some("doubleOrNullTupleList"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Seq[String]](elem)))
      case (Some("rangeParameters"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.RangeParametersType](elem)))
      case (Some("GridFunction"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GridFunctionTypable](elem)))
      case (Some("MultiPointCoverage"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiPointCoverageType](elem)))
      case (Some("MultiCurveCoverage"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiCurveCoverageType](elem)))
      case (Some("MultiSurfaceCoverage"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiSurfaceCoverageType](elem)))
      case (Some("MultiSolidCoverage"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiSolidCoverageType](elem)))
      case (Some("GridCoverage"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GridCoverageType](elem)))
      case (Some("RectifiedGridCoverage"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.RectifiedGridCoverageType](elem)))
      case (Some("covariance"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Double](elem)))
      case (Some("rowIndex"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[BigInt](elem)))
      case (Some("covarianceMatrix"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CovarianceMatrixType](elem)))
      case (Some("relativeInternalPositionalAccuracy"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.RelativeInternalPositionalAccuracyType](elem)))
      case (Some("measureDescription"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CodeTypable](elem)))
      case (Some("_positionalAccuracy"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractPositionalAccuracyType](elem)))
      case (Some("absoluteExternalPositionalAccuracy"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbsoluteExternalPositionalAccuracyType](elem)))
      case (Some("result"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MeasureTypable](elem)))
      case (Some("includesElement"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CovarianceElementType](elem)))
      case (Some("columnIndex"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[BigInt](elem)))
      case (Some("isSphere"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.IsSphere](elem)))
      case (Some("inverseFlattening"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MeasureTypable](elem)))
      case (Some("ellipsoidRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.EllipsoidRefType](elem)))
      case (Some("ellipsoidID"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.IdentifierType](elem)))
      case (Some("Ellipsoid"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.EllipsoidType](elem)))
      case (Some("greenwichLongitude"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AngleChoiceType](elem)))
      case (Some("meridianName"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CodeTypable](elem)))
      case (Some("geodeticDatumRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GeodeticDatumRefType](elem)))
      case (Some("usesPrimeMeridian"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PrimeMeridianRefType](elem)))
      case (Some("temporalDatumRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TemporalDatumRefType](elem)))
      case (Some("TemporalDatum"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TemporalDatumType](elem)))
      case (Some("verticalDatumType"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.VerticalDatumTypeType](elem)))
      case (Some("imageDatumRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ImageDatumRefType](elem)))
      case (Some("ImageDatum"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ImageDatumType](elem)))
      case (Some("EngineeringDatum"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.EngineeringDatumType](elem)))
      case (Some("realizationEpoch"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[javax.xml.datatype.XMLGregorianCalendar](elem)))
      case (Some("datumID"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.IdentifierType](elem)))
      case (Some("_Datum"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractDatumType](elem)))
      case (Some("datumName"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CodeTypable](elem)))
      case (Some("anchorPoint"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CodeTypable](elem)))
      case (Some("datumRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DatumRefType](elem)))
      case (Some("engineeringDatumRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.EngineeringDatumRefType](elem)))
      case (Some("pixelInCell"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PixelInCellType](elem)))
      case (Some("VerticalDatum"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.VerticalDatumType](elem)))
      case (Some("verticalDatumRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.VerticalDatumRefType](elem)))
      case (Some("origin"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[javax.xml.datatype.XMLGregorianCalendar](elem)))
      case (Some("GeodeticDatum"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GeodeticDatumType](elem)))
      case (Some("usesEllipsoid"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.EllipsoidRefType](elem)))
      case (Some("PrimeMeridian"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PrimeMeridianType](elem)))
      case (Some("meridianID"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.IdentifierType](elem)))
      case (Some("primeMeridianRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PrimeMeridianRefType](elem)))
      case (Some("ellipsoidName"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CodeTypable](elem)))
      case (Some("semiMajorAxis"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MeasureTypable](elem)))
      case (Some("secondDefiningParameter"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SecondDefiningParameterType](elem)))
      case (Some("semiMinorAxis"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MeasureTypable](elem)))
      case (Some("symbol"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SymbolType](elem)))
      case (Some("graphStyle"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GraphStylePropertyType](elem)))
      case (Some("labelStyle"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.LabelStylePropertyType](elem)))
      case (Some("topologyStyle"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TopologyStylePropertyType](elem)))
      case (Some("geometryStyle"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GeometryStylePropertyType](elem)))
      case (Some("featureStyle"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.FeatureStylePropertyType](elem)))
      case (Some("_Style"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractStyleType](elem)))
      case (Some("defaultStyle"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DefaultStylePropertyType](elem)))
      case (Some("Style"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.StyleType](elem)))
      case (Some("FeatureStyle"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.FeatureStyleType](elem)))
      case (Some("GeometryStyle"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GeometryStyleType](elem)))
      case (Some("TopologyStyle"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TopologyStyleType](elem)))
      case (Some("LabelStyle"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.LabelStyleType](elem)))
      case (Some("GraphStyle"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GraphStyleType](elem)))
      case (Some("definitionRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ReferenceType](elem)))
      case (Some("indirectEntry"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.IndirectEntryType](elem)))
      case (Some("dictionaryEntry"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DictionaryEntryType](elem)))
      case (Some("Dictionary"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DictionaryType](elem)))
      case (Some("Definition"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DefinitionTypable](elem)))
      case (Some("DefinitionCollection"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DictionaryType](elem)))
      case (Some("definitionMember"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DictionaryEntryType](elem)))
      case (Some("DefinitionProxy"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DefinitionProxyType](elem)))
      case (Some("CompassPoint"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CompassPointEnumeration](elem)))
      case (Some("direction"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DirectionPropertyType](elem)))
      case (Some("DirectionVector"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DirectionVectorType](elem)))
      case (Some("track"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TrackType](elem)))
      case (Some("MovingObjectStatus"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MovingObjectStatusType](elem)))
      case (Some("status"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.StringOrRefType](elem)))
      case (Some("dataSource"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.StringOrRefType](elem)))
      case (Some("_TimeSlice"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractTimeSliceType](elem)))
      case (Some("history"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.HistoryPropertyTypable](elem)))
      case (Some("priorityLocation"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PriorityLocationPropertyType](elem)))
      case (Some("extentOf"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SurfacePropertyType](elem)))
      case (Some("edgeOf"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CurvePropertyType](elem)))
      case (Some("centerOf"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PointPropertyType](elem)))
      case (Some("LocationKeyWord"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CodeTypable](elem)))
      case (Some("_FeatureCollection"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractFeatureCollectionType](elem)))
      case (Some("featureProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.FeaturePropertyType](elem)))
      case (Some("EnvelopeWithTimePeriod"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.EnvelopeWithTimePeriodType](elem)))
      case (Some("_Feature"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractFeatureType](elem)))
      case (Some("boundedBy"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.BoundingShapeType](elem)))
      case (Some("featureMember"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.FeaturePropertyType](elem)))
      case (Some("featureMembers"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.FeatureArrayPropertyType](elem)))
      case (Some("FeatureCollection"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.FeatureCollectionTypable](elem)))
      case (Some("LocationString"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.StringOrRefType](elem)))
      case (Some("position"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PointPropertyType](elem)))
      case (Some("centerLineOf"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CurvePropertyType](elem)))
      case (Some("location"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.LocationPropertyTypable](elem)))
      case (Some("polygonMember"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PolygonPropertyType](elem)))
      case (Some("multiLocation"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiPointPropertyType](elem)))
      case (Some("multiCoverage"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiSurfacePropertyType](elem)))
      case (Some("multiCenterLineOf"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiCurvePropertyType](elem)))
      case (Some("multiCenterOf"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiPointPropertyType](elem)))
      case (Some("solidMember"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SolidPropertyType](elem)))
      case (Some("surfaceMember"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SurfacePropertyType](elem)))
      case (Some("pointMembers"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PointArrayPropertyType](elem)))
      case (Some("geometryMembers"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GeometryArrayPropertyType](elem)))
      case (Some("MultiLineString"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiLineStringType](elem)))
      case (Some("multiSolidProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiSolidPropertyType](elem)))
      case (Some("multiSurfaceProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiSurfacePropertyType](elem)))
      case (Some("multiCurveProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiCurvePropertyType](elem)))
      case (Some("multiPointProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiPointPropertyType](elem)))
      case (Some("multiGeometryProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiGeometryPropertyType](elem)))
      case (Some("_GeometricAggregate"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractGeometricAggregateType](elem)))
      case (Some("MultiGeometry"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiGeometryType](elem)))
      case (Some("MultiPoint"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiPointType](elem)))
      case (Some("MultiCurve"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiCurveType](elem)))
      case (Some("MultiSurface"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiSurfaceType](elem)))
      case (Some("MultiSolid"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiSolidType](elem)))
      case (Some("MultiPolygon"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiPolygonType](elem)))
      case (Some("geometryMember"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GeometryPropertyType](elem)))
      case (Some("pointMember"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PointPropertyType](elem)))
      case (Some("curveMembers"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CurveArrayPropertyType](elem)))
      case (Some("surfaceMembers"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SurfaceArrayPropertyType](elem)))
      case (Some("solidMembers"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SolidArrayPropertyType](elem)))
      case (Some("multiPosition"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiPointPropertyType](elem)))
      case (Some("multiEdgeOf"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiCurvePropertyType](elem)))
      case (Some("multiExtentOf"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MultiSurfacePropertyType](elem)))
      case (Some("lineStringMember"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.LineStringPropertyType](elem)))
      case (Some("lineStringProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.LineStringPropertyType](elem)))
      case (Some("Envelope"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.EnvelopeTypable](elem)))
      case (Some("vector"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.VectorType](elem)))
      case (Some("pos"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DirectPositionType](elem)))
      case (Some("curveArrayProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CurveArrayPropertyType](elem)))
      case (Some("_Curve"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractCurveType](elem)))
      case (Some("pointRep"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PointPropertyType](elem)))
      case (Some("Point"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PointType](elem)))
      case (Some("_Geometry"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractGeometryType](elem)))
      case (Some("_GeometricPrimitive"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractGeometricPrimitiveType](elem)))
      case (Some("pointProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PointPropertyType](elem)))
      case (Some("pointArrayProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PointArrayPropertyType](elem)))
      case (Some("curveProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CurvePropertyType](elem)))
      case (Some("LineString"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.LineStringType](elem)))
      case (Some("posList"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DirectPositionListType](elem)))
      case (Some("coordinates"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CoordinatesType](elem)))
      case (Some("coord"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CoordType](elem)))
      case (Some("polygonProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PolygonPropertyType](elem)))
      case (Some("innerBoundaryIs"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractRingPropertyType](elem)))
      case (Some("interior"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractRingPropertyType](elem)))
      case (Some("_Ring"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractRingType](elem)))

      case _ => None
    }
  }

  def fromAnySchemaTypeHelper3(elem: scala.xml.Elem): Option[scalaxb.DataRecord[Any]] = {
    import scalaxb.{Helper, DataRecord, fromXML}

    val ns = Helper.nullOrEmpty(elem.scope.getURI(elem.prefix))
    val key = Some(elem.label)
    val (xsns, xstype) = Helper.instanceType(elem)

    (key, ns) match {
      case (Some("surfaceArrayProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SurfaceArrayPropertyType](elem)))
      case (Some("_Surface"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractSurfaceTypable](elem)))
      case (Some("surfaceProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SurfacePropertyType](elem)))
      case (Some("Polygon"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PolygonType](elem)))
      case (Some("exterior"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractRingPropertyType](elem)))
      case (Some("outerBoundaryIs"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractRingPropertyType](elem)))
      case (Some("LinearRing"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.LinearRingType](elem)))
      case (Some("GeometricComplex"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GeometricComplexType](elem)))
      case (Some("CompositeSurface"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CompositeSurfaceType](elem)))
      case (Some("CompositeCurve"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CompositeCurveType](elem)))
      case (Some("CompositeSolid"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CompositeSolidType](elem)))
      case (Some("Solid"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SolidType](elem)))
      case (Some("solidProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SolidPropertyType](elem)))
      case (Some("Tin"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TinType](elem)))
      case (Some("trianglePatches"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TrianglePatchArrayPropertyType](elem)))
      case (Some("PolyhedralSurface"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PolyhedralSurfaceType](elem)))
      case (Some("Cylinder"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CylinderType](elem)))
      case (Some("_GriddedSurface"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractGriddedSurfaceTypable](elem)))
      case (Some("Ring"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.RingType](elem)))
      case (Some("Rectangle"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.RectangleType](elem)))
      case (Some("PolygonPatch"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PolygonPatchType](elem)))
      case (Some("_SurfacePatch"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractSurfacePatchType](elem)))
      case (Some("baseSurface"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SurfacePropertyType](elem)))
      case (Some("Bezier"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.BezierType](elem)))
      case (Some("CubicSpline"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CubicSplineType](elem)))
      case (Some("GeodesicString"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GeodesicStringTypable](elem)))
      case (Some("AffinePlacement"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AffinePlacementType](elem)))
      case (Some("CircleByCenterPoint"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CircleByCenterPointType](elem)))
      case (Some("ArcByBulge"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ArcByBulgeType](elem)))
      case (Some("Circle"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CircleType](elem)))
      case (Some("ArcString"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ArcStringTypable](elem)))
      case (Some("segments"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CurveSegmentArrayPropertyType](elem)))
      case (Some("OrientableCurve"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.OrientableCurveType](elem)))
      case (Some("Curve"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CurveType](elem)))
      case (Some("baseCurve"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CurvePropertyType](elem)))
      case (Some("_CurveSegment"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractCurveSegmentType](elem)))
      case (Some("LineStringSegment"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.LineStringSegmentType](elem)))
      case (Some("Arc"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ArcTypable](elem)))
      case (Some("ArcStringByBulge"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ArcStringByBulgeTypable](elem)))
      case (Some("ArcByCenterPoint"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ArcByCenterPointTypable](elem)))
      case (Some("OffsetCurve"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.OffsetCurveType](elem)))
      case (Some("Clothoid"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ClothoidType](elem)))
      case (Some("Geodesic"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GeodesicType](elem)))
      case (Some("BSpline"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.BSplineTypable](elem)))
      case (Some("Surface"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SurfaceTypable](elem)))
      case (Some("OrientableSurface"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.OrientableSurfaceType](elem)))
      case (Some("patches"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SurfacePatchArrayPropertyTypable](elem)))
      case (Some("Triangle"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TriangleType](elem)))
      case (Some("curveMember"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CurvePropertyType](elem)))
      case (Some("_ParametricCurveSurface"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractParametricCurveSurfaceTypable](elem)))
      case (Some("Cone"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ConeType](elem)))
      case (Some("Sphere"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SphereType](elem)))
      case (Some("polygonPatches"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PolygonPatchArrayPropertyType](elem)))
      case (Some("TriangulatedSurface"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TriangulatedSurfaceTypable](elem)))
      case (Some("_Solid"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractSolidTypable](elem)))
      case (Some("solidArrayProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.SolidArrayPropertyType](elem)))
      case (Some("description"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.StringOrRefType](elem)))
      case (Some("metaDataProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MetaDataPropertyType](elem)))
      case (Some("_reference"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ReferenceType](elem)))
      case (Some("_strictAssociation"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AssociationType](elem)))
      case (Some("GenericMetaData"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GenericMetaDataType](elem)))
      case (Some("Array"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ArrayType](elem)))
      case (Some("_GML"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractGMLType](elem)))
      case (Some("_Object"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[scalaxb.DataRecord[Any]](elem)))
      case (Some("Bag"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.BagType](elem)))
      case (Some("_MetaData"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractMetaDataType](elem)))
      case (Some("_association"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AssociationType](elem)))
      case (Some("member"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AssociationType](elem)))
      case (Some("members"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ArrayAssociationType](elem)))
      case (Some("name"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CodeTypable](elem)))
      case (Some("RectifiedGrid"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.RectifiedGridType](elem)))
      case (Some("_ImplicitGeometry"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractGeometryType](elem)))
      case (Some("Grid"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.GridTypable](elem)))
      case (Some("seconds"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[BigDecimal](elem)))
      case (Some("decimalMinutes"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[BigDecimal](elem)))
      case (Some("dmsAngle"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DMSAngleType](elem)))
      case (Some("measure"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MeasureTypable](elem)))
      case (Some("angle"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MeasureTypable](elem)))
      case (Some("degrees"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DegreesType](elem)))
      case (Some("minutes"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[BigInt](elem)))
      case (Some("DirectedObservationAtDistance"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DirectedObservationAtDistanceType](elem)))
      case (Some("Observation"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ObservationTypable](elem)))
      case (Some("subject"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TargetPropertyType](elem)))
      case (Some("using"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.FeaturePropertyType](elem)))
      case (Some("target"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TargetPropertyType](elem)))
      case (Some("resultOf"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AssociationType](elem)))
      case (Some("DirectedObservation"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DirectedObservationTypable](elem)))
      case (Some("temporalExtent"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TimePeriodType](elem)))
      case (Some("boundingPolygon"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.PolygonType](elem)))
      case (Some("validArea"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ExtentType](elem)))
      case (Some("remarks"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.StringOrRefType](elem)))
      case (Some("crsRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CRSRefType](elem)))
      case (Some("referenceSystemRef"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ReferenceSystemRefType](elem)))
      case (Some("srsName"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CodeTypable](elem)))
      case (Some("_ReferenceSystem"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractReferenceSystemType](elem)))
      case (Some("srsID"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.IdentifierType](elem)))
      case (Some("_CRS"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractReferenceSystemType](elem)))
      case (Some("version"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("scope"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("boundingBox"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.EnvelopeTypable](elem)))
      case (Some("verticalExtent"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.EnvelopeTypable](elem)))
      case (Some("validTime"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TimePrimitivePropertyTypable](elem)))
      case (Some("timeInterval"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TimeIntervalLengthType](elem)))
      case (Some("TimePeriod"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TimePeriodType](elem)))
      case (Some("_TimeGeometricPrimitive"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractTimeGeometricPrimitiveType](elem)))
      case (Some("_TimePrimitive"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractTimePrimitiveType](elem)))
      case (Some("_TimeObject"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractTimeObjectType](elem)))
      case (Some("_TimeComplex"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractTimeComplexType](elem)))
      case (Some("TimeInstant"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TimeInstantType](elem)))
      case (Some("duration"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[javax.xml.datatype.Duration](elem)))
      case (Some("timePosition"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TimePositionType](elem)))
      case (Some("TimeClock"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TimeClockType](elem)))
      case (Some("TimeCalendar"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TimeCalendarType](elem)))
      case (Some("TimeOrdinalReferenceSystem"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TimeOrdinalReferenceSystemType](elem)))
      case (Some("_TimeReferenceSystem"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractTimeReferenceSystemType](elem)))
      case (Some("TimeCoordinateSystem"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TimeCoordinateSystemType](elem)))
      case (Some("TimeOrdinalEra"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TimeOrdinalEraType](elem)))
      case (Some("TimeCalendarEra"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TimeCalendarEraType](elem)))
      case (Some("TimeEdge"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TimeEdgeType](elem)))
      case (Some("_TimeTopologyPrimitive"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractTimeTopologyPrimitiveType](elem)))
      case (Some("TimeTopologyComplex"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TimeTopologyComplexType](elem)))
      case (Some("TimeNode"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TimeNodeType](elem)))
      case (Some("topoPrimitiveMembers"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TopoPrimitiveArrayAssociationType](elem)))
      case (Some("maximalComplex"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TopoComplexMemberType](elem)))
      case (Some("subComplex"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TopoComplexMemberType](elem)))
      case (Some("TopoComplex"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TopoComplexType](elem)))
      case (Some("TopoVolume"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TopoVolumeType](elem)))
      case (Some("TopoSurface"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TopoSurfaceType](elem)))
      case (Some("TopoCurve"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TopoCurveType](elem)))
      case (Some("TopoPoint"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TopoPointType](elem)))
      case (Some("TopoSolid"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TopoSolidType](elem)))
      case (Some("Face"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.FaceType](elem)))
      case (Some("Edge"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.EdgeType](elem)))
      case (Some("Node"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.NodeType](elem)))
      case (Some("isolated"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.IsolatedPropertyType](elem)))
      case (Some("_Topology"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractTopologyType](elem)))
      case (Some("_TopoPrimitive"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.AbstractTopoPrimitiveType](elem)))
      case (Some("container"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ContainerPropertyType](elem)))
      case (Some("directedNode"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DirectedNodePropertyType](elem)))
      case (Some("directedEdge"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DirectedEdgePropertyType](elem)))
      case (Some("directedFace"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DirectedFacePropertyType](elem)))
      case (Some("directedTopoSolid"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DirectedTopoSolidPropertyType](elem)))
      case (Some("topoPointProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TopoPointPropertyType](elem)))
      case (Some("topoCurveProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TopoCurvePropertyType](elem)))
      case (Some("topoSurfaceProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TopoSurfacePropertyType](elem)))
      case (Some("topoVolumeProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TopoVolumePropertyType](elem)))
      case (Some("topoComplexProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TopoComplexMemberType](elem)))
      case (Some("superComplex"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TopoComplexMemberType](elem)))
      case (Some("topoPrimitiveMember"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.TopoPrimitiveMemberType](elem)))
      case (Some("roughConversionToPreferredUnit"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ConversionToPreferredUnitType](elem)))
      case (Some("derivationUnitTerm"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DerivationUnitTermType](elem)))
      case (Some("quantityType"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.StringOrRefType](elem)))
      case (Some("DerivedUnit"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.DerivedUnitType](elem)))
      case (Some("UnitDefinition"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.UnitDefinitionTypable](elem)))
      case (Some("unitOfMeasure"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.UnitOfMeasureTypable](elem)))
      case (Some("BaseUnit"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.BaseUnitType](elem)))
      case (Some("ConventionalUnit"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ConventionalUnitType](elem)))
      case (Some("catalogSymbol"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CodeTypable](elem)))
      case (Some("conversionToPreferredUnit"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ConversionToPreferredUnitType](elem)))
      case (Some("valueComponents"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ValueArrayPropertyType](elem)))
      case (Some("valueProperty"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ValuePropertyTypable](elem)))
      case (Some("CategoryExtent"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CategoryExtentType](elem)))
      case (Some("ValueArray"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ValueArrayType](elem)))
      case (Some("CountList"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Seq[String]](elem)))
      case (Some("QuantityList"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MeasureOrNullListTypable](elem)))
      case (Some("CategoryList"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CodeOrNullListTypable](elem)))
      case (Some("BooleanList"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Seq[String]](elem)))
      case (Some("Boolean"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Boolean](elem)))
      case (Some("Category"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CodeTypable](elem)))
      case (Some("Quantity"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.MeasureTypable](elem)))
      case (Some("Count"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[BigInt](elem)))
      case (Some("CompositeValue"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.CompositeValueTypable](elem)))
      case (Some("QuantityExtent"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.QuantityExtentType](elem)))

      case _ => None
    }
  }

  def fromAnySchemaTypeHelper4(elem: scala.xml.Elem): Option[scalaxb.DataRecord[Any]] = {
    import scalaxb.{Helper, DataRecord, fromXML}

    val ns = Helper.nullOrEmpty(elem.scope.getURI(elem.prefix))
    val key = Some(elem.label)
    val (xsns, xstype) = Helper.instanceType(elem)

    (key, ns) match {
      case (Some("CountExtent"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Seq[String]](elem)))
      case (Some("valueComponent"), Some("http://www.opengis.net/gml") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.ValuePropertyTypable](elem)))
      case (Some("set"), Some("http://www.w3.org/2001/SMIL20/Language") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.smil.SetType](elem)))
      case (Some("animateMotion"), Some("http://www.w3.org/2001/SMIL20/Language") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.smil.AnimateMotionType](elem)))
      case (Some("animate"), Some("http://www.w3.org/2001/SMIL20/Language") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.smil.AnimateType](elem)))
      case (Some("animateColor"), Some("http://www.w3.org/2001/SMIL20/Language") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.smil.AnimateColorType](elem)))
      case (Some("set"), Some("http://www.w3.org/2001/SMIL20/") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.smil.SetType](elem)))
      case (Some("animateMotion"), Some("http://www.w3.org/2001/SMIL20/") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.smil.AnimateMotionType](elem)))
      case (Some("animate"), Some("http://www.w3.org/2001/SMIL20/") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.smil.AnimateType](elem)))
      case (Some("animateColor"), Some("http://www.w3.org/2001/SMIL20/") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.gml.smil.AnimateColorType](elem)))
      case (Some("ContactInfo"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.ows.ContactType](elem)))
      case (Some("PositionName"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("IndividualName"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("Keywords"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.ows.KeywordsType](elem)))
      case (Some("Title"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("Abstract"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("PointOfContact"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.ows.ResponsiblePartyType](elem)))
      case (Some("OrganisationName"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("Role"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.ows.CodeType](elem)))
      case (Some("WGS84BoundingBox"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.ows.WGS84BoundingBoxType](elem)))
      case (Some("AbstractMetaData"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[scalaxb.DataRecord[Any]](elem)))
      case (Some("Metadata"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.ows.MetadataType](elem)))
      case (Some("BoundingBox"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.ows.BoundingBoxTypable](elem)))
      case (Some("Language"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("AccessConstraints"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("AvailableCRS"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[java.net.URI](elem)))
      case (Some("Identifier"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.ows.CodeType](elem)))
      case (Some("OutputFormat"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("SupportedCRS"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[java.net.URI](elem)))
      case (Some("Fees"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("Exception"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.ows.ExceptionType](elem)))
      case (Some("ExceptionReport"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.ows.ExceptionReport](elem)))
      case (Some("GetCapabilities"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.ows.GetCapabilitiesTypable](elem)))
      case (Some("HTTP"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.ows.HTTP](elem)))
      case (Some("Operation"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.ows.Operation](elem)))
      case (Some("OperationsMetadata"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.ows.OperationsMetadata](elem)))
      case (Some("ExtendedCapabilities"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[scalaxb.DataRecord[Any]](elem)))
      case (Some("DCP"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.ows.DCP](elem)))
      case (Some("ServiceIdentification"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.ows.ServiceIdentification](elem)))
      case (Some("ServiceProvider"), Some("http://www.opengis.net/ows") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.ows.ServiceProvider](elem)))
      case (Some("ContactInfo"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.ContactType](elem)))
      case (Some("PositionName"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("IndividualName"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("Keywords"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.KeywordsType](elem)))
      case (Some("Title"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.LanguageStringType](elem)))
      case (Some("Abstract"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.LanguageStringType](elem)))
      case (Some("PointOfContact"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.ResponsiblePartyType](elem)))
      case (Some("OrganisationName"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("Role"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.CodeTypable](elem)))
      case (Some("WGS84BoundingBox"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.WGS84BoundingBoxType](elem)))
      case (Some("AbstractMetaData"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[scalaxb.DataRecord[Any]](elem)))
      case (Some("Metadata"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.MetadataType](elem)))
      case (Some("BoundingBox"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.BoundingBoxTypable](elem)))
      case (Some("DatasetDescriptionSummary"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.DatasetDescriptionSummaryBaseTypable](elem)))
      case (Some("OtherSource"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.MetadataType](elem)))
      case (Some("Language"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("AccessConstraints"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("AvailableCRS"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[java.net.URI](elem)))
      case (Some("Identifier"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.CodeTypable](elem)))
      case (Some("OutputFormat"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("SupportedCRS"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[java.net.URI](elem)))
      case (Some("Fees"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("UOM"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.DomainMetadataType](elem)))
      case (Some("DataType"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.DomainMetadataType](elem)))
      case (Some("Spacing"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.ValueType](elem)))
      case (Some("MinimumValue"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.ValueType](elem)))
      case (Some("DefaultValue"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.ValueType](elem)))
      case (Some("AllowedValues"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.AllowedValues](elem)))
      case (Some("NoValues"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.NoValues](elem)))
      case (Some("AnyValue"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.AnyValue](elem)))
      case (Some("ValuesReference"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.ValuesReference](elem)))
      case (Some("Value"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.ValueType](elem)))
      case (Some("Range"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.RangeType](elem)))
      case (Some("MaximumValue"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.ValueType](elem)))
      case (Some("Meaning"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.DomainMetadataType](elem)))
      case (Some("ReferenceSystem"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.DomainMetadataType](elem)))
      case (Some("Exception"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.ExceptionType](elem)))
      case (Some("ExceptionReport"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.ExceptionReport](elem)))
      case (Some("GetCapabilities"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.GetCapabilitiesTypable](elem)))
      case (Some("GetResourceByID"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.GetResourceByIdType](elem)))
      case (Some("Resource"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[scalaxb.DataRecord[Any]](elem)))
      case (Some("ServiceReference"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.ServiceReferenceType](elem)))
      case (Some("OperationResponse"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.ManifestType](elem)))
      case (Some("InputData"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.ManifestType](elem)))
      case (Some("Manifest"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.ManifestType](elem)))
      case (Some("Reference"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.ReferenceTypable](elem)))
      case (Some("AbstractReferenceBase"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.AbstractReferenceBaseTypable](elem)))
      case (Some("ReferenceGroup"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.ReferenceGroupType](elem)))
      case (Some("HTTP"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.HTTP](elem)))
      case (Some("Operation"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.Operation](elem)))
      case (Some("OperationsMetadata"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.OperationsMetadata](elem)))
      case (Some("ExtendedCapabilities"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[scalaxb.DataRecord[Any]](elem)))
      case (Some("DCP"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.DCP](elem)))
      case (Some("ServiceIdentification"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.ServiceIdentification](elem)))
      case (Some("ServiceProvider"), Some("http://www.opengis.net/ows/1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.ServiceProvider](elem)))
      case (Some("MaxScaleDenominator"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Double](elem)))
      case (Some("ElseFilter"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ElseFilterType](elem)))
      case (Some("Rule"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.RuleType](elem)))
      case (Some("CoverageStyle"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.CoverageStyleType](elem)))
      case (Some("FeatureTypeStyle"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.FeatureTypeStyleType](elem)))
      case (Some("SemanticTypeIdentifier"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("LegendGraphic"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.LegendGraphicType](elem)))
      case (Some("MinScaleDenominator"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Double](elem)))
      case (Some("MapItem"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.MapItemType](elem)))
      case (Some("Data"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Double](elem)))
      case (Some("Interpolate"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.InterpolateType](elem)))
      case (Some("Value"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("Categorize"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.CategorizeType](elem)))
      case (Some("LookupString"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("Trim"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.TrimType](elem)))
      case (Some("Concatenate"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ConcatenateType](elem)))
      case (Some("Length"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("Substring"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.SubstringType](elem)))
      case (Some("FormatDate"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.FormatDateType](elem)))
      case (Some("Pattern"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("FormatNumber"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.FormatNumberType](elem)))
      case (Some("ImageOutline"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ImageOutlineType](elem)))
      case (Some("BrightnessOnly"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Boolean](elem)))
      case (Some("GammaValue"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Double](elem)))
      case (Some("Normalize"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.NormalizeType](elem)))
      case (Some("ColorMap"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ColorMapType](elem)))
      case (Some("SourceChannelName"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("BlueChannel"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.SelectedChannelType](elem)))
      case (Some("RedChannel"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.SelectedChannelType](elem)))
      case (Some("RasterSymbolizer"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.RasterSymbolizerType](elem)))
      case (Some("Halo"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.HaloType](elem)))
      case (Some("IsAligned"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Boolean](elem)))
      case (Some("GeneralizeLine"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Boolean](elem)))
      case (Some("DisplacementY"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("Displacement"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.DisplacementType](elem)))
      case (Some("AnchorPointX"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("PointPlacement"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.PointPlacementType](elem)))
      case (Some("Font"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.FontType](elem)))
      case (Some("TextSymbolizer"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.TextSymbolizerType](elem)))
      case (Some("WellKnownName"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("ColorReplacement"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ColorReplacementType](elem)))
      case (Some("ExternalGraphic"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ExternalGraphicType](elem)))
      case (Some("Size"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("Graphic"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.GraphicType](elem)))
      case (Some("Fill"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.FillType](elem)))
      case (Some("Gap"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("GraphicStroke"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.GraphicStrokeType](elem)))
      case (Some("SvgParameter"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.SvgParameterType](elem)))
      case (Some("Geometry"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.GeometryType](elem)))
      case (Some("BaseSymbolizer"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.BaseSymbolizerType](elem)))
      case (Some("Symbolizer"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.SymbolizerType](elem)))
      case (Some("LineSymbolizer"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.LineSymbolizerType](elem)))
      case (Some("Stroke"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.StrokeType](elem)))
      case (Some("GraphicFill"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.GraphicFillType](elem)))
      case (Some("InitialGap"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("PolygonSymbolizer"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.PolygonSymbolizerType](elem)))
      case (Some("PointSymbolizer"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.PointSymbolizerType](elem)))
      case (Some("Opacity"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("Rotation"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("Format"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("Mark"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.MarkType](elem)))
      case (Some("MarkIndex"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[BigInt](elem)))
      case (Some("Label"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("LabelPlacement"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.LabelPlacementType](elem)))
      case (Some("AnchorPoint"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.AnchorPointType](elem)))
      case (Some("AnchorPointY"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("DisplacementX"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("LinePlacement"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.LinePlacementType](elem)))
      case (Some("IsRepeated"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Boolean](elem)))
      case (Some("PerpendicularOffset"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("Radius"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("ChannelSelection"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ChannelSelectionType](elem)))
      case (Some("GreenChannel"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.SelectedChannelType](elem)))
      case (Some("GrayChannel"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.SelectedChannelType](elem)))
      case (Some("OverlapBehavior"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.OverlapBehavior](elem)))
      case (Some("ContrastEnhancement"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ContrastEnhancementType](elem)))
      case (Some("Histogram"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.HistogramType](elem)))
      case (Some("ShadedRelief"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ShadedReliefType](elem)))

      case _ => None
    }
  }

  def fromAnySchemaTypeHelper5(elem: scala.xml.Elem): Option[scalaxb.DataRecord[Any]] = {
    import scalaxb.{Helper, DataRecord, fromXML}

    val ns = Helper.nullOrEmpty(elem.scope.getURI(elem.prefix))
    val key = Some(elem.label)
    val (xsns, xstype) = Helper.instanceType(elem)

    (key, ns) match {
      case (Some("ReliefFactor"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Double](elem)))
      case (Some("Function"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.FunctionType](elem)))
      case (Some("NumericValue"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("NegativePattern"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("DateValue"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("Position"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("StringValue"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("ChangeCase"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ChangeCaseType](elem)))
      case (Some("StringPosition"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.StringPositionType](elem)))
      case (Some("StringLength"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.StringLengthType](elem)))
      case (Some("LookupValue"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("Threshold"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.ParameterValueTypable](elem)))
      case (Some("InterpolationPoint"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.InterpolationPointType](elem)))
      case (Some("Recode"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.RecodeType](elem)))
      case (Some("InlineContent"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.InlineContentType](elem)))
      case (Some("CoverageName"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("Description"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.DescriptionType](elem)))
      case (Some("Name"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("FeatureTypeName"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[javax.xml.namespace.QName](elem)))
      case (Some("OnlineResource"), Some("http://www.opengis.net/se") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.se.OnlineResourceType](elem)))
      case (Some("DescribeLayerResponse"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.DescribeLayerResponseType](elem)))
      case (Some("GetMap"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.GetMapType](elem)))
      case (Some("IsDefault"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Boolean](elem)))
      case (Some("Extent"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.Extent](elem)))
      case (Some("Value"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("CoverageExtent"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.CoverageExtent](elem)))
      case (Some("LayerCoverageConstraints"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.LayerCoverageConstraints](elem)))
      case (Some("LayerFeatureConstraints"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.LayerFeatureConstraints](elem)))
      case (Some("Service"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.Service](elem)))
      case (Some("UserLayer"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.UserLayer](elem)))
      case (Some("NamedLayer"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.NamedLayer](elem)))
      case (Some("StyledLayerDescriptor"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.StyledLayerDescriptor](elem)))
      case (Some("UseSLDLibrary"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.UseSLDLibrary](elem)))
      case (Some("NamedStyle"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.NamedStyle](elem)))
      case (Some("RemoteOWS"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.RemoteOWS](elem)))
      case (Some("InlineFeature"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.InlineFeature](elem)))
      case (Some("FeatureTypeConstraint"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.FeatureTypeConstraint](elem)))
      case (Some("CoverageConstraint"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.CoverageConstraint](elem)))
      case (Some("RangeAxis"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.RangeAxis](elem)))
      case (Some("TimePeriod"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("UserStyle"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.UserStyle](elem)))
      case (Some("GetLegendGraphic"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.OperationType](elem)))
      case (Some("UserDefinedSymbolization"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.sld.UserDefinedSymbolization](elem)))
      case (Some("DescribeLayer"), Some("http://www.opengis.net/sld") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.OperationType](elem)))
      case (Some("Identifier"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("CoverageSummary"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wcs.CoverageSummaryType](elem)))
      case (Some("Contents"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wcs.Contents](elem)))
      case (Some("Coverage"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ows.ReferenceGroupType](elem)))
      case (Some("Coverages"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wcs.CoveragesType](elem)))
      case (Some("AvailableKeys"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wcs.AvailableKeys](elem)))
      case (Some("CoverageDescriptions"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wcs.CoverageDescriptions](elem)))
      case (Some("DescribeCoverage"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wcs.DescribeCoverage](elem)))
      case (Some("TemporalDomain"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wcs.TimeSequenceType](elem)))
      case (Some("Capabilities"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wcs.Capabilities](elem)))
      case (Some("GetCapabilities"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wcs.GetCapabilities](elem)))
      case (Some("AxisSubset"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wcs.AxisSubset](elem)))
      case (Some("GetCoverage"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wcs.GetCoverage](elem)))
      case (Some("TemporalSubset"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wcs.TimeSequenceType](elem)))
      case (Some("GridCS"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[java.net.URI](elem)))
      case (Some("GridOrigin"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Seq[Double]](elem)))
      case (Some("GridBaseCRS"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[java.net.URI](elem)))
      case (Some("GridCRS"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wcs.GridCrsType](elem)))
      case (Some("GridType"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[java.net.URI](elem)))
      case (Some("GridOffsets"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Seq[Double]](elem)))
      case (Some("InterpolationMethods"), Some("http://www.opengis.net/wcs/1.1.1") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wcs.InterpolationMethods](elem)))
      case (Some("TransactionResponse"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.TransactionResponseType](elem)))
      case (Some("Delete"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.DeleteElementType](elem)))
      case (Some("Update"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.UpdateElementType](elem)))
      case (Some("LockId"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("LockFeatureResponse"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.LockFeatureResponseType](elem)))
      case (Some("GetFeatureWithLock"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.GetFeatureWithLockType](elem)))
      case (Some("FeatureCollection"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.FeatureCollectionType](elem)))
      case (Some("GetFeature"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.GetFeatureType](elem)))
      case (Some("SupportsGMLObjectTypeList"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.GMLObjectTypeListType](elem)))
      case (Some("FeatureTypeList"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.FeatureTypeListType](elem)))
      case (Some("GetCapabilities"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.GetCapabilitiesType](elem)))
      case (Some("PropertyName"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("XlinkPropertyName"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.XlinkPropertyName](elem)))
      case (Some("WFS_Capabilities"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.WFS_CapabilitiesType](elem)))
      case (Some("ServesGMLObjectTypeList"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.GMLObjectTypeListType](elem)))
      case (Some("DescribeFeatureType"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.DescribeFeatureTypeType](elem)))
      case (Some("Query"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.QueryType](elem)))
      case (Some("GetGmlObject"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.GetGmlObjectType](elem)))
      case (Some("LockFeature"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.LockFeatureType](elem)))
      case (Some("Transaction"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.TransactionType](elem)))
      case (Some("Insert"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.InsertElementType](elem)))
      case (Some("Property"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.PropertyType](elem)))
      case (Some("Native"), Some("http://www.opengis.net/wfs") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wfs.NativeType](elem)))
      case (Some("MaxScaleDenominator"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Double](elem)))
      case (Some("StyleURL"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.StyleURL](elem)))
      case (Some("LegendURL"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.LegendURL](elem)))
      case (Some("FeatureListURL"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.FeatureListURL](elem)))
      case (Some("Identifier"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.Identifier](elem)))
      case (Some("MetadataURL"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.MetadataURL](elem)))
      case (Some("Attribution"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.Attribution](elem)))
      case (Some("BoundingBox"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.BoundingBox](elem)))
      case (Some("CRS"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("_ExtendedCapabilities"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[scalaxb.DataRecord[Any]](elem)))
      case (Some("Post"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.Post](elem)))
      case (Some("HTTP"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.HTTP](elem)))
      case (Some("_ExtendedOperation"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.OperationType](elem)))
      case (Some("GetMap"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.OperationType](elem)))
      case (Some("Request"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.Request](elem)))
      case (Some("MaxHeight"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[BigInt](elem)))
      case (Some("LayerLimit"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[BigInt](elem)))
      case (Some("Fees"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("ContactFacsimileTelephone"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("Country"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("StateOrProvince"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("Address"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("ContactAddress"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.ContactAddress](elem)))
      case (Some("ContactOrganization"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("ContactPersonPrimary"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.ContactPersonPrimary](elem)))
      case (Some("Service"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.Service](elem)))
      case (Some("OnlineResource"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.OnlineResource](elem)))
      case (Some("KeywordList"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.KeywordList](elem)))
      case (Some("Title"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("WMS_Capabilities"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.WMS_Capabilities](elem)))
      case (Some("Name"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("Abstract"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("Keyword"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.Keyword](elem)))
      case (Some("Format"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("ContactInformation"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.ContactInformation](elem)))
      case (Some("ContactPerson"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("ContactPosition"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("AddressType"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("City"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("PostCode"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("ContactVoiceTelephone"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("ContactElectronicMailAddress"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("AccessConstraints"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[String](elem)))
      case (Some("MaxWidth"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[BigInt](elem)))
      case (Some("Capability"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.Capability](elem)))
      case (Some("GetCapabilities"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.OperationType](elem)))
      case (Some("GetFeatureInfo"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.OperationType](elem)))
      case (Some("DCPType"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.DCPType](elem)))
      case (Some("Get"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.Get](elem)))
      case (Some("Exception"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.Exception](elem)))
      case (Some("Layer"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.Layer](elem)))
      case (Some("EX_GeographicBoundingBox"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.EX_GeographicBoundingBox](elem)))
      case (Some("Dimension"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.Dimension](elem)))
      case (Some("LogoURL"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.LogoURL](elem)))
      case (Some("AuthorityURL"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.AuthorityURL](elem)))
      case (Some("DataURL"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.DataURL](elem)))
      case (Some("Style"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.Style](elem)))
      case (Some("StyleSheetURL"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wms.StyleSheetURL](elem)))
      case (Some("MinScaleDenominator"), Some("http://www.opengis.net/wms") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[Double](elem)))
      case (Some("ServiceExceptionReport"), Some("http://www.opengis.net/ogc") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.ogc.ServiceExceptionReport](elem)))
      case (Some("GetCapabilities"), Some("http://www.opengis.net/wmts/1.0") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wmts.GetCapabilities](elem)))
      case (Some("Theme"), Some("http://www.opengis.net/wmts/1.0") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wmts.Theme](elem)))
      case (Some("TileMatrix"), Some("http://www.opengis.net/wmts/1.0") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wmts.TileMatrix](elem)))
      case (Some("TileMatrixLimits"), Some("http://www.opengis.net/wmts/1.0") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wmts.TileMatrixLimits](elem)))
      case (Some("TileMatrixSetLink"), Some("http://www.opengis.net/wmts/1.0") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wmts.TileMatrixSetLink](elem)))
      case (Some("LegendURL"), Some("http://www.opengis.net/wmts/1.0") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wmts.LegendURL](elem)))
      case (Some("Layer"), Some("http://www.opengis.net/wmts/1.0") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wmts.LayerType](elem)))
      case (Some("Capabilities"), Some("http://www.opengis.net/wmts/1.0") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wmts.Capabilities](elem)))
      case (Some("Style"), Some("http://www.opengis.net/wmts/1.0") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wmts.Style](elem)))
      case (Some("Dimension"), Some("http://www.opengis.net/wmts/1.0") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wmts.Dimension](elem)))
      case (Some("TileMatrixSetLimits"), Some("http://www.opengis.net/wmts/1.0") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wmts.TileMatrixSetLimits](elem)))
      case (Some("TileMatrixSet"), Some("http://www.opengis.net/wmts/1.0") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wmts.TileMatrixSet](elem)))
      case (Some("Themes"), Some("http://www.opengis.net/wmts/1.0") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wmts.Themes](elem)))
      case (Some("GetFeatureInfo"), Some("http://www.opengis.net/wmts/1.0") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wmts.GetFeatureInfo](elem)))
      case (Some("FeatureInfoResponse"), Some("http://www.opengis.net/wmts/1.0") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wmts.FeatureInfoResponse](elem)))
      case (Some("DimensionNameValue"), Some("http://www.opengis.net/wmts/1.0") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wmts.DimensionNameValue](elem)))
      case (Some("GetTile"), Some("http://www.opengis.net/wmts/1.0") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wmts.GetTile](elem)))
      case (Some("TextPayload"), Some("http://www.opengis.net/wmts/1.0") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wmts.TextPayload](elem)))
      case (Some("BinaryPayload"), Some("http://www.opengis.net/wmts/1.0") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[opengis.wmts.BinaryPayload](elem)))
      case (Some("arc"), Some("http://www.w3.org/1999/xlink") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[xlink.ArcType](elem)))
      case (Some("resource"), Some("http://www.w3.org/1999/xlink") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[xlink.ResourceType](elem)))
      case (Some("title"), Some("http://www.w3.org/1999/xlink") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[xlink.TitleEltType](elem)))
      case (Some("locator"), Some("http://www.w3.org/1999/xlink") | None) => Some(DataRecord(ns, key, xsns, xstype, fromXML[xlink.LocatorType](elem)))

      case _ => None
    }
  }


  implicit val fromAnySchemaType: scala.xml.Elem => Option[scalaxb.DataRecord[Any]] = {elem =>
    fromAnySchemaTypeHelper1(elem) match {
      case None => fromAnySchemaTypeHelper2(elem) match {
        case None => fromAnySchemaTypeHelper3(elem) match {
          case None => fromAnySchemaTypeHelper4(elem) match {
            case None => fromAnySchemaTypeHelper5(elem)
            case result => result
          }
          case result => result
        }
        case result => result
      }
      case result => result
    }
  }

  trait DefaultOpengisogc_ExpressionTypeFormat extends scalaxb.XMLFormat[opengis.ogc.ExpressionType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.ExpressionType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/ogc"), Some("LiteralType")) => Right(scalaxb.fromXML[opengis.ogc.LiteralType](node, stack))
          case (Some("http://www.opengis.net/ogc"), Some("BinaryOperatorType")) => Right(scalaxb.fromXML[opengis.ogc.BinaryOperatorType](node, stack))
          case (Some("http://www.opengis.net/ogc"), Some("FunctionType")) => Right(scalaxb.fromXML[opengis.ogc.FunctionType](node, stack))
          case (Some("http://www.opengis.net/ogc"), Some("PropertyNameType")) => Right(scalaxb.fromXML[opengis.ogc.PropertyNameType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("FunctionType")) => Right(scalaxb.fromXML[opengis.se.FunctionType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("RecodeType")) => Right(scalaxb.fromXML[opengis.se.RecodeType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("InterpolateType")) => Right(scalaxb.fromXML[opengis.se.InterpolateType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("CategorizeType")) => Right(scalaxb.fromXML[opengis.se.CategorizeType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("ConcatenateType")) => Right(scalaxb.fromXML[opengis.se.ConcatenateType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("FormatDateType")) => Right(scalaxb.fromXML[opengis.se.FormatDateType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("FormatNumberType")) => Right(scalaxb.fromXML[opengis.se.FormatNumberType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("SubstringType")) => Right(scalaxb.fromXML[opengis.se.SubstringType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("ChangeCaseType")) => Right(scalaxb.fromXML[opengis.se.ChangeCaseType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("TrimType")) => Right(scalaxb.fromXML[opengis.se.TrimType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("StringPositionType")) => Right(scalaxb.fromXML[opengis.se.StringPositionType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("StringLengthType")) => Right(scalaxb.fromXML[opengis.se.StringLengthType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("InterpolationPointType")) => Right(scalaxb.fromXML[opengis.se.InterpolationPointType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("MapItemType")) => Right(scalaxb.fromXML[opengis.se.MapItemType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.ogc.ExpressionType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.ogc.LiteralType => scalaxb.toXML[opengis.ogc.LiteralType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ogc.BinaryOperatorType => scalaxb.toXML[opengis.ogc.BinaryOperatorType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ogc.FunctionType => scalaxb.toXML[opengis.ogc.FunctionType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ogc.PropertyNameType => scalaxb.toXML[opengis.ogc.PropertyNameType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.se.FunctionType => scalaxb.toXML[opengis.se.FunctionType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.se.InterpolationPointType => scalaxb.toXML[opengis.se.InterpolationPointType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.se.MapItemType => scalaxb.toXML[opengis.se.MapItemType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisogc_BinaryOperatorTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.BinaryOperatorType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("BinaryOperatorType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.BinaryOperatorType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/se"), "MapItem")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.MapItemType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "InterpolationPoint")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.InterpolationPointType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Function")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.FunctionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Div")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Sub")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Add")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Mul")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.PropertyNameType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Literal")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.LiteralType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.ogc.BinaryOperatorType(p1) })
    
    def writesChildNodes(__obj: opengis.ogc.BinaryOperatorType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.expression flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisogc_FunctionTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.FunctionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("FunctionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.FunctionType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/se"), "MapItem")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.MapItemType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "InterpolationPoint")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.InterpolationPointType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Function")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.FunctionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Div")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Sub")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Add")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Mul")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.PropertyNameType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Literal")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.LiteralType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.ogc.FunctionType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@name").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@name" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.ogc.FunctionType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@name", _) => attr = scala.xml.Attribute(null, "name", __obj.name.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ogc.FunctionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.expression flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisogc_LiteralTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.LiteralType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("LiteralType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.LiteralType] =
      phrase(opt(any(_ => true)) ^^
      { case p1 =>
      opengis.ogc.LiteralType(p1.headOption map { scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ogc.LiteralType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.any map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, true) } getOrElse {Nil})

  }

  trait DefaultOpengisogc_PropertyNameTypeFormat extends scalaxb.XMLFormat[opengis.ogc.PropertyNameType] with scalaxb.CanWriteChildNodes[opengis.ogc.PropertyNameType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.PropertyNameType] = seq match {
      case node: scala.xml.Node => Right(opengis.ogc.PropertyNameType())
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def writesChildNodes(__obj: opengis.ogc.PropertyNameType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisogc_FilterTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.FilterType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("FilterType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.FilterType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "BBOX")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BBOXType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "DWithin")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.DistanceBufferType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Intersects")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Overlaps")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Touches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Equals")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Disjoint")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Within")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Crosses")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Contains")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Beyond")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.DistanceBufferType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsBetween")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.PropertyIsBetweenType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsLike")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.PropertyIsLikeType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsLessThanOrEqualTo")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryComparisonOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsLessThan")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryComparisonOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsEqualTo")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryComparisonOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsNotEqualTo")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryComparisonOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsGreaterThan")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryComparisonOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsGreaterThanOrEqualTo")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryComparisonOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsNull")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.PropertyIsNullType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Not")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.UnaryLogicOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "And")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryLogicOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Or")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryLogicOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "FeatureId")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.FeatureIdType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "GmlObjectId")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.GmlObjectIdType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.ogc.FilterType(p1) })
    
    def writesChildNodes(__obj: opengis.ogc.FilterType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.filtertypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.ogc.FilterTypeOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisogc_ComparisonOpsTypeFormat extends scalaxb.XMLFormat[opengis.ogc.ComparisonOpsType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.ComparisonOpsType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/ogc"), Some("PropertyIsNullType")) => Right(scalaxb.fromXML[opengis.ogc.PropertyIsNullType](node, stack))
          case (Some("http://www.opengis.net/ogc"), Some("BinaryComparisonOpType")) => Right(scalaxb.fromXML[opengis.ogc.BinaryComparisonOpType](node, stack))
          case (Some("http://www.opengis.net/ogc"), Some("PropertyIsLikeType")) => Right(scalaxb.fromXML[opengis.ogc.PropertyIsLikeType](node, stack))
          case (Some("http://www.opengis.net/ogc"), Some("PropertyIsBetweenType")) => Right(scalaxb.fromXML[opengis.ogc.PropertyIsBetweenType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.ogc.ComparisonOpsType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.ogc.PropertyIsNullType => scalaxb.toXML[opengis.ogc.PropertyIsNullType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ogc.BinaryComparisonOpType => scalaxb.toXML[opengis.ogc.BinaryComparisonOpType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ogc.PropertyIsLikeType => scalaxb.toXML[opengis.ogc.PropertyIsLikeType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ogc.PropertyIsBetweenType => scalaxb.toXML[opengis.ogc.PropertyIsBetweenType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisogc_SpatialOpsTypeFormat extends scalaxb.XMLFormat[opengis.ogc.SpatialOpsType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.SpatialOpsType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/ogc"), Some("DistanceBufferType")) => Right(scalaxb.fromXML[opengis.ogc.DistanceBufferType](node, stack))
          case (Some("http://www.opengis.net/ogc"), Some("BinarySpatialOpType")) => Right(scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](node, stack))
          case (Some("http://www.opengis.net/ogc"), Some("BBOXType")) => Right(scalaxb.fromXML[opengis.ogc.BBOXType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.ogc.SpatialOpsType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.ogc.DistanceBufferType => scalaxb.toXML[opengis.ogc.DistanceBufferType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ogc.BinarySpatialOpType => scalaxb.toXML[opengis.ogc.BinarySpatialOpType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ogc.BBOXType => scalaxb.toXML[opengis.ogc.BBOXType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisogc_LogicOpsTypeFormat extends scalaxb.XMLFormat[opengis.ogc.LogicOpsType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.LogicOpsType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/ogc"), Some("BinaryLogicOpType")) => Right(scalaxb.fromXML[opengis.ogc.BinaryLogicOpType](node, stack))
          case (Some("http://www.opengis.net/ogc"), Some("UnaryLogicOpType")) => Right(scalaxb.fromXML[opengis.ogc.UnaryLogicOpType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.ogc.LogicOpsType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.ogc.BinaryLogicOpType => scalaxb.toXML[opengis.ogc.BinaryLogicOpType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ogc.UnaryLogicOpType => scalaxb.toXML[opengis.ogc.UnaryLogicOpType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisogc_AbstractIdTypeFormat extends scalaxb.XMLFormat[opengis.ogc.AbstractIdType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.AbstractIdType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/ogc"), Some("FeatureIdType")) => Right(scalaxb.fromXML[opengis.ogc.FeatureIdType](node, stack))
          case (Some("http://www.opengis.net/ogc"), Some("GmlObjectIdType")) => Right(scalaxb.fromXML[opengis.ogc.GmlObjectIdType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.ogc.AbstractIdType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.ogc.FeatureIdType => scalaxb.toXML[opengis.ogc.FeatureIdType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ogc.GmlObjectIdType => scalaxb.toXML[opengis.ogc.GmlObjectIdType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisogc_FeatureIdTypeFormat extends scalaxb.XMLFormat[opengis.ogc.FeatureIdType] with scalaxb.CanWriteChildNodes[opengis.ogc.FeatureIdType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.FeatureIdType] = seq match {
      case node: scala.xml.Node => Right(opengis.ogc.FeatureIdType(scala.collection.immutable.ListMap(List(
        (node \ "@fid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@fid" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.ogc.FeatureIdType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@fid", _) => attr = scala.xml.Attribute(null, "fid", __obj.fid.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ogc.FeatureIdType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisogc_GmlObjectIdTypeFormat extends scalaxb.XMLFormat[opengis.ogc.GmlObjectIdType] with scalaxb.CanWriteChildNodes[opengis.ogc.GmlObjectIdType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.GmlObjectIdType] = seq match {
      case node: scala.xml.Node => Right(opengis.ogc.GmlObjectIdType(scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.ogc.GmlObjectIdType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", __obj.gmlid.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ogc.GmlObjectIdType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisogc_BinaryComparisonOpTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.BinaryComparisonOpType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("BinaryComparisonOpType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.BinaryComparisonOpType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/se"), "MapItem")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.MapItemType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "InterpolationPoint")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.InterpolationPointType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Function")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.FunctionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Div")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Sub")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Add")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Mul")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.PropertyNameType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Literal")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.LiteralType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.ogc.BinaryComparisonOpType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@matchCase").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[Boolean](scala.xml.Text("true"), scalaxb.ElemName(node) :: stack))) map { "@matchCase" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.ogc.BinaryComparisonOpType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@matchCase", _) => if (__obj.matchCase.toString != "true") attr = scala.xml.Attribute(null, "matchCase", __obj.matchCase.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ogc.BinaryComparisonOpType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.expression flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisogc_PropertyIsLikeTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.PropertyIsLikeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("PropertyIsLikeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.PropertyIsLikeType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyName")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Literal")) ^^
      { case p1 ~ p2 =>
      opengis.ogc.PropertyIsLikeType(scalaxb.fromXML[opengis.ogc.PropertyNameType](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.ogc.LiteralType](p2, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@wildCard").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@wildCard" -> _ },
        (node \ "@singleChar").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@singleChar" -> _ },
        (node \ "@escapeChar").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@escapeChar" -> _ },
        (node \ "@matchCase").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[Boolean](scala.xml.Text("true"), scalaxb.ElemName(node) :: stack))) map { "@matchCase" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.ogc.PropertyIsLikeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@wildCard", _) => attr = scala.xml.Attribute(null, "wildCard", __obj.wildCard.toString, attr)
        case ("@singleChar", _) => attr = scala.xml.Attribute(null, "singleChar", __obj.singleChar.toString, attr)
        case ("@escapeChar", _) => attr = scala.xml.Attribute(null, "escapeChar", __obj.escapeChar.toString, attr)
        case ("@matchCase", _) => if (__obj.matchCase.toString != "true") attr = scala.xml.Attribute(null, "matchCase", __obj.matchCase.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ogc.PropertyIsLikeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.ogc.PropertyNameType](__obj.PropertyName, Some("http://www.opengis.net/ogc"), Some("PropertyName"), __scope, false),
        scalaxb.toXML[opengis.ogc.LiteralType](__obj.Literal, Some("http://www.opengis.net/ogc"), Some("Literal"), __scope, false))

  }

  trait DefaultOpengisogc_PropertyIsNullTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.PropertyIsNullType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("PropertyIsNullType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.PropertyIsNullType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyName")) ^^
      { case p1 =>
      opengis.ogc.PropertyIsNullType(scalaxb.fromXML[opengis.ogc.PropertyNameType](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.ogc.PropertyIsNullType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.ogc.PropertyNameType](__obj.PropertyName, Some("http://www.opengis.net/ogc"), Some("PropertyName"), __scope, false))

  }

  trait DefaultOpengisogc_PropertyIsBetweenTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.PropertyIsBetweenType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("PropertyIsBetweenType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.PropertyIsBetweenType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/se"), "MapItem")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.MapItemType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "InterpolationPoint")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.InterpolationPointType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Function")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.FunctionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Div")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Sub")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Add")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Mul")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.PropertyNameType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Literal")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.LiteralType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "LowerBoundary")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "UpperBoundary")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.ogc.PropertyIsBetweenType(p1,
        scalaxb.fromXML[opengis.ogc.LowerBoundaryType](p2, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.ogc.UpperBoundaryType](p3, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.ogc.PropertyIsBetweenType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat((Some(__obj.expression) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get,
        scalaxb.toXML[opengis.ogc.LowerBoundaryType](__obj.LowerBoundary, Some("http://www.opengis.net/ogc"), Some("LowerBoundary"), __scope, false),
        scalaxb.toXML[opengis.ogc.UpperBoundaryType](__obj.UpperBoundary, Some("http://www.opengis.net/ogc"), Some("UpperBoundary"), __scope, false))

  }

  trait DefaultOpengisogc_LowerBoundaryTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.LowerBoundaryType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("LowerBoundaryType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.LowerBoundaryType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/se"), "MapItem")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.MapItemType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "InterpolationPoint")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.InterpolationPointType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Function")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.FunctionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Div")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Sub")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Add")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Mul")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.PropertyNameType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Literal")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.LiteralType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.ogc.LowerBoundaryType(p1) })
    
    def writesChildNodes(__obj: opengis.ogc.LowerBoundaryType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.lowerboundarytypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.ogc.ExpressionType]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisogc_UpperBoundaryTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.UpperBoundaryType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("UpperBoundaryType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.UpperBoundaryType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/se"), "MapItem")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.MapItemType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "InterpolationPoint")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.InterpolationPointType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Function")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.FunctionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Div")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Sub")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Add")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Mul")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.PropertyNameType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Literal")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.LiteralType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.ogc.UpperBoundaryType(p1) })
    
    def writesChildNodes(__obj: opengis.ogc.UpperBoundaryType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.expression) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisogc_BinarySpatialOpTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.BinarySpatialOpType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("BinarySpatialOpType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.BinarySpatialOpType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyName")) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.PropertyNameType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeometricComplex")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeometricComplexType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Envelope")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.EnvelopeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "EnvelopeWithTimePeriod")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.EnvelopeWithTimePeriodType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 =>
      opengis.ogc.BinarySpatialOpType(scalaxb.fromXML[opengis.ogc.PropertyNameType](p1, scalaxb.ElemName(node) :: stack),
        p2) })
    
    def writesChildNodes(__obj: opengis.ogc.BinarySpatialOpType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.ogc.PropertyNameType](__obj.PropertyName, Some("http://www.opengis.net/ogc"), Some("PropertyName"), __scope, false),
        (Some(__obj.binaryspatialoptypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisogc_BBOXTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.BBOXType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("BBOXType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.BBOXType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyName")) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Envelope")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.EnvelopeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "EnvelopeWithTimePeriod")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.EnvelopeWithTimePeriodType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "EnvelopeWithTimePeriod")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.EnvelopeWithTimePeriodType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 =>
      opengis.ogc.BBOXType(p1.headOption map { scalaxb.fromXML[opengis.ogc.PropertyNameType](_, scalaxb.ElemName(node) :: stack) },
        p2) })
    
    def writesChildNodes(__obj: opengis.ogc.BBOXType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.PropertyName map { scalaxb.toXML[opengis.ogc.PropertyNameType](_, Some("http://www.opengis.net/ogc"), Some("PropertyName"), __scope, false) } getOrElse {Nil},
        (Some(__obj.Envelope) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisogc_DistanceBufferTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.DistanceBufferType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("DistanceBufferType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.DistanceBufferType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyName")) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeometricComplex")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeometricComplexType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Distance")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.ogc.DistanceBufferType(scalaxb.fromXML[opengis.ogc.PropertyNameType](p1, scalaxb.ElemName(node) :: stack),
        p2,
        scalaxb.fromXML[opengis.ogc.DistanceType](p3, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.ogc.DistanceBufferType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.ogc.PropertyNameType](__obj.PropertyName, Some("http://www.opengis.net/ogc"), Some("PropertyName"), __scope, false),
        (Some(__obj._Geometry) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get,
        scalaxb.toXML[opengis.ogc.DistanceType](__obj.Distance, Some("http://www.opengis.net/ogc"), Some("Distance"), __scope, false))

  }

  trait DefaultOpengisogc_DistanceTypeFormat extends scalaxb.XMLFormat[opengis.ogc.DistanceType] with scalaxb.CanWriteChildNodes[opengis.ogc.DistanceType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.DistanceType] = seq match {
      case node: scala.xml.Node => Right(opengis.ogc.DistanceType(scalaxb.fromXML[Double](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@units").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@units" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.ogc.DistanceType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@units", _) => attr = scala.xml.Attribute(null, "units", __obj.units.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ogc.DistanceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisogc_BinaryLogicOpTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.BinaryLogicOpType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("BinaryLogicOpType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.BinaryLogicOpType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsBetween")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.PropertyIsBetweenType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsLike")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.PropertyIsLikeType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsLessThanOrEqualTo")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryComparisonOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsLessThan")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryComparisonOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsEqualTo")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryComparisonOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsNotEqualTo")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryComparisonOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsGreaterThan")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryComparisonOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsGreaterThanOrEqualTo")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryComparisonOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsNull")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.PropertyIsNullType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "BBOX")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BBOXType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "DWithin")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.DistanceBufferType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Intersects")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Overlaps")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Touches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Equals")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Disjoint")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Within")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Crosses")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Contains")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Beyond")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.DistanceBufferType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Not")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.UnaryLogicOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "And")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryLogicOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Or")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryLogicOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Function")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.FunctionType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.ogc.BinaryLogicOpType(p1) })
    
    def writesChildNodes(__obj: opengis.ogc.BinaryLogicOpType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.binarylogicoptypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.ogc.BinaryLogicOpTypeOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisogc_UnaryLogicOpTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.UnaryLogicOpType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("UnaryLogicOpType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.UnaryLogicOpType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsBetween")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.PropertyIsBetweenType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsLike")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.PropertyIsLikeType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsLessThanOrEqualTo")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryComparisonOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsLessThan")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryComparisonOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsEqualTo")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryComparisonOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsNotEqualTo")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryComparisonOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsGreaterThan")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryComparisonOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsGreaterThanOrEqualTo")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryComparisonOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyIsNull")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.PropertyIsNullType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "BBOX")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BBOXType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "DWithin")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.DistanceBufferType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Intersects")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Overlaps")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Touches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Equals")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Disjoint")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Within")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Crosses")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Contains")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinarySpatialOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Beyond")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.DistanceBufferType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Not")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.UnaryLogicOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "And")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryLogicOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Or")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryLogicOpType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Function")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.FunctionType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.ogc.UnaryLogicOpType(p1) })
    
    def writesChildNodes(__obj: opengis.ogc.UnaryLogicOpType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.unarylogicoptypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.ogc.UnaryLogicOpTypeOption]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisogc_Filter_CapabilitiesFormat extends scalaxb.ElemNameParser[opengis.ogc.Filter_Capabilities] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.Filter_Capabilities] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Spatial_Capabilities")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Scalar_Capabilities")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Id_Capabilities")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.ogc.Filter_Capabilities(scalaxb.fromXML[opengis.ogc.Spatial_CapabilitiesType](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.ogc.Scalar_CapabilitiesType](p2, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.ogc.Id_CapabilitiesType](p3, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.ogc.Filter_Capabilities, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.ogc.Spatial_CapabilitiesType](__obj.Spatial_Capabilities, Some("http://www.opengis.net/ogc"), Some("Spatial_Capabilities"), __scope, false),
        scalaxb.toXML[opengis.ogc.Scalar_CapabilitiesType](__obj.Scalar_Capabilities, Some("http://www.opengis.net/ogc"), Some("Scalar_Capabilities"), __scope, false),
        scalaxb.toXML[opengis.ogc.Id_CapabilitiesType](__obj.Id_Capabilities, Some("http://www.opengis.net/ogc"), Some("Id_Capabilities"), __scope, false))

  }

  trait DefaultOpengisogc_Spatial_CapabilitiesTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.Spatial_CapabilitiesType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("Spatial_CapabilitiesType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.Spatial_CapabilitiesType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "GeometryOperands")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "SpatialOperators")) ^^
      { case p1 ~ p2 =>
      opengis.ogc.Spatial_CapabilitiesType(scalaxb.fromXML[opengis.ogc.GeometryOperandsType](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.ogc.SpatialOperatorsType](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.ogc.Spatial_CapabilitiesType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.ogc.GeometryOperandsType](__obj.GeometryOperands, Some("http://www.opengis.net/ogc"), Some("GeometryOperands"), __scope, false),
        scalaxb.toXML[opengis.ogc.SpatialOperatorsType](__obj.SpatialOperators, Some("http://www.opengis.net/ogc"), Some("SpatialOperators"), __scope, false))

  }

  trait DefaultOpengisogc_GeometryOperandsTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.GeometryOperandsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("GeometryOperandsType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.GeometryOperandsType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "GeometryOperand")) ^^
      { case p1 =>
      opengis.ogc.GeometryOperandsType(p1 map { scalaxb.fromXML[opengis.ogc.GeometryOperandType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ogc.GeometryOperandsType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.GeometryOperand flatMap { scalaxb.toXML[opengis.ogc.GeometryOperandType](_, Some("http://www.opengis.net/ogc"), Some("GeometryOperand"), __scope, false) })

  }

  def buildOpengisogc_GeometryOperandTypeFormat = new DefaultOpengisogc_GeometryOperandTypeFormat {}
  trait DefaultOpengisogc_GeometryOperandTypeFormat extends scalaxb.XMLFormat[opengis.ogc.GeometryOperandType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.ogc.GeometryOperandType =
        (fromString0(value, scope)).apply(({ val (ns, localPart) = scalaxb.Helper.splitQName(value, scope)
    new javax.xml.namespace.QName(ns.orNull, localPart).toString }))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.ogc.GeometryOperandType] = {
      case "{http://www.opengis.net/gml}Envelope" => opengis.ogc.GmlEnvelope
      case "{http://www.opengis.net/gml}Point" => opengis.ogc.GmlPoint
      case "{http://www.opengis.net/gml}LineString" => opengis.ogc.GmlLineString
      case "{http://www.opengis.net/gml}Polygon" => opengis.ogc.GmlPolygon
      case "{http://www.opengis.net/gml}ArcByCenterPoint" => opengis.ogc.GmlArcByCenterPoint
      case "{http://www.opengis.net/gml}CircleByCenterPoint" => opengis.ogc.GmlCircleByCenterPoint
      case "{http://www.opengis.net/gml}Arc" => opengis.ogc.GmlArc
      case "{http://www.opengis.net/gml}Circle" => opengis.ogc.GmlCircle
      case "{http://www.opengis.net/gml}ArcByBulge" => opengis.ogc.GmlArcByBulge
      case "{http://www.opengis.net/gml}Bezier" => opengis.ogc.GmlBezier
      case "{http://www.opengis.net/gml}Clothoid" => opengis.ogc.GmlClothoid
      case "{http://www.opengis.net/gml}CubicSpline" => opengis.ogc.GmlCubicSpline
      case "{http://www.opengis.net/gml}Geodesic" => opengis.ogc.GmlGeodesic
      case "{http://www.opengis.net/gml}OffsetCurve" => opengis.ogc.GmlOffsetCurve
      case "{http://www.opengis.net/gml}Triangle" => opengis.ogc.GmlTriangle
      case "{http://www.opengis.net/gml}PolyhedralSurface" => opengis.ogc.GmlPolyhedralSurface
      case "{http://www.opengis.net/gml}TriangulatedSurface" => opengis.ogc.GmlTriangulatedSurface
      case "{http://www.opengis.net/gml}Tin" => opengis.ogc.GmlTin
      case "{http://www.opengis.net/gml}Solid" => opengis.ogc.GmlSolid

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.GeometryOperandType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.ogc.GeometryOperandType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisogc_SpatialOperatorsTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.SpatialOperatorsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("SpatialOperatorsType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.SpatialOperatorsType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "SpatialOperator")) ^^
      { case p1 =>
      opengis.ogc.SpatialOperatorsType(p1 map { scalaxb.fromXML[opengis.ogc.SpatialOperatorType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ogc.SpatialOperatorsType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.SpatialOperator flatMap { scalaxb.toXML[opengis.ogc.SpatialOperatorType](_, Some("http://www.opengis.net/ogc"), Some("SpatialOperator"), __scope, false) })

  }

  trait DefaultOpengisogc_SpatialOperatorTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.SpatialOperatorType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("SpatialOperatorType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.SpatialOperatorType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "GeometryOperands")) ^^
      { case p1 =>
      opengis.ogc.SpatialOperatorType(p1.headOption map { scalaxb.fromXML[opengis.ogc.GeometryOperandsType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@name").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.ogc.SpatialOperatorNameType](x, scalaxb.ElemName(node) :: stack)) } map { "@name" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.ogc.SpatialOperatorType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@name", _) => __obj.name foreach { x => attr = scala.xml.Attribute(null, "name", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ogc.SpatialOperatorType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.GeometryOperands map { scalaxb.toXML[opengis.ogc.GeometryOperandsType](_, Some("http://www.opengis.net/ogc"), Some("GeometryOperands"), __scope, false) } getOrElse {Nil})

  }

  def buildOpengisogc_SpatialOperatorNameTypeFormat = new DefaultOpengisogc_SpatialOperatorNameTypeFormat {}
  trait DefaultOpengisogc_SpatialOperatorNameTypeFormat extends scalaxb.XMLFormat[opengis.ogc.SpatialOperatorNameType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.ogc.SpatialOperatorNameType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.ogc.SpatialOperatorNameType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("BBOX")) => opengis.ogc.BBOX
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Equals")) => opengis.ogc.Equals
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Disjoint")) => opengis.ogc.Disjoint
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Intersects")) => opengis.ogc.Intersects
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Touches")) => opengis.ogc.Touches
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Crosses")) => opengis.ogc.Crosses
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Within")) => opengis.ogc.Within
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Contains")) => opengis.ogc.Contains
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Overlaps")) => opengis.ogc.Overlaps
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Beyond")) => opengis.ogc.Beyond
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("DWithin")) => opengis.ogc.DWithin

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.SpatialOperatorNameType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.ogc.SpatialOperatorNameType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisogc_Scalar_CapabilitiesTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.Scalar_CapabilitiesType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("Scalar_CapabilitiesType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.Scalar_CapabilitiesType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "LogicalOperators")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "ComparisonOperators")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "ArithmeticOperators")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.ogc.Scalar_CapabilitiesType(p1.headOption map { scalaxb.fromXML[opengis.ogc.LogicalOperators](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.ogc.ComparisonOperatorsType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.ogc.ArithmeticOperatorsType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ogc.Scalar_CapabilitiesType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.LogicalOperators map { scalaxb.toXML[opengis.ogc.LogicalOperators](_, Some("http://www.opengis.net/ogc"), Some("LogicalOperators"), __scope, false) } getOrElse {Nil},
        __obj.ComparisonOperators map { scalaxb.toXML[opengis.ogc.ComparisonOperatorsType](_, Some("http://www.opengis.net/ogc"), Some("ComparisonOperators"), __scope, false) } getOrElse {Nil},
        __obj.ArithmeticOperators map { scalaxb.toXML[opengis.ogc.ArithmeticOperatorsType](_, Some("http://www.opengis.net/ogc"), Some("ArithmeticOperators"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisogc_LogicalOperatorsFormat extends scalaxb.XMLFormat[opengis.ogc.LogicalOperators] with scalaxb.CanWriteChildNodes[opengis.ogc.LogicalOperators] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.LogicalOperators] = seq match {
      case node: scala.xml.Node => Right(opengis.ogc.LogicalOperators())
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def writesChildNodes(__obj: opengis.ogc.LogicalOperators, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisogc_ComparisonOperatorsTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.ComparisonOperatorsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("ComparisonOperatorsType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.ComparisonOperatorsType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "ComparisonOperator"))) ^^ 
        { case p1 => opengis.ogc.ComparisonOperatorsTypeSequence1(scalaxb.fromXML[opengis.ogc.ComparisonOperatorType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.ogc.ComparisonOperatorsType(p1) })
    
    def writesChildNodes(__obj: opengis.ogc.ComparisonOperatorsType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.comparisonoperatorstypesequence1 flatMap { scalaxb.toXML[opengis.ogc.ComparisonOperatorsTypeSequence1](_, None, Some("comparisonoperatorstypesequence1"), __scope, false) })

  }

  trait DefaultOpengisogc_ComparisonOperatorsTypeSequence1Format extends scalaxb.XMLFormat[opengis.ogc.ComparisonOperatorsTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.ComparisonOperatorsTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.ogc.ComparisonOperatorsTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.ogc.ComparisonOperatorType](__obj.ComparisonOperator, Some("http://www.opengis.net/ogc"), Some("ComparisonOperator"), __scope, false)


  }

  def buildOpengisogc_ComparisonOperatorTypeFormat = new DefaultOpengisogc_ComparisonOperatorTypeFormat {}
  trait DefaultOpengisogc_ComparisonOperatorTypeFormat extends scalaxb.XMLFormat[opengis.ogc.ComparisonOperatorType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.ogc.ComparisonOperatorType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.ogc.ComparisonOperatorType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("LessThan")) => opengis.ogc.LessThan
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("GreaterThan")) => opengis.ogc.GreaterThan
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("LessThanEqualTo")) => opengis.ogc.LessThanEqualTo
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("GreaterThanEqualTo")) => opengis.ogc.GreaterThanEqualTo
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("EqualTo")) => opengis.ogc.EqualTo
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("NotEqualTo")) => opengis.ogc.NotEqualTo
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Like")) => opengis.ogc.Like
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Between")) => opengis.ogc.Between
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("NullCheck")) => opengis.ogc.NullCheck

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.ComparisonOperatorType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.ogc.ComparisonOperatorType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisogc_ArithmeticOperatorsTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.ArithmeticOperatorsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("ArithmeticOperatorsType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.ArithmeticOperatorsType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "SimpleArithmetic")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.SimpleArithmetic](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Functions")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.FunctionsType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.ogc.ArithmeticOperatorsType(p1) })
    
    def writesChildNodes(__obj: opengis.ogc.ArithmeticOperatorsType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.arithmeticoperatorstypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.ogc.ArithmeticOperatorsTypeOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisogc_SimpleArithmeticFormat extends scalaxb.XMLFormat[opengis.ogc.SimpleArithmetic] with scalaxb.CanWriteChildNodes[opengis.ogc.SimpleArithmetic] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.SimpleArithmetic] = seq match {
      case node: scala.xml.Node => Right(opengis.ogc.SimpleArithmetic())
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def writesChildNodes(__obj: opengis.ogc.SimpleArithmetic, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisogc_FunctionsTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.FunctionsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("FunctionsType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.FunctionsType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "FunctionNames")) ^^
      { case p1 =>
      opengis.ogc.FunctionsType(scalaxb.fromXML[opengis.ogc.FunctionNamesType](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.ogc.FunctionsType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.ogc.FunctionNamesType](__obj.FunctionNames, Some("http://www.opengis.net/ogc"), Some("FunctionNames"), __scope, false))

  }

  trait DefaultOpengisogc_FunctionNamesTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.FunctionNamesType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("FunctionNamesType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.FunctionNamesType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "FunctionName"))) ^^ 
        { case p1 => opengis.ogc.FunctionNamesTypeSequence1(scalaxb.fromXML[opengis.ogc.FunctionNameType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.ogc.FunctionNamesType(p1) })
    
    def writesChildNodes(__obj: opengis.ogc.FunctionNamesType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.functionnamestypesequence1 flatMap { scalaxb.toXML[opengis.ogc.FunctionNamesTypeSequence1](_, None, Some("functionnamestypesequence1"), __scope, false) })

  }

  trait DefaultOpengisogc_FunctionNamesTypeSequence1Format extends scalaxb.XMLFormat[opengis.ogc.FunctionNamesTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.FunctionNamesTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.ogc.FunctionNamesTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.ogc.FunctionNameType](__obj.FunctionName, Some("http://www.opengis.net/ogc"), Some("FunctionName"), __scope, false)


  }

  trait DefaultOpengisogc_FunctionNameTypeFormat extends scalaxb.XMLFormat[opengis.ogc.FunctionNameType] with scalaxb.CanWriteChildNodes[opengis.ogc.FunctionNameType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.FunctionNameType] = seq match {
      case node: scala.xml.Node => Right(opengis.ogc.FunctionNameType(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@nArgs").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@nArgs" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.ogc.FunctionNameType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@nArgs", _) => attr = scala.xml.Attribute(null, "nArgs", __obj.nArgs.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ogc.FunctionNameType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisogc_Id_CapabilitiesTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.Id_CapabilitiesType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("Id_CapabilitiesType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.Id_CapabilitiesType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "EID")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.EID](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "FID")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.FID](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.ogc.Id_CapabilitiesType(p1) })
    
    def writesChildNodes(__obj: opengis.ogc.Id_CapabilitiesType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.id_capabilitiestypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.ogc.Id_CapabilitiesTypeOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisogc_EIDFormat extends scalaxb.XMLFormat[opengis.ogc.EID] with scalaxb.CanWriteChildNodes[opengis.ogc.EID] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.EID] = seq match {
      case node: scala.xml.Node => Right(opengis.ogc.EID())
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def writesChildNodes(__obj: opengis.ogc.EID, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisogc_FIDFormat extends scalaxb.XMLFormat[opengis.ogc.FID] with scalaxb.CanWriteChildNodes[opengis.ogc.FID] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.FID] = seq match {
      case node: scala.xml.Node => Right(opengis.ogc.FID())
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def writesChildNodes(__obj: opengis.ogc.FID, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisogc_SortByTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.SortByType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("SortByType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.SortByType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "SortProperty")) ^^
      { case p1 =>
      opengis.ogc.SortByType(p1 map { scalaxb.fromXML[opengis.ogc.SortPropertyType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ogc.SortByType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.SortProperty flatMap { scalaxb.toXML[opengis.ogc.SortPropertyType](_, Some("http://www.opengis.net/ogc"), Some("SortProperty"), __scope, false) })

  }

  trait DefaultOpengisogc_SortPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.ogc.SortPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    override def typeName: Option[String] = Some("SortPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.SortPropertyType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyName")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "SortOrder")) ^^
      { case p1 ~ p2 =>
      opengis.ogc.SortPropertyType(scalaxb.fromXML[opengis.ogc.PropertyNameType](p1, scalaxb.ElemName(node) :: stack),
        p2.headOption map { scalaxb.fromXML[opengis.ogc.SortOrderType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ogc.SortPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.ogc.PropertyNameType](__obj.PropertyName, Some("http://www.opengis.net/ogc"), Some("PropertyName"), __scope, false),
        __obj.SortOrder map { scalaxb.toXML[opengis.ogc.SortOrderType](_, Some("http://www.opengis.net/ogc"), Some("SortOrder"), __scope, false) } getOrElse {Nil})

  }

  def buildOpengisogc_SortOrderTypeFormat = new DefaultOpengisogc_SortOrderTypeFormat {}
  trait DefaultOpengisogc_SortOrderTypeFormat extends scalaxb.XMLFormat[opengis.ogc.SortOrderType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.ogc.SortOrderType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.ogc.SortOrderType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("DESC")) => opengis.ogc.DESC
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("ASC")) => opengis.ogc.ASC

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.SortOrderType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.ogc.SortOrderType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengisgml_SignTypeFormat = new DefaultOpengisgml_SignTypeFormat {}
  trait DefaultOpengisgml_SignTypeFormat extends scalaxb.XMLFormat[opengis.gml.SignType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.SignType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.SignType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("-")) => opengis.gml.U45
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("+")) => opengis.gml.U43

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.SignType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.SignType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisgml_CodeTypableFormat extends scalaxb.XMLFormat[opengis.gml.CodeTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CodeTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("VerticalDatumTypeType")) => Right(scalaxb.fromXML[opengis.gml.VerticalDatumTypeType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PixelInCellType")) => Right(scalaxb.fromXML[opengis.gml.PixelInCellType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DerivedCRSTypeType")) => Right(scalaxb.fromXML[opengis.gml.DerivedCRSTypeType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.CodeType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.CodeTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.VerticalDatumTypeType => scalaxb.toXML[opengis.gml.VerticalDatumTypeType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.PixelInCellType => scalaxb.toXML[opengis.gml.PixelInCellType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.DerivedCRSTypeType => scalaxb.toXML[opengis.gml.DerivedCRSTypeType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.CodeType => scalaxb.toXML[opengis.gml.CodeType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_CodeTypeFormat extends scalaxb.XMLFormat[opengis.gml.CodeType] with scalaxb.CanWriteChildNodes[opengis.gml.CodeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CodeType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.CodeType(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@codeSpace").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@codeSpace" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.CodeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@codeSpace", _) => __obj.codeSpace foreach { x => attr = scala.xml.Attribute(null, "codeSpace", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CodeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_CodeListTypeFormat extends scalaxb.XMLFormat[opengis.gml.CodeListType] with scalaxb.CanWriteChildNodes[opengis.gml.CodeListType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CodeListType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.CodeListType(scalaxb.fromXML[Seq[String]](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@codeSpace").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@codeSpace" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.CodeListType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@codeSpace", _) => __obj.codeSpace foreach { x => attr = scala.xml.Attribute(null, "codeSpace", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CodeListType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_CodeOrNullListTypableFormat extends scalaxb.XMLFormat[opengis.gml.CodeOrNullListTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CodeOrNullListTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("CategoryExtentType")) => Right(scalaxb.fromXML[opengis.gml.CategoryExtentType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.CodeOrNullListType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.CodeOrNullListTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.CategoryExtentType => scalaxb.toXML[opengis.gml.CategoryExtentType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.CodeOrNullListType => scalaxb.toXML[opengis.gml.CodeOrNullListType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_CodeOrNullListTypeFormat extends scalaxb.XMLFormat[opengis.gml.CodeOrNullListType] with scalaxb.CanWriteChildNodes[opengis.gml.CodeOrNullListType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CodeOrNullListType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.CodeOrNullListType(scalaxb.fromXML[Seq[String]](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@codeSpace").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@codeSpace" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.CodeOrNullListType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@codeSpace", _) => __obj.codeSpace foreach { x => attr = scala.xml.Attribute(null, "codeSpace", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CodeOrNullListType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_MeasureTypableFormat extends scalaxb.XMLFormat[opengis.gml.MeasureTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.MeasureTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("VolumeType")) => Right(scalaxb.fromXML[opengis.gml.VolumeType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GridLengthType")) => Right(scalaxb.fromXML[opengis.gml.GridLengthType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ScaleType")) => Right(scalaxb.fromXML[opengis.gml.ScaleType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("LengthType")) => Right(scalaxb.fromXML[opengis.gml.LengthType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeType")) => Right(scalaxb.fromXML[opengis.gml.TimeType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AreaType")) => Right(scalaxb.fromXML[opengis.gml.AreaType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("SpeedType")) => Right(scalaxb.fromXML[opengis.gml.SpeedType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AngleType")) => Right(scalaxb.fromXML[opengis.gml.AngleType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.MeasureType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.MeasureTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.VolumeType => scalaxb.toXML[opengis.gml.VolumeType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.GridLengthType => scalaxb.toXML[opengis.gml.GridLengthType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.ScaleType => scalaxb.toXML[opengis.gml.ScaleType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.LengthType => scalaxb.toXML[opengis.gml.LengthType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.TimeType => scalaxb.toXML[opengis.gml.TimeType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AreaType => scalaxb.toXML[opengis.gml.AreaType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.SpeedType => scalaxb.toXML[opengis.gml.SpeedType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AngleType => scalaxb.toXML[opengis.gml.AngleType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.MeasureType => scalaxb.toXML[opengis.gml.MeasureType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_MeasureTypeFormat extends scalaxb.XMLFormat[opengis.gml.MeasureType] with scalaxb.CanWriteChildNodes[opengis.gml.MeasureType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.MeasureType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.MeasureType(scalaxb.fromXML[Double](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.MeasureType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@uom", _) => attr = scala.xml.Attribute(null, "uom", __obj.uom.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MeasureType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_MeasureListTypeFormat extends scalaxb.XMLFormat[opengis.gml.MeasureListType] with scalaxb.CanWriteChildNodes[opengis.gml.MeasureListType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.MeasureListType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.MeasureListType(scalaxb.fromXML[Seq[Double]](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.MeasureListType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@uom", _) => attr = scala.xml.Attribute(null, "uom", __obj.uom.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MeasureListType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_MeasureOrNullListTypableFormat extends scalaxb.XMLFormat[opengis.gml.MeasureOrNullListTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.MeasureOrNullListTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("QuantityExtentType")) => Right(scalaxb.fromXML[opengis.gml.QuantityExtentType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.MeasureOrNullListType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.MeasureOrNullListTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.QuantityExtentType => scalaxb.toXML[opengis.gml.QuantityExtentType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.MeasureOrNullListType => scalaxb.toXML[opengis.gml.MeasureOrNullListType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_MeasureOrNullListTypeFormat extends scalaxb.XMLFormat[opengis.gml.MeasureOrNullListType] with scalaxb.CanWriteChildNodes[opengis.gml.MeasureOrNullListType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.MeasureOrNullListType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.MeasureOrNullListType(scalaxb.fromXML[Seq[String]](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.MeasureOrNullListType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@uom", _) => attr = scala.xml.Attribute(null, "uom", __obj.uom.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MeasureOrNullListType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_CoordinatesTypeFormat extends scalaxb.XMLFormat[opengis.gml.CoordinatesType] with scalaxb.CanWriteChildNodes[opengis.gml.CoordinatesType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CoordinatesType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.CoordinatesType(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@decimal").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("."), scalaxb.ElemName(node) :: stack))) map { "@decimal" -> _ },
        (node \ "@cs").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text(","), scalaxb.ElemName(node) :: stack))) map { "@cs" -> _ },
        (node \ "@ts").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text(" "), scalaxb.ElemName(node) :: stack))) map { "@ts" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.CoordinatesType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@decimal", _) => if (__obj.decimal.toString != ".") attr = scala.xml.Attribute(null, "decimal", __obj.decimal.toString, attr)
        case ("@cs", _) => if (__obj.cs.toString != ",") attr = scala.xml.Attribute(null, "cs", __obj.cs.toString, attr)
        case ("@ts", _) => if (__obj.ts.toString != " ") attr = scala.xml.Attribute(null, "ts", __obj.ts.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CoordinatesType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_AbstractCoordinateOperationBaseTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractCoordinateOperationBaseType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractCoordinateOperationBaseType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("AbstractCoordinateOperationType")) => Right(scalaxb.fromXML[opengis.gml.AbstractCoordinateOperationType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractGeneralTransformationType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGeneralTransformationType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TransformationType")) => Right(scalaxb.fromXML[opengis.gml.TransformationType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractGeneralConversionType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGeneralConversionType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ConversionType")) => Right(scalaxb.fromXML[opengis.gml.ConversionType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ConcatenatedOperationType")) => Right(scalaxb.fromXML[opengis.gml.ConcatenatedOperationType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PassThroughOperationType")) => Right(scalaxb.fromXML[opengis.gml.PassThroughOperationType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractCoordinateOperationBaseType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.AbstractCoordinateOperationType => scalaxb.toXML[opengis.gml.AbstractCoordinateOperationType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_AbstractCoordinateOperationTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractCoordinateOperationType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractCoordinateOperationType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("AbstractGeneralTransformationType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGeneralTransformationType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TransformationType")) => Right(scalaxb.fromXML[opengis.gml.TransformationType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractGeneralConversionType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGeneralConversionType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ConversionType")) => Right(scalaxb.fromXML[opengis.gml.ConversionType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ConcatenatedOperationType")) => Right(scalaxb.fromXML[opengis.gml.ConcatenatedOperationType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PassThroughOperationType")) => Right(scalaxb.fromXML[opengis.gml.PassThroughOperationType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractCoordinateOperationType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.AbstractGeneralTransformationType => scalaxb.toXML[opengis.gml.AbstractGeneralTransformationType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractGeneralConversionType => scalaxb.toXML[opengis.gml.AbstractGeneralConversionType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.ConcatenatedOperationType => scalaxb.toXML[opengis.gml.ConcatenatedOperationType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.PassThroughOperationType => scalaxb.toXML[opengis.gml.PassThroughOperationType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_CoordinateOperationRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CoordinateOperationRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CoordinateOperationRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CoordinateOperationRefType] =
      phrase(opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ConcatenatedOperation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ConcatenatedOperationType](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.CoordinateOperationRefTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.CoordinateOperationRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CoordinateOperationRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CoordinateOperationRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.coordinateoperationreftypesequence1 map { scalaxb.toXML[opengis.gml.CoordinateOperationRefTypeSequence1](_, None, Some("coordinateoperationreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_CoordinateOperationRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.CoordinateOperationRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CoordinateOperationRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.CoordinateOperationRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._CoordinateOperation) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_ConcatenatedOperationTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ConcatenatedOperationType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ConcatenatedOperationType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ConcatenatedOperationType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinateOperationID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "operationVersion")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "scope")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "covarianceMatrix")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CovarianceMatrixType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "relativeInternalPositionalAccuracy")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RelativeInternalPositionalAccuracyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "absoluteExternalPositionalAccuracy")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbsoluteExternalPositionalAccuracyType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "sourceCRS")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "targetCRS")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesSingleOperation")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 ~ p10 =>
      opengis.gml.ConcatenatedOperationType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[opengis.gml.ExtentType](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p7,
        p8.headOption map { scalaxb.fromXML[opengis.gml.CRSRefType](_, scalaxb.ElemName(node) :: stack) },
        p9.headOption map { scalaxb.fromXML[opengis.gml.CRSRefType](_, scalaxb.ElemName(node) :: stack) },
        p10 map { scalaxb.fromXML[opengis.gml.SingleOperationRefType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ConcatenatedOperationType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ConcatenatedOperationType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.coordinateOperationID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("coordinateOperationID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.operationVersion map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("operationVersion"), __scope, false) } getOrElse {Nil},
        __obj.validArea map { scalaxb.toXML[opengis.gml.ExtentType](_, Some("http://www.opengis.net/gml"), Some("validArea"), __scope, false) } getOrElse {Nil},
        __obj.scope map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("scope"), __scope, false) } getOrElse {Nil},
        __obj._positionalAccuracy flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) },
        __obj.sourceCRS map { scalaxb.toXML[opengis.gml.CRSRefType](_, Some("http://www.opengis.net/gml"), Some("sourceCRS"), __scope, false) } getOrElse {Nil},
        __obj.targetCRS map { scalaxb.toXML[opengis.gml.CRSRefType](_, Some("http://www.opengis.net/gml"), Some("targetCRS"), __scope, false) } getOrElse {Nil},
        __obj.usesSingleOperation flatMap { scalaxb.toXML[opengis.gml.SingleOperationRefType](_, Some("http://www.opengis.net/gml"), Some("usesSingleOperation"), __scope, false) })

  }

  trait DefaultOpengisgml_ConcatenatedOperationRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ConcatenatedOperationRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ConcatenatedOperationRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ConcatenatedOperationRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ConcatenatedOperation"))) ^^ 
        { case p1 => opengis.gml.ConcatenatedOperationRefTypeSequence1(scalaxb.fromXML[opengis.gml.ConcatenatedOperationType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.ConcatenatedOperationRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ConcatenatedOperationRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ConcatenatedOperationRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.concatenatedoperationreftypesequence1 map { scalaxb.toXML[opengis.gml.ConcatenatedOperationRefTypeSequence1](_, None, Some("concatenatedoperationreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_ConcatenatedOperationRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.ConcatenatedOperationRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.ConcatenatedOperationRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.ConcatenatedOperationRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.ConcatenatedOperationType](__obj.ConcatenatedOperation, Some("http://www.opengis.net/gml"), Some("ConcatenatedOperation"), __scope, false)


  }

  trait DefaultOpengisgml_SingleOperationRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.SingleOperationRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("SingleOperationRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.SingleOperationRefType] =
      phrase(opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "PassThroughOperation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PassThroughOperationType](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.SingleOperationRefTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.SingleOperationRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.SingleOperationRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.SingleOperationRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.singleoperationreftypesequence1 map { scalaxb.toXML[opengis.gml.SingleOperationRefTypeSequence1](_, None, Some("singleoperationreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_SingleOperationRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.SingleOperationRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.SingleOperationRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.SingleOperationRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._SingleOperation) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_PassThroughOperationTypeFormat extends scalaxb.ElemNameParser[opengis.gml.PassThroughOperationType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("PassThroughOperationType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.PassThroughOperationType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinateOperationID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "operationVersion")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "scope")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "covarianceMatrix")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CovarianceMatrixType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "relativeInternalPositionalAccuracy")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RelativeInternalPositionalAccuracyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "absoluteExternalPositionalAccuracy")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbsoluteExternalPositionalAccuracyType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "sourceCRS")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "targetCRS")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "modifiedCoordinate")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesOperation")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 ~ p10 ~ p11 =>
      opengis.gml.PassThroughOperationType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[opengis.gml.ExtentType](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p7,
        p8.headOption map { scalaxb.fromXML[opengis.gml.CRSRefType](_, scalaxb.ElemName(node) :: stack) },
        p9.headOption map { scalaxb.fromXML[opengis.gml.CRSRefType](_, scalaxb.ElemName(node) :: stack) },
        p10 map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.OperationRefType](p11, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.PassThroughOperationType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.PassThroughOperationType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.coordinateOperationID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("coordinateOperationID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.operationVersion map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("operationVersion"), __scope, false) } getOrElse {Nil},
        __obj.validArea map { scalaxb.toXML[opengis.gml.ExtentType](_, Some("http://www.opengis.net/gml"), Some("validArea"), __scope, false) } getOrElse {Nil},
        __obj.scope map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("scope"), __scope, false) } getOrElse {Nil},
        __obj._positionalAccuracy flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) },
        __obj.sourceCRS map { scalaxb.toXML[opengis.gml.CRSRefType](_, Some("http://www.opengis.net/gml"), Some("sourceCRS"), __scope, false) } getOrElse {Nil},
        __obj.targetCRS map { scalaxb.toXML[opengis.gml.CRSRefType](_, Some("http://www.opengis.net/gml"), Some("targetCRS"), __scope, false) } getOrElse {Nil},
        __obj.modifiedCoordinate flatMap { scalaxb.toXML[BigInt](_, Some("http://www.opengis.net/gml"), Some("modifiedCoordinate"), __scope, false) },
        scalaxb.toXML[opengis.gml.OperationRefType](__obj.usesOperation, Some("http://www.opengis.net/gml"), Some("usesOperation"), __scope, false))

  }

  trait DefaultOpengisgml_PassThroughOperationRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.PassThroughOperationRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("PassThroughOperationRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.PassThroughOperationRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "PassThroughOperation"))) ^^ 
        { case p1 => opengis.gml.PassThroughOperationRefTypeSequence1(scalaxb.fromXML[opengis.gml.PassThroughOperationType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.PassThroughOperationRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.PassThroughOperationRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.PassThroughOperationRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.passthroughoperationreftypesequence1 map { scalaxb.toXML[opengis.gml.PassThroughOperationRefTypeSequence1](_, None, Some("passthroughoperationreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_PassThroughOperationRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.PassThroughOperationRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.PassThroughOperationRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.PassThroughOperationRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.PassThroughOperationType](__obj.PassThroughOperation, Some("http://www.opengis.net/gml"), Some("PassThroughOperation"), __scope, false)


  }

  trait DefaultOpengisgml_OperationRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.OperationRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("OperationRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.OperationRefType] =
      phrase(opt(((((any(_ => true) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.OperationRefTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.OperationRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.OperationRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.OperationRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.operationreftypesequence1 map { scalaxb.toXML[opengis.gml.OperationRefTypeSequence1](_, None, Some("operationreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_OperationRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.OperationRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.OperationRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.OperationRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._Operation) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_AbstractGeneralConversionTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractGeneralConversionType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractGeneralConversionType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("ConversionType")) => Right(scalaxb.fromXML[opengis.gml.ConversionType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractGeneralConversionType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.ConversionType => scalaxb.toXML[opengis.gml.ConversionType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_GeneralConversionRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GeneralConversionRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GeneralConversionRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GeneralConversionRefType] =
      phrase(opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Conversion")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ConversionType](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.GeneralConversionRefTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.GeneralConversionRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GeneralConversionRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GeneralConversionRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.generalconversionreftypesequence1 map { scalaxb.toXML[opengis.gml.GeneralConversionRefTypeSequence1](_, None, Some("generalconversionreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_GeneralConversionRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.GeneralConversionRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.GeneralConversionRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.GeneralConversionRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._GeneralConversion) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_ConversionTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ConversionType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ConversionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ConversionType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinateOperationID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "operationVersion")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "scope")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "covarianceMatrix")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CovarianceMatrixType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "relativeInternalPositionalAccuracy")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RelativeInternalPositionalAccuracyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "absoluteExternalPositionalAccuracy")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbsoluteExternalPositionalAccuracyType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "sourceCRS")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "targetCRS")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesMethod")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesValue")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 ~ p10 ~ p11 =>
      opengis.gml.ConversionType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[opengis.gml.ExtentType](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p7,
        p8.headOption map { scalaxb.fromXML[opengis.gml.CRSRefType](_, scalaxb.ElemName(node) :: stack) },
        p9.headOption map { scalaxb.fromXML[opengis.gml.CRSRefType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.OperationMethodRefType](p10, scalaxb.ElemName(node) :: stack),
        p11 map { scalaxb.fromXML[opengis.gml.ParameterValueType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ConversionType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ConversionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.coordinateOperationID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("coordinateOperationID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.operationVersion map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("operationVersion"), __scope, false) } getOrElse {Nil},
        __obj.validArea map { scalaxb.toXML[opengis.gml.ExtentType](_, Some("http://www.opengis.net/gml"), Some("validArea"), __scope, false) } getOrElse {Nil},
        __obj.scope map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("scope"), __scope, false) } getOrElse {Nil},
        __obj._positionalAccuracy flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) },
        __obj.sourceCRS map { scalaxb.toXML[opengis.gml.CRSRefType](_, Some("http://www.opengis.net/gml"), Some("sourceCRS"), __scope, false) } getOrElse {Nil},
        __obj.targetCRS map { scalaxb.toXML[opengis.gml.CRSRefType](_, Some("http://www.opengis.net/gml"), Some("targetCRS"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.OperationMethodRefType](__obj.usesMethod, Some("http://www.opengis.net/gml"), Some("usesMethod"), __scope, false),
        __obj.usesValue flatMap { scalaxb.toXML[opengis.gml.ParameterValueType](_, Some("http://www.opengis.net/gml"), Some("usesValue"), __scope, false) })

  }

  trait DefaultOpengisgml_ConversionRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ConversionRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ConversionRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ConversionRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Conversion"))) ^^ 
        { case p1 => opengis.gml.ConversionRefTypeSequence1(scalaxb.fromXML[opengis.gml.ConversionType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.ConversionRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ConversionRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ConversionRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.conversionreftypesequence1 map { scalaxb.toXML[opengis.gml.ConversionRefTypeSequence1](_, None, Some("conversionreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_ConversionRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.ConversionRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.ConversionRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.ConversionRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.ConversionType](__obj.Conversion, Some("http://www.opengis.net/gml"), Some("Conversion"), __scope, false)


  }

  trait DefaultOpengisgml_AbstractGeneralTransformationTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractGeneralTransformationType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractGeneralTransformationType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("TransformationType")) => Right(scalaxb.fromXML[opengis.gml.TransformationType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractGeneralTransformationType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.TransformationType => scalaxb.toXML[opengis.gml.TransformationType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_GeneralTransformationRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GeneralTransformationRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GeneralTransformationRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GeneralTransformationRefType] =
      phrase(opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Transformation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TransformationType](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.GeneralTransformationRefTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.GeneralTransformationRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GeneralTransformationRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GeneralTransformationRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.generaltransformationreftypesequence1 map { scalaxb.toXML[opengis.gml.GeneralTransformationRefTypeSequence1](_, None, Some("generaltransformationreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_GeneralTransformationRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.GeneralTransformationRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.GeneralTransformationRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.GeneralTransformationRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._GeneralTransformation) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_TransformationTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TransformationType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TransformationType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TransformationType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinateOperationID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "operationVersion")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "scope")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "covarianceMatrix")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CovarianceMatrixType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "relativeInternalPositionalAccuracy")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RelativeInternalPositionalAccuracyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "absoluteExternalPositionalAccuracy")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbsoluteExternalPositionalAccuracyType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "sourceCRS")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "targetCRS")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesMethod")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesValue")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 ~ p10 ~ p11 =>
      opengis.gml.TransformationType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[opengis.gml.ExtentType](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p7,
        p8.headOption map { scalaxb.fromXML[opengis.gml.CRSRefType](_, scalaxb.ElemName(node) :: stack) },
        p9.headOption map { scalaxb.fromXML[opengis.gml.CRSRefType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.OperationMethodRefType](p10, scalaxb.ElemName(node) :: stack),
        p11 map { scalaxb.fromXML[opengis.gml.ParameterValueType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TransformationType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TransformationType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.coordinateOperationID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("coordinateOperationID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.operationVersion map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("operationVersion"), __scope, false) } getOrElse {Nil},
        __obj.validArea map { scalaxb.toXML[opengis.gml.ExtentType](_, Some("http://www.opengis.net/gml"), Some("validArea"), __scope, false) } getOrElse {Nil},
        __obj.scope map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("scope"), __scope, false) } getOrElse {Nil},
        __obj._positionalAccuracy flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) },
        __obj.sourceCRS map { scalaxb.toXML[opengis.gml.CRSRefType](_, Some("http://www.opengis.net/gml"), Some("sourceCRS"), __scope, false) } getOrElse {Nil},
        __obj.targetCRS map { scalaxb.toXML[opengis.gml.CRSRefType](_, Some("http://www.opengis.net/gml"), Some("targetCRS"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.OperationMethodRefType](__obj.usesMethod, Some("http://www.opengis.net/gml"), Some("usesMethod"), __scope, false),
        __obj.usesValue flatMap { scalaxb.toXML[opengis.gml.ParameterValueType](_, Some("http://www.opengis.net/gml"), Some("usesValue"), __scope, false) })

  }

  trait DefaultOpengisgml_TransformationRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TransformationRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TransformationRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TransformationRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Transformation"))) ^^ 
        { case p1 => opengis.gml.TransformationRefTypeSequence1(scalaxb.fromXML[opengis.gml.TransformationType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.TransformationRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TransformationRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TransformationRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.transformationreftypesequence1 map { scalaxb.toXML[opengis.gml.TransformationRefTypeSequence1](_, None, Some("transformationreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TransformationRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.TransformationRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TransformationRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.TransformationRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.TransformationType](__obj.Transformation, Some("http://www.opengis.net/gml"), Some("Transformation"), __scope, false)


  }

  trait DefaultOpengisgml_AbstractGeneralParameterValueTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractGeneralParameterValueType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractGeneralParameterValueType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("ParameterValueGroupType")) => Right(scalaxb.fromXML[opengis.gml.ParameterValueGroupType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ParameterValueType")) => Right(scalaxb.fromXML[opengis.gml.ParameterValueType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractGeneralParameterValueType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.ParameterValueGroupType => scalaxb.toXML[opengis.gml.ParameterValueGroupType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.ParameterValueType => scalaxb.toXML[opengis.gml.ParameterValueType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_ParameterValueTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ParameterValueType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ParameterValueType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ParameterValueType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "value")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MeasureTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "dmsAngleValue")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DMSAngleType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "stringValue")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "integerValue")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "booleanValue")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "valueList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MeasureListType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "integerValueList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "valueFile")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "valueOfParameter")) ^^
      { case p1 ~ p2 =>
      opengis.gml.ParameterValueType(p1,
        scalaxb.fromXML[opengis.gml.OperationParameterRefType](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.gml.ParameterValueType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat((Some(__obj.parametervaluetypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get,
        scalaxb.toXML[opengis.gml.OperationParameterRefType](__obj.valueOfParameter, Some("http://www.opengis.net/gml"), Some("valueOfParameter"), __scope, false))

  }

  trait DefaultOpengisgml_ParameterValueGroupTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ParameterValueGroupType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ParameterValueGroupType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ParameterValueGroupType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "includesValue")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "valuesOfGroup")) ^^
      { case p1 ~ p2 =>
      opengis.gml.ParameterValueGroupType(p1 map { scalaxb.fromXML[opengis.gml.AbstractGeneralParameterValueType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.OperationParameterGroupRefType](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.gml.ParameterValueGroupType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.includesValue flatMap { scalaxb.toXML[opengis.gml.AbstractGeneralParameterValueType](_, Some("http://www.opengis.net/gml"), Some("includesValue"), __scope, false) },
        scalaxb.toXML[opengis.gml.OperationParameterGroupRefType](__obj.valuesOfGroup, Some("http://www.opengis.net/gml"), Some("valuesOfGroup"), __scope, false))

  }

  trait DefaultOpengisgml_OperationMethodBaseTypeFormat extends scalaxb.XMLFormat[opengis.gml.OperationMethodBaseType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.OperationMethodBaseType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("OperationMethodType")) => Right(scalaxb.fromXML[opengis.gml.OperationMethodType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.OperationMethodBaseType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.OperationMethodType => scalaxb.toXML[opengis.gml.OperationMethodType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_OperationMethodTypeFormat extends scalaxb.ElemNameParser[opengis.gml.OperationMethodType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("OperationMethodType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.OperationMethodType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "methodID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "methodFormula")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "sourceDimensions")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "targetDimensions")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesParameter")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 =>
      opengis.gml.OperationMethodType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.CodeTypable](p4, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[BigInt](p5, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[BigInt](p6, scalaxb.ElemName(node) :: stack),
        p7 map { scalaxb.fromXML[opengis.gml.AbstractGeneralOperationParameterRefType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.OperationMethodType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.OperationMethodType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.methodID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("methodID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.CodeTypable](__obj.methodFormula, Some("http://www.opengis.net/gml"), Some("methodFormula"), __scope, false),
        scalaxb.toXML[BigInt](__obj.sourceDimensions, Some("http://www.opengis.net/gml"), Some("sourceDimensions"), __scope, false),
        scalaxb.toXML[BigInt](__obj.targetDimensions, Some("http://www.opengis.net/gml"), Some("targetDimensions"), __scope, false),
        __obj.usesParameter flatMap { scalaxb.toXML[opengis.gml.AbstractGeneralOperationParameterRefType](_, Some("http://www.opengis.net/gml"), Some("usesParameter"), __scope, false) })

  }

  trait DefaultOpengisgml_OperationMethodRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.OperationMethodRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("OperationMethodRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.OperationMethodRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "OperationMethod"))) ^^ 
        { case p1 => opengis.gml.OperationMethodRefTypeSequence1(scalaxb.fromXML[opengis.gml.OperationMethodType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.OperationMethodRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.OperationMethodRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.OperationMethodRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.operationmethodreftypesequence1 map { scalaxb.toXML[opengis.gml.OperationMethodRefTypeSequence1](_, None, Some("operationmethodreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_OperationMethodRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.OperationMethodRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.OperationMethodRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.OperationMethodRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.OperationMethodType](__obj.OperationMethod, Some("http://www.opengis.net/gml"), Some("OperationMethod"), __scope, false)


  }

  trait DefaultOpengisgml_AbstractGeneralOperationParameterTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractGeneralOperationParameterType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractGeneralOperationParameterType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("OperationParameterBaseType")) => Right(scalaxb.fromXML[opengis.gml.OperationParameterBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OperationParameterType")) => Right(scalaxb.fromXML[opengis.gml.OperationParameterType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OperationParameterGroupBaseType")) => Right(scalaxb.fromXML[opengis.gml.OperationParameterGroupBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OperationParameterGroupType")) => Right(scalaxb.fromXML[opengis.gml.OperationParameterGroupType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractGeneralOperationParameterType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.OperationParameterBaseType => scalaxb.toXML[opengis.gml.OperationParameterBaseType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.OperationParameterGroupBaseType => scalaxb.toXML[opengis.gml.OperationParameterGroupBaseType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_AbstractGeneralOperationParameterRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.AbstractGeneralOperationParameterRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("AbstractGeneralOperationParameterRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.AbstractGeneralOperationParameterRefType] =
      phrase(opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "OperationParameter")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.OperationParameterType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "OperationParameterGroup")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.OperationParameterGroupType](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.AbstractGeneralOperationParameterRefTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.AbstractGeneralOperationParameterRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.AbstractGeneralOperationParameterRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.AbstractGeneralOperationParameterRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.abstractgeneraloperationparameterreftypesequence1 map { scalaxb.toXML[opengis.gml.AbstractGeneralOperationParameterRefTypeSequence1](_, None, Some("abstractgeneraloperationparameterreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_AbstractGeneralOperationParameterRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.AbstractGeneralOperationParameterRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractGeneralOperationParameterRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.AbstractGeneralOperationParameterRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._GeneralOperationParameter) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_OperationParameterBaseTypeFormat extends scalaxb.XMLFormat[opengis.gml.OperationParameterBaseType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.OperationParameterBaseType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("OperationParameterType")) => Right(scalaxb.fromXML[opengis.gml.OperationParameterType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.OperationParameterBaseType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.OperationParameterType => scalaxb.toXML[opengis.gml.OperationParameterType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_OperationParameterTypeFormat extends scalaxb.ElemNameParser[opengis.gml.OperationParameterType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("OperationParameterType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.OperationParameterType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "minimumOccurs")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "parameterID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.OperationParameterType(p1,
        p2.headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.OperationParameterType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.OperationParameterType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.minimumOccurs map { scalaxb.toXML[BigInt](_, Some("http://www.opengis.net/gml"), Some("minimumOccurs"), __scope, false) } getOrElse {Nil},
        __obj.parameterID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("parameterID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_OperationParameterRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.OperationParameterRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("OperationParameterRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.OperationParameterRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "OperationParameter"))) ^^ 
        { case p1 => opengis.gml.OperationParameterRefTypeSequence1(scalaxb.fromXML[opengis.gml.OperationParameterType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.OperationParameterRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.OperationParameterRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.OperationParameterRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.operationparameterreftypesequence1 map { scalaxb.toXML[opengis.gml.OperationParameterRefTypeSequence1](_, None, Some("operationparameterreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_OperationParameterRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.OperationParameterRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.OperationParameterRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.OperationParameterRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.OperationParameterType](__obj.OperationParameter, Some("http://www.opengis.net/gml"), Some("OperationParameter"), __scope, false)


  }

  trait DefaultOpengisgml_OperationParameterGroupBaseTypeFormat extends scalaxb.XMLFormat[opengis.gml.OperationParameterGroupBaseType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.OperationParameterGroupBaseType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("OperationParameterGroupType")) => Right(scalaxb.fromXML[opengis.gml.OperationParameterGroupType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.OperationParameterGroupBaseType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.OperationParameterGroupType => scalaxb.toXML[opengis.gml.OperationParameterGroupType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_OperationParameterGroupTypeFormat extends scalaxb.ElemNameParser[opengis.gml.OperationParameterGroupType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("OperationParameterGroupType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.OperationParameterGroupType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "minimumOccurs")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "groupID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "maximumOccurs")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "includesParameter")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.gml.OperationParameterGroupType(p1,
        p2.headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) },
        p6 map { scalaxb.fromXML[opengis.gml.AbstractGeneralOperationParameterRefType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.OperationParameterGroupType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.OperationParameterGroupType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.minimumOccurs map { scalaxb.toXML[BigInt](_, Some("http://www.opengis.net/gml"), Some("minimumOccurs"), __scope, false) } getOrElse {Nil},
        __obj.groupID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("groupID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.maximumOccurs map { scalaxb.toXML[BigInt](_, Some("http://www.opengis.net/gml"), Some("maximumOccurs"), __scope, false) } getOrElse {Nil},
        __obj.includesParameter flatMap { scalaxb.toXML[opengis.gml.AbstractGeneralOperationParameterRefType](_, Some("http://www.opengis.net/gml"), Some("includesParameter"), __scope, false) })

  }

  trait DefaultOpengisgml_OperationParameterGroupRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.OperationParameterGroupRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("OperationParameterGroupRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.OperationParameterGroupRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "OperationParameterGroup"))) ^^ 
        { case p1 => opengis.gml.OperationParameterGroupRefTypeSequence1(scalaxb.fromXML[opengis.gml.OperationParameterGroupType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.OperationParameterGroupRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.OperationParameterGroupRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.OperationParameterGroupRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.operationparametergroupreftypesequence1 map { scalaxb.toXML[opengis.gml.OperationParameterGroupRefTypeSequence1](_, None, Some("operationparametergroupreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_OperationParameterGroupRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.OperationParameterGroupRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.OperationParameterGroupRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.OperationParameterGroupRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.OperationParameterGroupType](__obj.OperationParameterGroup, Some("http://www.opengis.net/gml"), Some("OperationParameterGroup"), __scope, false)


  }

  trait DefaultOpengisgml_CoordinateReferenceSystemRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CoordinateReferenceSystemRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CoordinateReferenceSystemRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CoordinateReferenceSystemRefType] =
      phrase(opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "EngineeringCRS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.EngineeringCRSType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeographicCRS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeographicCRSType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "VerticalCRS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.VerticalCRSType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeocentricCRS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeocentricCRSType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ImageCRS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ImageCRSType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TemporalCRS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TemporalCRSType](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.CoordinateReferenceSystemRefTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.CoordinateReferenceSystemRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CoordinateReferenceSystemRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CoordinateReferenceSystemRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.coordinatereferencesystemreftypesequence1 map { scalaxb.toXML[opengis.gml.CoordinateReferenceSystemRefTypeSequence1](_, None, Some("coordinatereferencesystemreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_CoordinateReferenceSystemRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.CoordinateReferenceSystemRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CoordinateReferenceSystemRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.CoordinateReferenceSystemRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._CoordinateReferenceSystem) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_CompoundCRSTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CompoundCRSType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CompoundCRSType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CompoundCRSType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "scope")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "includesCRS")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.gml.CompoundCRSType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.gml.ExtentType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p6 map { scalaxb.fromXML[opengis.gml.CoordinateReferenceSystemRefType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CompoundCRSType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CompoundCRSType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.srsID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("srsID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.validArea map { scalaxb.toXML[opengis.gml.ExtentType](_, Some("http://www.opengis.net/gml"), Some("validArea"), __scope, false) } getOrElse {Nil},
        __obj.scope map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("scope"), __scope, false) } getOrElse {Nil},
        __obj.includesCRS flatMap { scalaxb.toXML[opengis.gml.CoordinateReferenceSystemRefType](_, Some("http://www.opengis.net/gml"), Some("includesCRS"), __scope, false) })

  }

  trait DefaultOpengisgml_CompoundCRSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CompoundCRSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CompoundCRSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CompoundCRSRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompoundCRS"))) ^^ 
        { case p1 => opengis.gml.CompoundCRSRefTypeSequence1(scalaxb.fromXML[opengis.gml.CompoundCRSType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.CompoundCRSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CompoundCRSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CompoundCRSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.compoundcrsreftypesequence1 map { scalaxb.toXML[opengis.gml.CompoundCRSRefTypeSequence1](_, None, Some("compoundcrsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_CompoundCRSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.CompoundCRSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CompoundCRSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.CompoundCRSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.CompoundCRSType](__obj.CompoundCRS, Some("http://www.opengis.net/gml"), Some("CompoundCRS"), __scope, false)


  }

  trait DefaultOpengisgml_GeographicCRSTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GeographicCRSType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GeographicCRSType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GeographicCRSType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "scope")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesEllipsoidalCS")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesGeodeticDatum")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 =>
      opengis.gml.GeographicCRSType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.gml.ExtentType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.EllipsoidalCSRefType](p6, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.GeodeticDatumRefType](p7, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GeographicCRSType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GeographicCRSType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.srsID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("srsID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.validArea map { scalaxb.toXML[opengis.gml.ExtentType](_, Some("http://www.opengis.net/gml"), Some("validArea"), __scope, false) } getOrElse {Nil},
        __obj.scope map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("scope"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.EllipsoidalCSRefType](__obj.usesEllipsoidalCS, Some("http://www.opengis.net/gml"), Some("usesEllipsoidalCS"), __scope, false),
        scalaxb.toXML[opengis.gml.GeodeticDatumRefType](__obj.usesGeodeticDatum, Some("http://www.opengis.net/gml"), Some("usesGeodeticDatum"), __scope, false))

  }

  trait DefaultOpengisgml_GeographicCRSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GeographicCRSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GeographicCRSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GeographicCRSRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeographicCRS"))) ^^ 
        { case p1 => opengis.gml.GeographicCRSRefTypeSequence1(scalaxb.fromXML[opengis.gml.GeographicCRSType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.GeographicCRSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GeographicCRSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GeographicCRSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.geographiccrsreftypesequence1 map { scalaxb.toXML[opengis.gml.GeographicCRSRefTypeSequence1](_, None, Some("geographiccrsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_GeographicCRSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.GeographicCRSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.GeographicCRSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.GeographicCRSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.GeographicCRSType](__obj.GeographicCRS, Some("http://www.opengis.net/gml"), Some("GeographicCRS"), __scope, false)


  }

  trait DefaultOpengisgml_VerticalCRSTypeFormat extends scalaxb.ElemNameParser[opengis.gml.VerticalCRSType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("VerticalCRSType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.VerticalCRSType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "scope")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesVerticalCS")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesVerticalDatum")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 =>
      opengis.gml.VerticalCRSType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.gml.ExtentType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.VerticalCSRefType](p6, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.VerticalDatumRefType](p7, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.VerticalCRSType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.VerticalCRSType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.srsID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("srsID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.validArea map { scalaxb.toXML[opengis.gml.ExtentType](_, Some("http://www.opengis.net/gml"), Some("validArea"), __scope, false) } getOrElse {Nil},
        __obj.scope map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("scope"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.VerticalCSRefType](__obj.usesVerticalCS, Some("http://www.opengis.net/gml"), Some("usesVerticalCS"), __scope, false),
        scalaxb.toXML[opengis.gml.VerticalDatumRefType](__obj.usesVerticalDatum, Some("http://www.opengis.net/gml"), Some("usesVerticalDatum"), __scope, false))

  }

  trait DefaultOpengisgml_VerticalCRSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.VerticalCRSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("VerticalCRSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.VerticalCRSRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "VerticalCRS"))) ^^ 
        { case p1 => opengis.gml.VerticalCRSRefTypeSequence1(scalaxb.fromXML[opengis.gml.VerticalCRSType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.VerticalCRSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.VerticalCRSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.VerticalCRSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.verticalcrsreftypesequence1 map { scalaxb.toXML[opengis.gml.VerticalCRSRefTypeSequence1](_, None, Some("verticalcrsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_VerticalCRSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.VerticalCRSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.VerticalCRSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.VerticalCRSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.VerticalCRSType](__obj.VerticalCRS, Some("http://www.opengis.net/gml"), Some("VerticalCRS"), __scope, false)


  }

  trait DefaultOpengisgml_GeocentricCRSTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GeocentricCRSType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GeocentricCRSType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GeocentricCRSType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "scope")) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesCartesianCS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CartesianCSRefType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesSphericalCS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.SphericalCSRefType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesGeodeticDatum")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 =>
      opengis.gml.GeocentricCRSType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.gml.ExtentType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p6,
        scalaxb.fromXML[opengis.gml.GeodeticDatumRefType](p7, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GeocentricCRSType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GeocentricCRSType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.srsID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("srsID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.validArea map { scalaxb.toXML[opengis.gml.ExtentType](_, Some("http://www.opengis.net/gml"), Some("validArea"), __scope, false) } getOrElse {Nil},
        __obj.scope map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("scope"), __scope, false) } getOrElse {Nil},
        (Some(__obj.geocentriccrstypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.GeocentricCRSTypeOption]](x, x.namespace, x.key, __scope, false)}).get,
        scalaxb.toXML[opengis.gml.GeodeticDatumRefType](__obj.usesGeodeticDatum, Some("http://www.opengis.net/gml"), Some("usesGeodeticDatum"), __scope, false))

  }

  trait DefaultOpengisgml_GeocentricCRSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GeocentricCRSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GeocentricCRSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GeocentricCRSRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeocentricCRS"))) ^^ 
        { case p1 => opengis.gml.GeocentricCRSRefTypeSequence1(scalaxb.fromXML[opengis.gml.GeocentricCRSType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.GeocentricCRSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GeocentricCRSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GeocentricCRSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.geocentriccrsreftypesequence1 map { scalaxb.toXML[opengis.gml.GeocentricCRSRefTypeSequence1](_, None, Some("geocentriccrsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_GeocentricCRSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.GeocentricCRSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.GeocentricCRSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.GeocentricCRSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.GeocentricCRSType](__obj.GeocentricCRS, Some("http://www.opengis.net/gml"), Some("GeocentricCRS"), __scope, false)


  }

  trait DefaultOpengisgml_AbstractGeneralDerivedCRSTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractGeneralDerivedCRSType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractGeneralDerivedCRSType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("ProjectedCRSType")) => Right(scalaxb.fromXML[opengis.gml.ProjectedCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DerivedCRSType")) => Right(scalaxb.fromXML[opengis.gml.DerivedCRSType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractGeneralDerivedCRSType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.ProjectedCRSType => scalaxb.toXML[opengis.gml.ProjectedCRSType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.DerivedCRSType => scalaxb.toXML[opengis.gml.DerivedCRSType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_ProjectedCRSTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ProjectedCRSType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ProjectedCRSType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ProjectedCRSType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "scope")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "baseCRS")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "definedByConversion")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesCartesianCS")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 =>
      opengis.gml.ProjectedCRSType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.gml.ExtentType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.CoordinateReferenceSystemRefType](p6, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.GeneralConversionRefType](p7, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.CartesianCSRefType](p8, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ProjectedCRSType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ProjectedCRSType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.srsID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("srsID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.validArea map { scalaxb.toXML[opengis.gml.ExtentType](_, Some("http://www.opengis.net/gml"), Some("validArea"), __scope, false) } getOrElse {Nil},
        __obj.scope map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("scope"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.CoordinateReferenceSystemRefType](__obj.baseCRS, Some("http://www.opengis.net/gml"), Some("baseCRS"), __scope, false),
        scalaxb.toXML[opengis.gml.GeneralConversionRefType](__obj.definedByConversion, Some("http://www.opengis.net/gml"), Some("definedByConversion"), __scope, false),
        scalaxb.toXML[opengis.gml.CartesianCSRefType](__obj.usesCartesianCS, Some("http://www.opengis.net/gml"), Some("usesCartesianCS"), __scope, false))

  }

  trait DefaultOpengisgml_ProjectedCRSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ProjectedCRSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ProjectedCRSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ProjectedCRSRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ProjectedCRS"))) ^^ 
        { case p1 => opengis.gml.ProjectedCRSRefTypeSequence1(scalaxb.fromXML[opengis.gml.ProjectedCRSType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.ProjectedCRSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ProjectedCRSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ProjectedCRSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.projectedcrsreftypesequence1 map { scalaxb.toXML[opengis.gml.ProjectedCRSRefTypeSequence1](_, None, Some("projectedcrsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_ProjectedCRSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.ProjectedCRSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.ProjectedCRSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.ProjectedCRSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.ProjectedCRSType](__obj.ProjectedCRS, Some("http://www.opengis.net/gml"), Some("ProjectedCRS"), __scope, false)


  }

  trait DefaultOpengisgml_DerivedCRSTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DerivedCRSType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DerivedCRSType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DerivedCRSType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "scope")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "baseCRS")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "definedByConversion")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "derivedCRSType")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesCS")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 =>
      opengis.gml.DerivedCRSType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.gml.ExtentType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.CoordinateReferenceSystemRefType](p6, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.GeneralConversionRefType](p7, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.DerivedCRSTypeType](p8, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.CoordinateSystemRefType](p9, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.DerivedCRSType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DerivedCRSType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.srsID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("srsID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.validArea map { scalaxb.toXML[opengis.gml.ExtentType](_, Some("http://www.opengis.net/gml"), Some("validArea"), __scope, false) } getOrElse {Nil},
        __obj.scope map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("scope"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.CoordinateReferenceSystemRefType](__obj.baseCRS, Some("http://www.opengis.net/gml"), Some("baseCRS"), __scope, false),
        scalaxb.toXML[opengis.gml.GeneralConversionRefType](__obj.definedByConversion, Some("http://www.opengis.net/gml"), Some("definedByConversion"), __scope, false),
        scalaxb.toXML[opengis.gml.DerivedCRSTypeType](__obj.derivedCRSType, Some("http://www.opengis.net/gml"), Some("derivedCRSType"), __scope, false),
        scalaxb.toXML[opengis.gml.CoordinateSystemRefType](__obj.usesCS, Some("http://www.opengis.net/gml"), Some("usesCS"), __scope, false))

  }

  trait DefaultOpengisgml_DerivedCRSTypeTypeFormat extends scalaxb.XMLFormat[opengis.gml.DerivedCRSTypeType] with scalaxb.CanWriteChildNodes[opengis.gml.DerivedCRSTypeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.DerivedCRSTypeType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.DerivedCRSTypeType(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@codeSpace").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@codeSpace" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.DerivedCRSTypeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@codeSpace", _) => __obj.codeSpace foreach { x => attr = scala.xml.Attribute(null, "codeSpace", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DerivedCRSTypeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_DerivedCRSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DerivedCRSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DerivedCRSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DerivedCRSRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "DerivedCRS"))) ^^ 
        { case p1 => opengis.gml.DerivedCRSRefTypeSequence1(scalaxb.fromXML[opengis.gml.DerivedCRSType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.DerivedCRSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.DerivedCRSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DerivedCRSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.derivedcrsreftypesequence1 map { scalaxb.toXML[opengis.gml.DerivedCRSRefTypeSequence1](_, None, Some("derivedcrsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_DerivedCRSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.DerivedCRSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.DerivedCRSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.DerivedCRSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.DerivedCRSType](__obj.DerivedCRS, Some("http://www.opengis.net/gml"), Some("DerivedCRS"), __scope, false)


  }

  trait DefaultOpengisgml_EngineeringCRSTypeFormat extends scalaxb.ElemNameParser[opengis.gml.EngineeringCRSType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("EngineeringCRSType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.EngineeringCRSType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "scope")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesCS")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesEngineeringDatum")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 =>
      opengis.gml.EngineeringCRSType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.gml.ExtentType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.CoordinateSystemRefType](p6, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.EngineeringDatumRefType](p7, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.EngineeringCRSType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.EngineeringCRSType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.srsID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("srsID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.validArea map { scalaxb.toXML[opengis.gml.ExtentType](_, Some("http://www.opengis.net/gml"), Some("validArea"), __scope, false) } getOrElse {Nil},
        __obj.scope map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("scope"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.CoordinateSystemRefType](__obj.usesCS, Some("http://www.opengis.net/gml"), Some("usesCS"), __scope, false),
        scalaxb.toXML[opengis.gml.EngineeringDatumRefType](__obj.usesEngineeringDatum, Some("http://www.opengis.net/gml"), Some("usesEngineeringDatum"), __scope, false))

  }

  trait DefaultOpengisgml_EngineeringCRSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.EngineeringCRSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("EngineeringCRSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.EngineeringCRSRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "EngineeringCRS"))) ^^ 
        { case p1 => opengis.gml.EngineeringCRSRefTypeSequence1(scalaxb.fromXML[opengis.gml.EngineeringCRSType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.EngineeringCRSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.EngineeringCRSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.EngineeringCRSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.engineeringcrsreftypesequence1 map { scalaxb.toXML[opengis.gml.EngineeringCRSRefTypeSequence1](_, None, Some("engineeringcrsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_EngineeringCRSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.EngineeringCRSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.EngineeringCRSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.EngineeringCRSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.EngineeringCRSType](__obj.EngineeringCRS, Some("http://www.opengis.net/gml"), Some("EngineeringCRS"), __scope, false)


  }

  trait DefaultOpengisgml_ImageCRSTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ImageCRSType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ImageCRSType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ImageCRSType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "scope")) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesCartesianCS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CartesianCSRefType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesObliqueCartesianCS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ObliqueCartesianCSRefType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesImageDatum")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 =>
      opengis.gml.ImageCRSType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.gml.ExtentType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p6,
        scalaxb.fromXML[opengis.gml.ImageDatumRefType](p7, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ImageCRSType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ImageCRSType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.srsID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("srsID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.validArea map { scalaxb.toXML[opengis.gml.ExtentType](_, Some("http://www.opengis.net/gml"), Some("validArea"), __scope, false) } getOrElse {Nil},
        __obj.scope map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("scope"), __scope, false) } getOrElse {Nil},
        (Some(__obj.imagecrstypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.ImageCRSTypeOption]](x, x.namespace, x.key, __scope, false)}).get,
        scalaxb.toXML[opengis.gml.ImageDatumRefType](__obj.usesImageDatum, Some("http://www.opengis.net/gml"), Some("usesImageDatum"), __scope, false))

  }

  trait DefaultOpengisgml_ImageCRSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ImageCRSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ImageCRSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ImageCRSRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ImageCRS"))) ^^ 
        { case p1 => opengis.gml.ImageCRSRefTypeSequence1(scalaxb.fromXML[opengis.gml.ImageCRSType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.ImageCRSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ImageCRSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ImageCRSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.imagecrsreftypesequence1 map { scalaxb.toXML[opengis.gml.ImageCRSRefTypeSequence1](_, None, Some("imagecrsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_ImageCRSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.ImageCRSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.ImageCRSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.ImageCRSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.ImageCRSType](__obj.ImageCRS, Some("http://www.opengis.net/gml"), Some("ImageCRS"), __scope, false)


  }

  trait DefaultOpengisgml_TemporalCRSTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TemporalCRSType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TemporalCRSType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TemporalCRSType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "scope")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesTemporalCS")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesTemporalDatum")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 =>
      opengis.gml.TemporalCRSType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.gml.ExtentType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.TemporalCSRefType](p6, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.TemporalDatumRefType](p7, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TemporalCRSType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TemporalCRSType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.srsID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("srsID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.validArea map { scalaxb.toXML[opengis.gml.ExtentType](_, Some("http://www.opengis.net/gml"), Some("validArea"), __scope, false) } getOrElse {Nil},
        __obj.scope map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("scope"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.TemporalCSRefType](__obj.usesTemporalCS, Some("http://www.opengis.net/gml"), Some("usesTemporalCS"), __scope, false),
        scalaxb.toXML[opengis.gml.TemporalDatumRefType](__obj.usesTemporalDatum, Some("http://www.opengis.net/gml"), Some("usesTemporalDatum"), __scope, false))

  }

  trait DefaultOpengisgml_TemporalCRSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TemporalCRSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TemporalCRSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TemporalCRSRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TemporalCRS"))) ^^ 
        { case p1 => opengis.gml.TemporalCRSRefTypeSequence1(scalaxb.fromXML[opengis.gml.TemporalCRSType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.TemporalCRSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TemporalCRSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TemporalCRSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.temporalcrsreftypesequence1 map { scalaxb.toXML[opengis.gml.TemporalCRSRefTypeSequence1](_, None, Some("temporalcrsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TemporalCRSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.TemporalCRSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TemporalCRSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.TemporalCRSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.TemporalCRSType](__obj.TemporalCRS, Some("http://www.opengis.net/gml"), Some("TemporalCRS"), __scope, false)


  }

  trait DefaultOpengisgml_CoordinateSystemAxisBaseTypeFormat extends scalaxb.XMLFormat[opengis.gml.CoordinateSystemAxisBaseType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CoordinateSystemAxisBaseType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("CoordinateSystemAxisType")) => Right(scalaxb.fromXML[opengis.gml.CoordinateSystemAxisType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.CoordinateSystemAxisBaseType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.CoordinateSystemAxisType => scalaxb.toXML[opengis.gml.CoordinateSystemAxisType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_CoordinateSystemAxisTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CoordinateSystemAxisType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CoordinateSystemAxisType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CoordinateSystemAxisType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "axisID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "axisAbbrev")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "axisDirection")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.gml.CoordinateSystemAxisType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.CodeTypable](p4, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.CodeTypable](p5, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@{http://www.opengis.net/gml}uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CoordinateSystemAxisType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}uom", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "uom", __obj.gmluom.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CoordinateSystemAxisType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.axisID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("axisID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.CodeTypable](__obj.axisAbbrev, Some("http://www.opengis.net/gml"), Some("axisAbbrev"), __scope, false),
        scalaxb.toXML[opengis.gml.CodeTypable](__obj.axisDirection, Some("http://www.opengis.net/gml"), Some("axisDirection"), __scope, false))

  }

  trait DefaultOpengisgml_CoordinateSystemAxisRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CoordinateSystemAxisRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CoordinateSystemAxisRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CoordinateSystemAxisRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CoordinateSystemAxis"))) ^^ 
        { case p1 => opengis.gml.CoordinateSystemAxisRefTypeSequence1(scalaxb.fromXML[opengis.gml.CoordinateSystemAxisType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.CoordinateSystemAxisRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CoordinateSystemAxisRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CoordinateSystemAxisRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.coordinatesystemaxisreftypesequence1 map { scalaxb.toXML[opengis.gml.CoordinateSystemAxisRefTypeSequence1](_, None, Some("coordinatesystemaxisreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_CoordinateSystemAxisRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.CoordinateSystemAxisRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CoordinateSystemAxisRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.CoordinateSystemAxisRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.CoordinateSystemAxisType](__obj.CoordinateSystemAxis, Some("http://www.opengis.net/gml"), Some("CoordinateSystemAxis"), __scope, false)


  }

  trait DefaultOpengisgml_AbstractCoordinateSystemBaseTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractCoordinateSystemBaseType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractCoordinateSystemBaseType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("AbstractCoordinateSystemType")) => Right(scalaxb.fromXML[opengis.gml.AbstractCoordinateSystemType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ObliqueCartesianCSType")) => Right(scalaxb.fromXML[opengis.gml.ObliqueCartesianCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CylindricalCSType")) => Right(scalaxb.fromXML[opengis.gml.CylindricalCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PolarCSType")) => Right(scalaxb.fromXML[opengis.gml.PolarCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("SphericalCSType")) => Right(scalaxb.fromXML[opengis.gml.SphericalCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("UserDefinedCSType")) => Right(scalaxb.fromXML[opengis.gml.UserDefinedCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("LinearCSType")) => Right(scalaxb.fromXML[opengis.gml.LinearCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TemporalCSType")) => Right(scalaxb.fromXML[opengis.gml.TemporalCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("VerticalCSType")) => Right(scalaxb.fromXML[opengis.gml.VerticalCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CartesianCSType")) => Right(scalaxb.fromXML[opengis.gml.CartesianCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("EllipsoidalCSType")) => Right(scalaxb.fromXML[opengis.gml.EllipsoidalCSType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractCoordinateSystemBaseType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.AbstractCoordinateSystemType => scalaxb.toXML[opengis.gml.AbstractCoordinateSystemType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_AbstractCoordinateSystemTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractCoordinateSystemType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractCoordinateSystemType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("ObliqueCartesianCSType")) => Right(scalaxb.fromXML[opengis.gml.ObliqueCartesianCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CylindricalCSType")) => Right(scalaxb.fromXML[opengis.gml.CylindricalCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PolarCSType")) => Right(scalaxb.fromXML[opengis.gml.PolarCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("SphericalCSType")) => Right(scalaxb.fromXML[opengis.gml.SphericalCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("UserDefinedCSType")) => Right(scalaxb.fromXML[opengis.gml.UserDefinedCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("LinearCSType")) => Right(scalaxb.fromXML[opengis.gml.LinearCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TemporalCSType")) => Right(scalaxb.fromXML[opengis.gml.TemporalCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("VerticalCSType")) => Right(scalaxb.fromXML[opengis.gml.VerticalCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CartesianCSType")) => Right(scalaxb.fromXML[opengis.gml.CartesianCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("EllipsoidalCSType")) => Right(scalaxb.fromXML[opengis.gml.EllipsoidalCSType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractCoordinateSystemType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.ObliqueCartesianCSType => scalaxb.toXML[opengis.gml.ObliqueCartesianCSType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.CylindricalCSType => scalaxb.toXML[opengis.gml.CylindricalCSType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.PolarCSType => scalaxb.toXML[opengis.gml.PolarCSType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.SphericalCSType => scalaxb.toXML[opengis.gml.SphericalCSType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.UserDefinedCSType => scalaxb.toXML[opengis.gml.UserDefinedCSType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.LinearCSType => scalaxb.toXML[opengis.gml.LinearCSType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.TemporalCSType => scalaxb.toXML[opengis.gml.TemporalCSType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.VerticalCSType => scalaxb.toXML[opengis.gml.VerticalCSType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.CartesianCSType => scalaxb.toXML[opengis.gml.CartesianCSType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.EllipsoidalCSType => scalaxb.toXML[opengis.gml.EllipsoidalCSType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_CoordinateSystemRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CoordinateSystemRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CoordinateSystemRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CoordinateSystemRefType] =
      phrase(opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "EllipsoidalCS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.EllipsoidalCSType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CartesianCS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CartesianCSType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "VerticalCS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.VerticalCSType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TemporalCS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TemporalCSType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "LinearCS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LinearCSType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "UserDefinedCS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.UserDefinedCSType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "SphericalCS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.SphericalCSType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "PolarCS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolarCSType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CylindricalCS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CylindricalCSType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ObliqueCartesianCS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ObliqueCartesianCSType](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.CoordinateSystemRefTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.CoordinateSystemRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CoordinateSystemRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CoordinateSystemRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.coordinatesystemreftypesequence1 map { scalaxb.toXML[opengis.gml.CoordinateSystemRefTypeSequence1](_, None, Some("coordinatesystemreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_CoordinateSystemRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.CoordinateSystemRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CoordinateSystemRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.CoordinateSystemRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._CoordinateSystem) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_EllipsoidalCSTypeFormat extends scalaxb.ElemNameParser[opengis.gml.EllipsoidalCSType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("EllipsoidalCSType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.EllipsoidalCSType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesAxis")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.EllipsoidalCSType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.CoordinateSystemAxisRefType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.EllipsoidalCSType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.EllipsoidalCSType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.csID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("csID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.usesAxis flatMap { scalaxb.toXML[opengis.gml.CoordinateSystemAxisRefType](_, Some("http://www.opengis.net/gml"), Some("usesAxis"), __scope, false) })

  }

  trait DefaultOpengisgml_EllipsoidalCSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.EllipsoidalCSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("EllipsoidalCSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.EllipsoidalCSRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "EllipsoidalCS"))) ^^ 
        { case p1 => opengis.gml.EllipsoidalCSRefTypeSequence1(scalaxb.fromXML[opengis.gml.EllipsoidalCSType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.EllipsoidalCSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.EllipsoidalCSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.EllipsoidalCSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.ellipsoidalcsreftypesequence1 map { scalaxb.toXML[opengis.gml.EllipsoidalCSRefTypeSequence1](_, None, Some("ellipsoidalcsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_EllipsoidalCSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.EllipsoidalCSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.EllipsoidalCSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.EllipsoidalCSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.EllipsoidalCSType](__obj.EllipsoidalCS, Some("http://www.opengis.net/gml"), Some("EllipsoidalCS"), __scope, false)


  }

  trait DefaultOpengisgml_CartesianCSTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CartesianCSType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CartesianCSType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CartesianCSType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesAxis")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.CartesianCSType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.CoordinateSystemAxisRefType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CartesianCSType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CartesianCSType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.csID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("csID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.usesAxis flatMap { scalaxb.toXML[opengis.gml.CoordinateSystemAxisRefType](_, Some("http://www.opengis.net/gml"), Some("usesAxis"), __scope, false) })

  }

  trait DefaultOpengisgml_CartesianCSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CartesianCSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CartesianCSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CartesianCSRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CartesianCS"))) ^^ 
        { case p1 => opengis.gml.CartesianCSRefTypeSequence1(scalaxb.fromXML[opengis.gml.CartesianCSType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.CartesianCSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CartesianCSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CartesianCSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.cartesiancsreftypesequence1 map { scalaxb.toXML[opengis.gml.CartesianCSRefTypeSequence1](_, None, Some("cartesiancsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_CartesianCSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.CartesianCSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CartesianCSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.CartesianCSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.CartesianCSType](__obj.CartesianCS, Some("http://www.opengis.net/gml"), Some("CartesianCS"), __scope, false)


  }

  trait DefaultOpengisgml_VerticalCSTypeFormat extends scalaxb.ElemNameParser[opengis.gml.VerticalCSType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("VerticalCSType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.VerticalCSType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesAxis")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.VerticalCSType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.CoordinateSystemAxisRefType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.VerticalCSType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.VerticalCSType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.csID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("csID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.usesAxis flatMap { scalaxb.toXML[opengis.gml.CoordinateSystemAxisRefType](_, Some("http://www.opengis.net/gml"), Some("usesAxis"), __scope, false) })

  }

  trait DefaultOpengisgml_VerticalCSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.VerticalCSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("VerticalCSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.VerticalCSRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "VerticalCS"))) ^^ 
        { case p1 => opengis.gml.VerticalCSRefTypeSequence1(scalaxb.fromXML[opengis.gml.VerticalCSType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.VerticalCSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.VerticalCSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.VerticalCSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.verticalcsreftypesequence1 map { scalaxb.toXML[opengis.gml.VerticalCSRefTypeSequence1](_, None, Some("verticalcsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_VerticalCSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.VerticalCSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.VerticalCSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.VerticalCSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.VerticalCSType](__obj.VerticalCS, Some("http://www.opengis.net/gml"), Some("VerticalCS"), __scope, false)


  }

  trait DefaultOpengisgml_TemporalCSTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TemporalCSType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TemporalCSType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TemporalCSType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesAxis")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.TemporalCSType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.CoordinateSystemAxisRefType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TemporalCSType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TemporalCSType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.csID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("csID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.usesAxis flatMap { scalaxb.toXML[opengis.gml.CoordinateSystemAxisRefType](_, Some("http://www.opengis.net/gml"), Some("usesAxis"), __scope, false) })

  }

  trait DefaultOpengisgml_TemporalCSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TemporalCSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TemporalCSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TemporalCSRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TemporalCS"))) ^^ 
        { case p1 => opengis.gml.TemporalCSRefTypeSequence1(scalaxb.fromXML[opengis.gml.TemporalCSType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.TemporalCSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TemporalCSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TemporalCSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.temporalcsreftypesequence1 map { scalaxb.toXML[opengis.gml.TemporalCSRefTypeSequence1](_, None, Some("temporalcsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TemporalCSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.TemporalCSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TemporalCSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.TemporalCSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.TemporalCSType](__obj.TemporalCS, Some("http://www.opengis.net/gml"), Some("TemporalCS"), __scope, false)


  }

  trait DefaultOpengisgml_LinearCSTypeFormat extends scalaxb.ElemNameParser[opengis.gml.LinearCSType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("LinearCSType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.LinearCSType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesAxis")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.LinearCSType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.CoordinateSystemAxisRefType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.LinearCSType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.LinearCSType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.csID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("csID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.usesAxis flatMap { scalaxb.toXML[opengis.gml.CoordinateSystemAxisRefType](_, Some("http://www.opengis.net/gml"), Some("usesAxis"), __scope, false) })

  }

  trait DefaultOpengisgml_LinearCSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.LinearCSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("LinearCSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.LinearCSRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "LinearCS"))) ^^ 
        { case p1 => opengis.gml.LinearCSRefTypeSequence1(scalaxb.fromXML[opengis.gml.LinearCSType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.LinearCSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.LinearCSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.LinearCSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.linearcsreftypesequence1 map { scalaxb.toXML[opengis.gml.LinearCSRefTypeSequence1](_, None, Some("linearcsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_LinearCSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.LinearCSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.LinearCSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.LinearCSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.LinearCSType](__obj.LinearCS, Some("http://www.opengis.net/gml"), Some("LinearCS"), __scope, false)


  }

  trait DefaultOpengisgml_UserDefinedCSTypeFormat extends scalaxb.ElemNameParser[opengis.gml.UserDefinedCSType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("UserDefinedCSType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.UserDefinedCSType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesAxis")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.UserDefinedCSType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.CoordinateSystemAxisRefType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.UserDefinedCSType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.UserDefinedCSType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.csID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("csID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.usesAxis flatMap { scalaxb.toXML[opengis.gml.CoordinateSystemAxisRefType](_, Some("http://www.opengis.net/gml"), Some("usesAxis"), __scope, false) })

  }

  trait DefaultOpengisgml_UserDefinedCSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.UserDefinedCSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("UserDefinedCSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.UserDefinedCSRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "UserDefinedCS"))) ^^ 
        { case p1 => opengis.gml.UserDefinedCSRefTypeSequence1(scalaxb.fromXML[opengis.gml.UserDefinedCSType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.UserDefinedCSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.UserDefinedCSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.UserDefinedCSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.userdefinedcsreftypesequence1 map { scalaxb.toXML[opengis.gml.UserDefinedCSRefTypeSequence1](_, None, Some("userdefinedcsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_UserDefinedCSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.UserDefinedCSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.UserDefinedCSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.UserDefinedCSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.UserDefinedCSType](__obj.UserDefinedCS, Some("http://www.opengis.net/gml"), Some("UserDefinedCS"), __scope, false)


  }

  trait DefaultOpengisgml_SphericalCSTypeFormat extends scalaxb.ElemNameParser[opengis.gml.SphericalCSType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("SphericalCSType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.SphericalCSType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesAxis")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.SphericalCSType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.CoordinateSystemAxisRefType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.SphericalCSType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.SphericalCSType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.csID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("csID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.usesAxis flatMap { scalaxb.toXML[opengis.gml.CoordinateSystemAxisRefType](_, Some("http://www.opengis.net/gml"), Some("usesAxis"), __scope, false) })

  }

  trait DefaultOpengisgml_SphericalCSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.SphericalCSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("SphericalCSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.SphericalCSRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "SphericalCS"))) ^^ 
        { case p1 => opengis.gml.SphericalCSRefTypeSequence1(scalaxb.fromXML[opengis.gml.SphericalCSType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.SphericalCSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.SphericalCSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.SphericalCSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.sphericalcsreftypesequence1 map { scalaxb.toXML[opengis.gml.SphericalCSRefTypeSequence1](_, None, Some("sphericalcsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_SphericalCSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.SphericalCSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.SphericalCSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.SphericalCSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.SphericalCSType](__obj.SphericalCS, Some("http://www.opengis.net/gml"), Some("SphericalCS"), __scope, false)


  }

  trait DefaultOpengisgml_PolarCSTypeFormat extends scalaxb.ElemNameParser[opengis.gml.PolarCSType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("PolarCSType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.PolarCSType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesAxis")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.PolarCSType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.CoordinateSystemAxisRefType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.PolarCSType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.PolarCSType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.csID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("csID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.usesAxis flatMap { scalaxb.toXML[opengis.gml.CoordinateSystemAxisRefType](_, Some("http://www.opengis.net/gml"), Some("usesAxis"), __scope, false) })

  }

  trait DefaultOpengisgml_PolarCSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.PolarCSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("PolarCSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.PolarCSRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "PolarCS"))) ^^ 
        { case p1 => opengis.gml.PolarCSRefTypeSequence1(scalaxb.fromXML[opengis.gml.PolarCSType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.PolarCSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.PolarCSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.PolarCSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.polarcsreftypesequence1 map { scalaxb.toXML[opengis.gml.PolarCSRefTypeSequence1](_, None, Some("polarcsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_PolarCSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.PolarCSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.PolarCSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.PolarCSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.PolarCSType](__obj.PolarCS, Some("http://www.opengis.net/gml"), Some("PolarCS"), __scope, false)


  }

  trait DefaultOpengisgml_CylindricalCSTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CylindricalCSType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CylindricalCSType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CylindricalCSType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesAxis")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.CylindricalCSType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.CoordinateSystemAxisRefType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CylindricalCSType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CylindricalCSType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.csID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("csID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.usesAxis flatMap { scalaxb.toXML[opengis.gml.CoordinateSystemAxisRefType](_, Some("http://www.opengis.net/gml"), Some("usesAxis"), __scope, false) })

  }

  trait DefaultOpengisgml_CylindricalCSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CylindricalCSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CylindricalCSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CylindricalCSRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CylindricalCS"))) ^^ 
        { case p1 => opengis.gml.CylindricalCSRefTypeSequence1(scalaxb.fromXML[opengis.gml.CylindricalCSType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.CylindricalCSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CylindricalCSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CylindricalCSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.cylindricalcsreftypesequence1 map { scalaxb.toXML[opengis.gml.CylindricalCSRefTypeSequence1](_, None, Some("cylindricalcsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_CylindricalCSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.CylindricalCSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CylindricalCSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.CylindricalCSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.CylindricalCSType](__obj.CylindricalCS, Some("http://www.opengis.net/gml"), Some("CylindricalCS"), __scope, false)


  }

  trait DefaultOpengisgml_ObliqueCartesianCSTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ObliqueCartesianCSType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ObliqueCartesianCSType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ObliqueCartesianCSType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesAxis")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.ObliqueCartesianCSType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.CoordinateSystemAxisRefType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ObliqueCartesianCSType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ObliqueCartesianCSType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.csID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("csID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.usesAxis flatMap { scalaxb.toXML[opengis.gml.CoordinateSystemAxisRefType](_, Some("http://www.opengis.net/gml"), Some("usesAxis"), __scope, false) })

  }

  trait DefaultOpengisgml_ObliqueCartesianCSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ObliqueCartesianCSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ObliqueCartesianCSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ObliqueCartesianCSRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ObliqueCartesianCS"))) ^^ 
        { case p1 => opengis.gml.ObliqueCartesianCSRefTypeSequence1(scalaxb.fromXML[opengis.gml.ObliqueCartesianCSType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.ObliqueCartesianCSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ObliqueCartesianCSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ObliqueCartesianCSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.obliquecartesiancsreftypesequence1 map { scalaxb.toXML[opengis.gml.ObliqueCartesianCSRefTypeSequence1](_, None, Some("obliquecartesiancsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_ObliqueCartesianCSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.ObliqueCartesianCSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.ObliqueCartesianCSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.ObliqueCartesianCSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.ObliqueCartesianCSType](__obj.ObliqueCartesianCS, Some("http://www.opengis.net/gml"), Some("ObliqueCartesianCS"), __scope, false)


  }

  trait DefaultOpengisgml_AbstractCoverageTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractCoverageType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractCoverageType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("AbstractContinuousCoverageType")) => Right(scalaxb.fromXML[opengis.gml.AbstractContinuousCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractDiscreteCoverageType")) => Right(scalaxb.fromXML[opengis.gml.AbstractDiscreteCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("RectifiedGridCoverageType")) => Right(scalaxb.fromXML[opengis.gml.RectifiedGridCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GridCoverageType")) => Right(scalaxb.fromXML[opengis.gml.GridCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiSolidCoverageType")) => Right(scalaxb.fromXML[opengis.gml.MultiSolidCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiSurfaceCoverageType")) => Right(scalaxb.fromXML[opengis.gml.MultiSurfaceCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiCurveCoverageType")) => Right(scalaxb.fromXML[opengis.gml.MultiCurveCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiPointCoverageType")) => Right(scalaxb.fromXML[opengis.gml.MultiPointCoverageType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractCoverageType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.AbstractContinuousCoverageType => scalaxb.toXML[opengis.gml.AbstractContinuousCoverageType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractDiscreteCoverageType => scalaxb.toXML[opengis.gml.AbstractDiscreteCoverageType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_AbstractContinuousCoverageTypeFormat extends scalaxb.ElemNameParser[opengis.gml.AbstractContinuousCoverageType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("AbstractContinuousCoverageType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.AbstractContinuousCoverageType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "boundedBy")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "location")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LocationPropertyTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rectifiedGridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RectifiedGridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "gridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSolidDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSolidDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSurfaceDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSurfaceDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiCurveDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiCurveDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiPointDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiPointDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rectifiedGridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RectifiedGridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "gridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSolidDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSolidDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSurfaceDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSurfaceDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiCurveDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiCurveDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiPointDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiPointDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "domainSet")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DomainSetTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rangeSet")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coverageFunction")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.gml.AbstractContinuousCoverageType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.BoundingShapeType](_, scalaxb.ElemName(node) :: stack) },
        p3,
        p4,
        scalaxb.fromXML[opengis.gml.RangeSetType](p5, scalaxb.ElemName(node) :: stack),
        p6.headOption map { scalaxb.fromXML[opengis.gml.CoverageFunctionType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@dimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@dimension" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.AbstractContinuousCoverageType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@dimension", _) => __obj.dimension foreach { x => attr = scala.xml.Attribute(null, "dimension", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.AbstractContinuousCoverageType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.boundedBy map { scalaxb.toXML[opengis.gml.BoundingShapeType](_, Some("http://www.opengis.net/gml"), Some("boundedBy"), __scope, false) } getOrElse {Nil},
        __obj.location map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        (Some(__obj.domainSet) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get,
        scalaxb.toXML[opengis.gml.RangeSetType](__obj.rangeSet, Some("http://www.opengis.net/gml"), Some("rangeSet"), __scope, false),
        __obj.coverageFunction map { scalaxb.toXML[opengis.gml.CoverageFunctionType](_, Some("http://www.opengis.net/gml"), Some("coverageFunction"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_AbstractDiscreteCoverageTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractDiscreteCoverageType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractDiscreteCoverageType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("RectifiedGridCoverageType")) => Right(scalaxb.fromXML[opengis.gml.RectifiedGridCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GridCoverageType")) => Right(scalaxb.fromXML[opengis.gml.GridCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiSolidCoverageType")) => Right(scalaxb.fromXML[opengis.gml.MultiSolidCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiSurfaceCoverageType")) => Right(scalaxb.fromXML[opengis.gml.MultiSurfaceCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiCurveCoverageType")) => Right(scalaxb.fromXML[opengis.gml.MultiCurveCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiPointCoverageType")) => Right(scalaxb.fromXML[opengis.gml.MultiPointCoverageType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractDiscreteCoverageType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.RectifiedGridCoverageType => scalaxb.toXML[opengis.gml.RectifiedGridCoverageType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.GridCoverageType => scalaxb.toXML[opengis.gml.GridCoverageType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.MultiSolidCoverageType => scalaxb.toXML[opengis.gml.MultiSolidCoverageType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.MultiSurfaceCoverageType => scalaxb.toXML[opengis.gml.MultiSurfaceCoverageType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.MultiCurveCoverageType => scalaxb.toXML[opengis.gml.MultiCurveCoverageType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.MultiPointCoverageType => scalaxb.toXML[opengis.gml.MultiPointCoverageType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_DomainSetTypableFormat extends scalaxb.XMLFormat[opengis.gml.DomainSetTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.DomainSetTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("MultiPointDomainType")) => Right(scalaxb.fromXML[opengis.gml.MultiPointDomainType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiCurveDomainType")) => Right(scalaxb.fromXML[opengis.gml.MultiCurveDomainType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiSurfaceDomainType")) => Right(scalaxb.fromXML[opengis.gml.MultiSurfaceDomainType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiSolidDomainType")) => Right(scalaxb.fromXML[opengis.gml.MultiSolidDomainType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GridDomainType")) => Right(scalaxb.fromXML[opengis.gml.GridDomainType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("RectifiedGridDomainType")) => Right(scalaxb.fromXML[opengis.gml.RectifiedGridDomainType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.DomainSetType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.DomainSetTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.MultiPointDomainType => scalaxb.toXML[opengis.gml.MultiPointDomainType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.MultiCurveDomainType => scalaxb.toXML[opengis.gml.MultiCurveDomainType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.MultiSurfaceDomainType => scalaxb.toXML[opengis.gml.MultiSurfaceDomainType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.MultiSolidDomainType => scalaxb.toXML[opengis.gml.MultiSolidDomainType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.GridDomainType => scalaxb.toXML[opengis.gml.GridDomainType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.RectifiedGridDomainType => scalaxb.toXML[opengis.gml.RectifiedGridDomainType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.DomainSetType => scalaxb.toXML[opengis.gml.DomainSetType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_DomainSetTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DomainSetType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DomainSetType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DomainSetType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeometricComplex")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeometricComplexType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.DomainSetType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.DomainSetType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DomainSetType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.domainsettypableoption map { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.DomainSetTypableOption]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_RangeSetTypeFormat extends scalaxb.ElemNameParser[opengis.gml.RangeSetType] with Opengisgml_ScalarValueListGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("RangeSetType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.RangeSetType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ValueArray")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ValueArrayType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      (parseScalarValueListGroup(node, scalaxb.ElemName(node) :: stack, true)) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "DataBlock")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DataBlockType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "File")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.FileType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.RangeSetType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.RangeSetType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.rangesettypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_CoverageFunctionTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CoverageFunctionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CoverageFunctionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CoverageFunctionType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "MappingRule")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.StringOrRefType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "IndexMap")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.IndexMapType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GridFunction")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GridFunctionTypable](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.CoverageFunctionType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.CoverageFunctionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.coveragefunctiontypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.CoverageFunctionTypeOption]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisgml_DataBlockTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DataBlockType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DataBlockType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DataBlockType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rangeParameters")) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "tupleList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordinatesType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "doubleOrNullTupleList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 =>
      opengis.gml.DataBlockType(scalaxb.fromXML[opengis.gml.RangeParametersType](p1, scalaxb.ElemName(node) :: stack),
        p2) })
    
    def writesChildNodes(__obj: opengis.gml.DataBlockType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.RangeParametersType](__obj.rangeParameters, Some("http://www.opengis.net/gml"), Some("rangeParameters"), __scope, false),
        (Some(__obj.datablocktypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisgml_FileTypeFormat extends scalaxb.ElemNameParser[opengis.gml.FileType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("FileType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.FileType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rangeParameters")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "fileName")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "fileStructure")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "mimeType")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "compression")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.gml.FileType(scalaxb.fromXML[opengis.gml.RangeParametersType](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[java.net.URI](p2, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.FileValueModelType](p3, scalaxb.ElemName(node) :: stack),
        p4.headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.gml.FileType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.RangeParametersType](__obj.rangeParameters, Some("http://www.opengis.net/gml"), Some("rangeParameters"), __scope, false),
        scalaxb.toXML[java.net.URI](__obj.fileName, Some("http://www.opengis.net/gml"), Some("fileName"), __scope, false),
        scalaxb.toXML[opengis.gml.FileValueModelType](__obj.fileStructure, Some("http://www.opengis.net/gml"), Some("fileStructure"), __scope, false),
        __obj.mimeType map { scalaxb.toXML[java.net.URI](_, Some("http://www.opengis.net/gml"), Some("mimeType"), __scope, false) } getOrElse {Nil},
        __obj.compression map { scalaxb.toXML[java.net.URI](_, Some("http://www.opengis.net/gml"), Some("compression"), __scope, false) } getOrElse {Nil})

  }

  def buildOpengisgml_FileValueModelTypeFormat = new DefaultOpengisgml_FileValueModelTypeFormat {}
  trait DefaultOpengisgml_FileValueModelTypeFormat extends scalaxb.XMLFormat[opengis.gml.FileValueModelType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.FileValueModelType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.FileValueModelType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Record Interleaved")) => opengis.gml.RecordInterleaved

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.FileValueModelType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.FileValueModelType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisgml_RangeParametersTypeFormat extends scalaxb.ElemNameParser[opengis.gml.RangeParametersType] with Opengisgml_ValueObjectGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("RangeParametersType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.RangeParametersType] =
      phrase(opt(((parseValueObjectGroup(node, scalaxb.ElemName(node) :: stack))) ^^ 
        { case p1 => opengis.gml.RangeParametersTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.RangeParametersType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.RangeParametersType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.RangeParametersType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.rangeparameterstypesequence1 map { scalaxb.toXML[opengis.gml.RangeParametersTypeSequence1](_, None, Some("rangeparameterstypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_RangeParametersTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.RangeParametersTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.RangeParametersTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.RangeParametersTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj.valueObjectOption1) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_GridFunctionTypableFormat extends scalaxb.XMLFormat[opengis.gml.GridFunctionTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.GridFunctionTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("IndexMapType")) => Right(scalaxb.fromXML[opengis.gml.IndexMapType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.GridFunctionType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.GridFunctionTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.IndexMapType => scalaxb.toXML[opengis.gml.IndexMapType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.GridFunctionType => scalaxb.toXML[opengis.gml.GridFunctionType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_GridFunctionTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GridFunctionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GridFunctionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GridFunctionType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "sequenceRule")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "startPoint")) ^^
      { case p1 ~ p2 =>
      opengis.gml.GridFunctionType(p1.headOption map { scalaxb.fromXML[opengis.gml.SequenceRuleType](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[Seq[BigInt]](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.gml.GridFunctionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.sequenceRule map { scalaxb.toXML[opengis.gml.SequenceRuleType](_, Some("http://www.opengis.net/gml"), Some("sequenceRule"), __scope, false) } getOrElse {Nil},
        __obj.startPoint map { scalaxb.toXML[Seq[BigInt]](_, Some("http://www.opengis.net/gml"), Some("startPoint"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_IndexMapTypeFormat extends scalaxb.ElemNameParser[opengis.gml.IndexMapType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("IndexMapType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.IndexMapType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "sequenceRule")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "startPoint")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "lookUpTable")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.IndexMapType(p1.headOption map { scalaxb.fromXML[opengis.gml.SequenceRuleType](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[Seq[BigInt]](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[Seq[BigInt]](p3, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.gml.IndexMapType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.sequenceRule map { scalaxb.toXML[opengis.gml.SequenceRuleType](_, Some("http://www.opengis.net/gml"), Some("sequenceRule"), __scope, false) } getOrElse {Nil},
        __obj.startPoint map { scalaxb.toXML[Seq[BigInt]](_, Some("http://www.opengis.net/gml"), Some("startPoint"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[Seq[BigInt]](__obj.lookUpTable, Some("http://www.opengis.net/gml"), Some("lookUpTable"), __scope, false))

  }

  trait DefaultOpengisgml_SequenceRuleTypeFormat extends scalaxb.XMLFormat[opengis.gml.SequenceRuleType] with scalaxb.CanWriteChildNodes[opengis.gml.SequenceRuleType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.SequenceRuleType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.SequenceRuleType(scalaxb.fromXML[opengis.gml.SequenceRuleNames](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@order").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.IncrementOrder](x, scalaxb.ElemName(node) :: stack)) } map { "@order" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.SequenceRuleType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@order", _) => __obj.order foreach { x => attr = scala.xml.Attribute(null, "order", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.SequenceRuleType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  def buildOpengisgml_SequenceRuleNamesFormat = new DefaultOpengisgml_SequenceRuleNamesFormat {}
  trait DefaultOpengisgml_SequenceRuleNamesFormat extends scalaxb.XMLFormat[opengis.gml.SequenceRuleNames] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.SequenceRuleNames =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.SequenceRuleNames] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Linear")) => opengis.gml.Linear
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Boustrophedonic")) => opengis.gml.Boustrophedonic
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Cantor-diagonal")) => opengis.gml.Cantoru45diagonal
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Spiral")) => opengis.gml.Spiral
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Morton")) => opengis.gml.Morton
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Hilbert")) => opengis.gml.Hilbert

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.SequenceRuleNames] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.SequenceRuleNames, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengisgml_IncrementOrderFormat = new DefaultOpengisgml_IncrementOrderFormat {}
  trait DefaultOpengisgml_IncrementOrderFormat extends scalaxb.XMLFormat[opengis.gml.IncrementOrder] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.IncrementOrder =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.IncrementOrder] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("+x+y")) => opengis.gml.U43xu43y
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("+y+x")) => opengis.gml.U43yu43x
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("+x-y")) => opengis.gml.U43xu45y
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("-x-y")) => opengis.gml.U45xu45y

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.IncrementOrder] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.IncrementOrder, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisgml_MultiPointCoverageTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiPointCoverageType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiPointCoverageType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiPointCoverageType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "boundedBy")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "location")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LocationPropertyTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rectifiedGridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RectifiedGridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "gridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSolidDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSolidDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSurfaceDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSurfaceDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiCurveDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiCurveDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiPointDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiPointDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rectifiedGridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RectifiedGridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "gridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSolidDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSolidDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSurfaceDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSurfaceDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiCurveDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiCurveDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiPointDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiPointDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "domainSet")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DomainSetTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rangeSet")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coverageFunction")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.gml.MultiPointCoverageType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.BoundingShapeType](_, scalaxb.ElemName(node) :: stack) },
        p3,
        p4,
        scalaxb.fromXML[opengis.gml.RangeSetType](p5, scalaxb.ElemName(node) :: stack),
        p6.headOption map { scalaxb.fromXML[opengis.gml.CoverageFunctionType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@dimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@dimension" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiPointCoverageType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@dimension", _) => __obj.dimension foreach { x => attr = scala.xml.Attribute(null, "dimension", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiPointCoverageType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.boundedBy map { scalaxb.toXML[opengis.gml.BoundingShapeType](_, Some("http://www.opengis.net/gml"), Some("boundedBy"), __scope, false) } getOrElse {Nil},
        __obj.location map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        (Some(__obj.domainSet) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get,
        scalaxb.toXML[opengis.gml.RangeSetType](__obj.rangeSet, Some("http://www.opengis.net/gml"), Some("rangeSet"), __scope, false),
        __obj.coverageFunction map { scalaxb.toXML[opengis.gml.CoverageFunctionType](_, Some("http://www.opengis.net/gml"), Some("coverageFunction"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiPointDomainTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiPointDomainType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiPointDomainType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiPointDomainType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeometricComplex")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeometricComplexType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.MultiPointDomainType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiPointDomainType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiPointDomainType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.domainsettypableoption map { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.DomainSetTypableOption]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiPointDomainTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.MultiPointDomainTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.MultiPointDomainTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.MultiPointDomainTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.MultiPointType](__obj.MultiPoint, Some("http://www.opengis.net/gml"), Some("MultiPoint"), __scope, false)


  }

  trait DefaultOpengisgml_MultiCurveCoverageTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiCurveCoverageType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiCurveCoverageType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiCurveCoverageType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "boundedBy")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "location")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LocationPropertyTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rectifiedGridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RectifiedGridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "gridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSolidDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSolidDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSurfaceDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSurfaceDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiCurveDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiCurveDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiPointDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiPointDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rectifiedGridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RectifiedGridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "gridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSolidDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSolidDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSurfaceDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSurfaceDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiCurveDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiCurveDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiPointDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiPointDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "domainSet")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DomainSetTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rangeSet")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coverageFunction")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.gml.MultiCurveCoverageType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.BoundingShapeType](_, scalaxb.ElemName(node) :: stack) },
        p3,
        p4,
        scalaxb.fromXML[opengis.gml.RangeSetType](p5, scalaxb.ElemName(node) :: stack),
        p6.headOption map { scalaxb.fromXML[opengis.gml.CoverageFunctionType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@dimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@dimension" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiCurveCoverageType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@dimension", _) => __obj.dimension foreach { x => attr = scala.xml.Attribute(null, "dimension", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiCurveCoverageType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.boundedBy map { scalaxb.toXML[opengis.gml.BoundingShapeType](_, Some("http://www.opengis.net/gml"), Some("boundedBy"), __scope, false) } getOrElse {Nil},
        __obj.location map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        (Some(__obj.domainSet) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get,
        scalaxb.toXML[opengis.gml.RangeSetType](__obj.rangeSet, Some("http://www.opengis.net/gml"), Some("rangeSet"), __scope, false),
        __obj.coverageFunction map { scalaxb.toXML[opengis.gml.CoverageFunctionType](_, Some("http://www.opengis.net/gml"), Some("coverageFunction"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiCurveDomainTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiCurveDomainType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiCurveDomainType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiCurveDomainType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeometricComplex")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeometricComplexType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.MultiCurveDomainType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiCurveDomainType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiCurveDomainType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.domainsettypableoption map { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.DomainSetTypableOption]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiCurveDomainTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.MultiCurveDomainTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.MultiCurveDomainTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.MultiCurveDomainTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.MultiCurveType](__obj.MultiCurve, Some("http://www.opengis.net/gml"), Some("MultiCurve"), __scope, false)


  }

  trait DefaultOpengisgml_MultiSurfaceCoverageTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiSurfaceCoverageType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiSurfaceCoverageType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiSurfaceCoverageType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "boundedBy")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "location")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LocationPropertyTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rectifiedGridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RectifiedGridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "gridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSolidDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSolidDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSurfaceDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSurfaceDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiCurveDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiCurveDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiPointDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiPointDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rectifiedGridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RectifiedGridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "gridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSolidDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSolidDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSurfaceDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSurfaceDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiCurveDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiCurveDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiPointDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiPointDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "domainSet")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DomainSetTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rangeSet")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coverageFunction")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.gml.MultiSurfaceCoverageType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.BoundingShapeType](_, scalaxb.ElemName(node) :: stack) },
        p3,
        p4,
        scalaxb.fromXML[opengis.gml.RangeSetType](p5, scalaxb.ElemName(node) :: stack),
        p6.headOption map { scalaxb.fromXML[opengis.gml.CoverageFunctionType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@dimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@dimension" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiSurfaceCoverageType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@dimension", _) => __obj.dimension foreach { x => attr = scala.xml.Attribute(null, "dimension", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiSurfaceCoverageType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.boundedBy map { scalaxb.toXML[opengis.gml.BoundingShapeType](_, Some("http://www.opengis.net/gml"), Some("boundedBy"), __scope, false) } getOrElse {Nil},
        __obj.location map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        (Some(__obj.domainSet) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get,
        scalaxb.toXML[opengis.gml.RangeSetType](__obj.rangeSet, Some("http://www.opengis.net/gml"), Some("rangeSet"), __scope, false),
        __obj.coverageFunction map { scalaxb.toXML[opengis.gml.CoverageFunctionType](_, Some("http://www.opengis.net/gml"), Some("coverageFunction"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiSurfaceDomainTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiSurfaceDomainType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiSurfaceDomainType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiSurfaceDomainType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeometricComplex")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeometricComplexType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.MultiSurfaceDomainType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiSurfaceDomainType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiSurfaceDomainType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.domainsettypableoption map { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.DomainSetTypableOption]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiSurfaceDomainTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.MultiSurfaceDomainTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.MultiSurfaceDomainTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.MultiSurfaceDomainTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.MultiSurfaceType](__obj.MultiSurface, Some("http://www.opengis.net/gml"), Some("MultiSurface"), __scope, false)


  }

  trait DefaultOpengisgml_MultiSolidCoverageTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiSolidCoverageType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiSolidCoverageType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiSolidCoverageType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "boundedBy")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "location")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LocationPropertyTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rectifiedGridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RectifiedGridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "gridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSolidDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSolidDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSurfaceDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSurfaceDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiCurveDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiCurveDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiPointDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiPointDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rectifiedGridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RectifiedGridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "gridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSolidDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSolidDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSurfaceDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSurfaceDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiCurveDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiCurveDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiPointDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiPointDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "domainSet")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DomainSetTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rangeSet")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coverageFunction")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.gml.MultiSolidCoverageType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.BoundingShapeType](_, scalaxb.ElemName(node) :: stack) },
        p3,
        p4,
        scalaxb.fromXML[opengis.gml.RangeSetType](p5, scalaxb.ElemName(node) :: stack),
        p6.headOption map { scalaxb.fromXML[opengis.gml.CoverageFunctionType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@dimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@dimension" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiSolidCoverageType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@dimension", _) => __obj.dimension foreach { x => attr = scala.xml.Attribute(null, "dimension", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiSolidCoverageType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.boundedBy map { scalaxb.toXML[opengis.gml.BoundingShapeType](_, Some("http://www.opengis.net/gml"), Some("boundedBy"), __scope, false) } getOrElse {Nil},
        __obj.location map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        (Some(__obj.domainSet) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get,
        scalaxb.toXML[opengis.gml.RangeSetType](__obj.rangeSet, Some("http://www.opengis.net/gml"), Some("rangeSet"), __scope, false),
        __obj.coverageFunction map { scalaxb.toXML[opengis.gml.CoverageFunctionType](_, Some("http://www.opengis.net/gml"), Some("coverageFunction"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiSolidDomainTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiSolidDomainType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiSolidDomainType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiSolidDomainType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeometricComplex")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeometricComplexType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.MultiSolidDomainType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiSolidDomainType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiSolidDomainType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.domainsettypableoption map { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.DomainSetTypableOption]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiSolidDomainTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.MultiSolidDomainTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.MultiSolidDomainTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.MultiSolidDomainTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.MultiSolidType](__obj.MultiSolid, Some("http://www.opengis.net/gml"), Some("MultiSolid"), __scope, false)


  }

  trait DefaultOpengisgml_GridCoverageTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GridCoverageType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GridCoverageType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GridCoverageType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "boundedBy")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "location")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LocationPropertyTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rectifiedGridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RectifiedGridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "gridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSolidDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSolidDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSurfaceDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSurfaceDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiCurveDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiCurveDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiPointDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiPointDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rectifiedGridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RectifiedGridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "gridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSolidDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSolidDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSurfaceDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSurfaceDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiCurveDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiCurveDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiPointDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiPointDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "domainSet")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DomainSetTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rangeSet")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coverageFunction")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.gml.GridCoverageType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.BoundingShapeType](_, scalaxb.ElemName(node) :: stack) },
        p3,
        p4,
        scalaxb.fromXML[opengis.gml.RangeSetType](p5, scalaxb.ElemName(node) :: stack),
        p6.headOption map { scalaxb.fromXML[opengis.gml.CoverageFunctionType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@dimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@dimension" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GridCoverageType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@dimension", _) => __obj.dimension foreach { x => attr = scala.xml.Attribute(null, "dimension", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GridCoverageType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.boundedBy map { scalaxb.toXML[opengis.gml.BoundingShapeType](_, Some("http://www.opengis.net/gml"), Some("boundedBy"), __scope, false) } getOrElse {Nil},
        __obj.location map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        (Some(__obj.domainSet) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get,
        scalaxb.toXML[opengis.gml.RangeSetType](__obj.rangeSet, Some("http://www.opengis.net/gml"), Some("rangeSet"), __scope, false),
        __obj.coverageFunction map { scalaxb.toXML[opengis.gml.CoverageFunctionType](_, Some("http://www.opengis.net/gml"), Some("coverageFunction"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_GridDomainTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GridDomainType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GridDomainType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GridDomainType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeometricComplex")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeometricComplexType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.GridDomainType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GridDomainType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GridDomainType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.domainsettypableoption map { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.DomainSetTypableOption]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_GridDomainTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.GridDomainTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.GridDomainTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.GridDomainTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.GridTypable](__obj.Grid, Some("http://www.opengis.net/gml"), Some("Grid"), __scope, false)


  }

  trait DefaultOpengisgml_RectifiedGridCoverageTypeFormat extends scalaxb.ElemNameParser[opengis.gml.RectifiedGridCoverageType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("RectifiedGridCoverageType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.RectifiedGridCoverageType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "boundedBy")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "location")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LocationPropertyTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rectifiedGridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RectifiedGridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "gridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSolidDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSolidDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSurfaceDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSurfaceDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiCurveDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiCurveDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiPointDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiPointDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rectifiedGridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RectifiedGridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "gridDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GridDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSolidDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSolidDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiSurfaceDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSurfaceDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiCurveDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiCurveDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiPointDomain")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiPointDomainType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "domainSet")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DomainSetTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rangeSet")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coverageFunction")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.gml.RectifiedGridCoverageType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.BoundingShapeType](_, scalaxb.ElemName(node) :: stack) },
        p3,
        p4,
        scalaxb.fromXML[opengis.gml.RangeSetType](p5, scalaxb.ElemName(node) :: stack),
        p6.headOption map { scalaxb.fromXML[opengis.gml.CoverageFunctionType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@dimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@dimension" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.RectifiedGridCoverageType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@dimension", _) => __obj.dimension foreach { x => attr = scala.xml.Attribute(null, "dimension", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.RectifiedGridCoverageType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.boundedBy map { scalaxb.toXML[opengis.gml.BoundingShapeType](_, Some("http://www.opengis.net/gml"), Some("boundedBy"), __scope, false) } getOrElse {Nil},
        __obj.location map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        (Some(__obj.domainSet) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get,
        scalaxb.toXML[opengis.gml.RangeSetType](__obj.rangeSet, Some("http://www.opengis.net/gml"), Some("rangeSet"), __scope, false),
        __obj.coverageFunction map { scalaxb.toXML[opengis.gml.CoverageFunctionType](_, Some("http://www.opengis.net/gml"), Some("coverageFunction"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_RectifiedGridDomainTypeFormat extends scalaxb.ElemNameParser[opengis.gml.RectifiedGridDomainType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("RectifiedGridDomainType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.RectifiedGridDomainType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeometricComplex")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeometricComplexType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.RectifiedGridDomainType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.RectifiedGridDomainType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.RectifiedGridDomainType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.domainsettypableoption map { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.DomainSetTypableOption]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_RectifiedGridDomainTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.RectifiedGridDomainTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.RectifiedGridDomainTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.RectifiedGridDomainTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.RectifiedGridType](__obj.RectifiedGrid, Some("http://www.opengis.net/gml"), Some("RectifiedGrid"), __scope, false)


  }

  trait DefaultOpengisgml_AbstractPositionalAccuracyTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractPositionalAccuracyType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractPositionalAccuracyType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("CovarianceMatrixType")) => Right(scalaxb.fromXML[opengis.gml.CovarianceMatrixType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbsoluteExternalPositionalAccuracyType")) => Right(scalaxb.fromXML[opengis.gml.AbsoluteExternalPositionalAccuracyType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("RelativeInternalPositionalAccuracyType")) => Right(scalaxb.fromXML[opengis.gml.RelativeInternalPositionalAccuracyType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractPositionalAccuracyType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.CovarianceMatrixType => scalaxb.toXML[opengis.gml.CovarianceMatrixType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbsoluteExternalPositionalAccuracyType => scalaxb.toXML[opengis.gml.AbsoluteExternalPositionalAccuracyType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.RelativeInternalPositionalAccuracyType => scalaxb.toXML[opengis.gml.RelativeInternalPositionalAccuracyType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_AbsoluteExternalPositionalAccuracyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.AbsoluteExternalPositionalAccuracyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("AbsoluteExternalPositionalAccuracyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.AbsoluteExternalPositionalAccuracyType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "measureDescription")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "result")) ^^
      { case p1 ~ p2 =>
      opengis.gml.AbsoluteExternalPositionalAccuracyType(p1.headOption map { scalaxb.fromXML[opengis.gml.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.MeasureTypable](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.gml.AbsoluteExternalPositionalAccuracyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.measureDescription map { scalaxb.toXML[opengis.gml.CodeTypable](_, Some("http://www.opengis.net/gml"), Some("measureDescription"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.MeasureTypable](__obj.result, Some("http://www.opengis.net/gml"), Some("result"), __scope, false))

  }

  trait DefaultOpengisgml_RelativeInternalPositionalAccuracyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.RelativeInternalPositionalAccuracyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("RelativeInternalPositionalAccuracyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.RelativeInternalPositionalAccuracyType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "measureDescription")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "result")) ^^
      { case p1 ~ p2 =>
      opengis.gml.RelativeInternalPositionalAccuracyType(p1.headOption map { scalaxb.fromXML[opengis.gml.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.MeasureTypable](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.gml.RelativeInternalPositionalAccuracyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.measureDescription map { scalaxb.toXML[opengis.gml.CodeTypable](_, Some("http://www.opengis.net/gml"), Some("measureDescription"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.MeasureTypable](__obj.result, Some("http://www.opengis.net/gml"), Some("result"), __scope, false))

  }

  trait DefaultOpengisgml_CovarianceMatrixTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CovarianceMatrixType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CovarianceMatrixType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CovarianceMatrixType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "measureDescription")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "unitOfMeasure")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "includesElement")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.CovarianceMatrixType(p1.headOption map { scalaxb.fromXML[opengis.gml.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.gml.UnitOfMeasureTypable](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.gml.CovarianceElementType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.gml.CovarianceMatrixType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.measureDescription map { scalaxb.toXML[opengis.gml.CodeTypable](_, Some("http://www.opengis.net/gml"), Some("measureDescription"), __scope, false) } getOrElse {Nil},
        __obj.unitOfMeasure flatMap { scalaxb.toXML[opengis.gml.UnitOfMeasureTypable](_, Some("http://www.opengis.net/gml"), Some("unitOfMeasure"), __scope, false) },
        __obj.includesElement flatMap { scalaxb.toXML[opengis.gml.CovarianceElementType](_, Some("http://www.opengis.net/gml"), Some("includesElement"), __scope, false) })

  }

  trait DefaultOpengisgml_CovarianceElementTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CovarianceElementType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CovarianceElementType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CovarianceElementType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rowIndex")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "columnIndex")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "covariance")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.CovarianceElementType(scalaxb.fromXML[BigInt](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[BigInt](p2, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[Double](p3, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.gml.CovarianceElementType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[BigInt](__obj.rowIndex, Some("http://www.opengis.net/gml"), Some("rowIndex"), __scope, false),
        scalaxb.toXML[BigInt](__obj.columnIndex, Some("http://www.opengis.net/gml"), Some("columnIndex"), __scope, false),
        scalaxb.toXML[Double](__obj.covariance, Some("http://www.opengis.net/gml"), Some("covariance"), __scope, false))

  }

  trait DefaultOpengisgml_AbstractDatumBaseTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractDatumBaseType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractDatumBaseType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("AbstractDatumType")) => Right(scalaxb.fromXML[opengis.gml.AbstractDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TemporalDatumBaseType")) => Right(scalaxb.fromXML[opengis.gml.TemporalDatumBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TemporalDatumType")) => Right(scalaxb.fromXML[opengis.gml.TemporalDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ImageDatumType")) => Right(scalaxb.fromXML[opengis.gml.ImageDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("EngineeringDatumType")) => Right(scalaxb.fromXML[opengis.gml.EngineeringDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("VerticalDatumType")) => Right(scalaxb.fromXML[opengis.gml.VerticalDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GeodeticDatumType")) => Right(scalaxb.fromXML[opengis.gml.GeodeticDatumType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractDatumBaseType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.AbstractDatumType => scalaxb.toXML[opengis.gml.AbstractDatumType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_AbstractDatumTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractDatumType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractDatumType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("TemporalDatumBaseType")) => Right(scalaxb.fromXML[opengis.gml.TemporalDatumBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TemporalDatumType")) => Right(scalaxb.fromXML[opengis.gml.TemporalDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ImageDatumType")) => Right(scalaxb.fromXML[opengis.gml.ImageDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("EngineeringDatumType")) => Right(scalaxb.fromXML[opengis.gml.EngineeringDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("VerticalDatumType")) => Right(scalaxb.fromXML[opengis.gml.VerticalDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GeodeticDatumType")) => Right(scalaxb.fromXML[opengis.gml.GeodeticDatumType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractDatumType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.TemporalDatumBaseType => scalaxb.toXML[opengis.gml.TemporalDatumBaseType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.ImageDatumType => scalaxb.toXML[opengis.gml.ImageDatumType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.EngineeringDatumType => scalaxb.toXML[opengis.gml.EngineeringDatumType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.VerticalDatumType => scalaxb.toXML[opengis.gml.VerticalDatumType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.GeodeticDatumType => scalaxb.toXML[opengis.gml.GeodeticDatumType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_DatumRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DatumRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DatumRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DatumRefType] =
      phrase(opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TemporalDatum")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TemporalDatumType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ImageDatum")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ImageDatumType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "EngineeringDatum")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.EngineeringDatumType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "VerticalDatum")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.VerticalDatumType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeodeticDatum")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeodeticDatumType](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.DatumRefTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.DatumRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.DatumRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DatumRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.datumreftypesequence1 map { scalaxb.toXML[opengis.gml.DatumRefTypeSequence1](_, None, Some("datumreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_DatumRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.DatumRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.DatumRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.DatumRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._Datum) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_EngineeringDatumTypeFormat extends scalaxb.ElemNameParser[opengis.gml.EngineeringDatumType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("EngineeringDatumType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.EngineeringDatumType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "datumID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "anchorPoint")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "realizationEpoch")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "scope")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 =>
      opengis.gml.EngineeringDatumType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.gml.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[javax.xml.datatype.XMLGregorianCalendar](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[opengis.gml.ExtentType](_, scalaxb.ElemName(node) :: stack) },
        p7.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.EngineeringDatumType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.EngineeringDatumType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.datumID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("datumID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.anchorPoint map { scalaxb.toXML[opengis.gml.CodeTypable](_, Some("http://www.opengis.net/gml"), Some("anchorPoint"), __scope, false) } getOrElse {Nil},
        __obj.realizationEpoch map { scalaxb.toXML[javax.xml.datatype.XMLGregorianCalendar](_, Some("http://www.opengis.net/gml"), Some("realizationEpoch"), __scope, false) } getOrElse {Nil},
        __obj.validArea map { scalaxb.toXML[opengis.gml.ExtentType](_, Some("http://www.opengis.net/gml"), Some("validArea"), __scope, false) } getOrElse {Nil},
        __obj.scope map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("scope"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_EngineeringDatumRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.EngineeringDatumRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("EngineeringDatumRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.EngineeringDatumRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "EngineeringDatum"))) ^^ 
        { case p1 => opengis.gml.EngineeringDatumRefTypeSequence1(scalaxb.fromXML[opengis.gml.EngineeringDatumType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.EngineeringDatumRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.EngineeringDatumRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.EngineeringDatumRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.engineeringdatumreftypesequence1 map { scalaxb.toXML[opengis.gml.EngineeringDatumRefTypeSequence1](_, None, Some("engineeringdatumreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_EngineeringDatumRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.EngineeringDatumRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.EngineeringDatumRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.EngineeringDatumRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.EngineeringDatumType](__obj.EngineeringDatum, Some("http://www.opengis.net/gml"), Some("EngineeringDatum"), __scope, false)


  }

  trait DefaultOpengisgml_ImageDatumTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ImageDatumType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ImageDatumType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ImageDatumType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "datumID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "anchorPoint")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "realizationEpoch")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "scope")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pixelInCell")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 =>
      opengis.gml.ImageDatumType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.gml.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[javax.xml.datatype.XMLGregorianCalendar](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[opengis.gml.ExtentType](_, scalaxb.ElemName(node) :: stack) },
        p7.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.PixelInCellType](p8, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ImageDatumType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ImageDatumType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.datumID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("datumID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.anchorPoint map { scalaxb.toXML[opengis.gml.CodeTypable](_, Some("http://www.opengis.net/gml"), Some("anchorPoint"), __scope, false) } getOrElse {Nil},
        __obj.realizationEpoch map { scalaxb.toXML[javax.xml.datatype.XMLGregorianCalendar](_, Some("http://www.opengis.net/gml"), Some("realizationEpoch"), __scope, false) } getOrElse {Nil},
        __obj.validArea map { scalaxb.toXML[opengis.gml.ExtentType](_, Some("http://www.opengis.net/gml"), Some("validArea"), __scope, false) } getOrElse {Nil},
        __obj.scope map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("scope"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.PixelInCellType](__obj.pixelInCell, Some("http://www.opengis.net/gml"), Some("pixelInCell"), __scope, false))

  }

  trait DefaultOpengisgml_PixelInCellTypeFormat extends scalaxb.XMLFormat[opengis.gml.PixelInCellType] with scalaxb.CanWriteChildNodes[opengis.gml.PixelInCellType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.PixelInCellType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.PixelInCellType(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@codeSpace").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@codeSpace" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.PixelInCellType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@codeSpace", _) => __obj.codeSpace foreach { x => attr = scala.xml.Attribute(null, "codeSpace", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.PixelInCellType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_ImageDatumRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ImageDatumRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ImageDatumRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ImageDatumRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ImageDatum"))) ^^ 
        { case p1 => opengis.gml.ImageDatumRefTypeSequence1(scalaxb.fromXML[opengis.gml.ImageDatumType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.ImageDatumRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ImageDatumRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ImageDatumRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.imagedatumreftypesequence1 map { scalaxb.toXML[opengis.gml.ImageDatumRefTypeSequence1](_, None, Some("imagedatumreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_ImageDatumRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.ImageDatumRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.ImageDatumRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.ImageDatumRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.ImageDatumType](__obj.ImageDatum, Some("http://www.opengis.net/gml"), Some("ImageDatum"), __scope, false)


  }

  trait DefaultOpengisgml_VerticalDatumTypeFormat extends scalaxb.ElemNameParser[opengis.gml.VerticalDatumType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("VerticalDatumType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.VerticalDatumType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "datumID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "anchorPoint")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "realizationEpoch")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "scope")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "verticalDatumType")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 =>
      opengis.gml.VerticalDatumType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.gml.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[javax.xml.datatype.XMLGregorianCalendar](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[opengis.gml.ExtentType](_, scalaxb.ElemName(node) :: stack) },
        p7.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p8.headOption map { scalaxb.fromXML[opengis.gml.VerticalDatumTypeType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.VerticalDatumType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.VerticalDatumType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.datumID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("datumID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.anchorPoint map { scalaxb.toXML[opengis.gml.CodeTypable](_, Some("http://www.opengis.net/gml"), Some("anchorPoint"), __scope, false) } getOrElse {Nil},
        __obj.realizationEpoch map { scalaxb.toXML[javax.xml.datatype.XMLGregorianCalendar](_, Some("http://www.opengis.net/gml"), Some("realizationEpoch"), __scope, false) } getOrElse {Nil},
        __obj.validArea map { scalaxb.toXML[opengis.gml.ExtentType](_, Some("http://www.opengis.net/gml"), Some("validArea"), __scope, false) } getOrElse {Nil},
        __obj.scope map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("scope"), __scope, false) } getOrElse {Nil},
        __obj.verticalDatumType map { scalaxb.toXML[opengis.gml.VerticalDatumTypeType](_, Some("http://www.opengis.net/gml"), Some("verticalDatumType"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_VerticalDatumTypeTypeFormat extends scalaxb.XMLFormat[opengis.gml.VerticalDatumTypeType] with scalaxb.CanWriteChildNodes[opengis.gml.VerticalDatumTypeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.VerticalDatumTypeType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.VerticalDatumTypeType(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@codeSpace").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@codeSpace" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.VerticalDatumTypeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@codeSpace", _) => __obj.codeSpace foreach { x => attr = scala.xml.Attribute(null, "codeSpace", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.VerticalDatumTypeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_VerticalDatumRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.VerticalDatumRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("VerticalDatumRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.VerticalDatumRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "VerticalDatum"))) ^^ 
        { case p1 => opengis.gml.VerticalDatumRefTypeSequence1(scalaxb.fromXML[opengis.gml.VerticalDatumType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.VerticalDatumRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.VerticalDatumRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.VerticalDatumRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.verticaldatumreftypesequence1 map { scalaxb.toXML[opengis.gml.VerticalDatumRefTypeSequence1](_, None, Some("verticaldatumreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_VerticalDatumRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.VerticalDatumRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.VerticalDatumRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.VerticalDatumRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.VerticalDatumType](__obj.VerticalDatum, Some("http://www.opengis.net/gml"), Some("VerticalDatum"), __scope, false)


  }

  trait DefaultOpengisgml_TemporalDatumBaseTypeFormat extends scalaxb.XMLFormat[opengis.gml.TemporalDatumBaseType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TemporalDatumBaseType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("TemporalDatumType")) => Right(scalaxb.fromXML[opengis.gml.TemporalDatumType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.TemporalDatumBaseType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.TemporalDatumType => scalaxb.toXML[opengis.gml.TemporalDatumType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_TemporalDatumTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TemporalDatumType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TemporalDatumType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TemporalDatumType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "datumID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "anchorPoint")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "realizationEpoch")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "scope")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "origin")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 =>
      opengis.gml.TemporalDatumType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.gml.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[javax.xml.datatype.XMLGregorianCalendar](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[opengis.gml.ExtentType](_, scalaxb.ElemName(node) :: stack) },
        p7.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[javax.xml.datatype.XMLGregorianCalendar](p8, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TemporalDatumType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TemporalDatumType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.datumID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("datumID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.anchorPoint map { scalaxb.toXML[opengis.gml.CodeTypable](_, Some("http://www.opengis.net/gml"), Some("anchorPoint"), __scope, false) } getOrElse {Nil},
        __obj.realizationEpoch map { scalaxb.toXML[javax.xml.datatype.XMLGregorianCalendar](_, Some("http://www.opengis.net/gml"), Some("realizationEpoch"), __scope, false) } getOrElse {Nil},
        __obj.validArea map { scalaxb.toXML[opengis.gml.ExtentType](_, Some("http://www.opengis.net/gml"), Some("validArea"), __scope, false) } getOrElse {Nil},
        __obj.scope map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("scope"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[javax.xml.datatype.XMLGregorianCalendar](__obj.origin, Some("http://www.opengis.net/gml"), Some("origin"), __scope, false))

  }

  trait DefaultOpengisgml_TemporalDatumRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TemporalDatumRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TemporalDatumRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TemporalDatumRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TemporalDatum"))) ^^ 
        { case p1 => opengis.gml.TemporalDatumRefTypeSequence1(scalaxb.fromXML[opengis.gml.TemporalDatumType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.TemporalDatumRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TemporalDatumRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TemporalDatumRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.temporaldatumreftypesequence1 map { scalaxb.toXML[opengis.gml.TemporalDatumRefTypeSequence1](_, None, Some("temporaldatumreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TemporalDatumRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.TemporalDatumRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TemporalDatumRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.TemporalDatumRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.TemporalDatumType](__obj.TemporalDatum, Some("http://www.opengis.net/gml"), Some("TemporalDatum"), __scope, false)


  }

  trait DefaultOpengisgml_GeodeticDatumTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GeodeticDatumType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GeodeticDatumType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GeodeticDatumType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "datumID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "anchorPoint")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "realizationEpoch")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "scope")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesPrimeMeridian")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "usesEllipsoid")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 =>
      opengis.gml.GeodeticDatumType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.gml.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[javax.xml.datatype.XMLGregorianCalendar](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[opengis.gml.ExtentType](_, scalaxb.ElemName(node) :: stack) },
        p7.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.PrimeMeridianRefType](p8, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.EllipsoidRefType](p9, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GeodeticDatumType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GeodeticDatumType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.datumID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("datumID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        __obj.anchorPoint map { scalaxb.toXML[opengis.gml.CodeTypable](_, Some("http://www.opengis.net/gml"), Some("anchorPoint"), __scope, false) } getOrElse {Nil},
        __obj.realizationEpoch map { scalaxb.toXML[javax.xml.datatype.XMLGregorianCalendar](_, Some("http://www.opengis.net/gml"), Some("realizationEpoch"), __scope, false) } getOrElse {Nil},
        __obj.validArea map { scalaxb.toXML[opengis.gml.ExtentType](_, Some("http://www.opengis.net/gml"), Some("validArea"), __scope, false) } getOrElse {Nil},
        __obj.scope map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("scope"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.PrimeMeridianRefType](__obj.usesPrimeMeridian, Some("http://www.opengis.net/gml"), Some("usesPrimeMeridian"), __scope, false),
        scalaxb.toXML[opengis.gml.EllipsoidRefType](__obj.usesEllipsoid, Some("http://www.opengis.net/gml"), Some("usesEllipsoid"), __scope, false))

  }

  trait DefaultOpengisgml_GeodeticDatumRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GeodeticDatumRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GeodeticDatumRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GeodeticDatumRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeodeticDatum"))) ^^ 
        { case p1 => opengis.gml.GeodeticDatumRefTypeSequence1(scalaxb.fromXML[opengis.gml.GeodeticDatumType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.GeodeticDatumRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GeodeticDatumRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GeodeticDatumRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.geodeticdatumreftypesequence1 map { scalaxb.toXML[opengis.gml.GeodeticDatumRefTypeSequence1](_, None, Some("geodeticdatumreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_GeodeticDatumRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.GeodeticDatumRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.GeodeticDatumRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.GeodeticDatumRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.GeodeticDatumType](__obj.GeodeticDatum, Some("http://www.opengis.net/gml"), Some("GeodeticDatum"), __scope, false)


  }

  trait DefaultOpengisgml_PrimeMeridianBaseTypeFormat extends scalaxb.XMLFormat[opengis.gml.PrimeMeridianBaseType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.PrimeMeridianBaseType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("PrimeMeridianType")) => Right(scalaxb.fromXML[opengis.gml.PrimeMeridianType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.PrimeMeridianBaseType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.PrimeMeridianType => scalaxb.toXML[opengis.gml.PrimeMeridianType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_PrimeMeridianTypeFormat extends scalaxb.ElemNameParser[opengis.gml.PrimeMeridianType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("PrimeMeridianType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.PrimeMeridianType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "meridianID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "greenwichLongitude")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.PrimeMeridianType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.AngleChoiceType](p4, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.PrimeMeridianType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.PrimeMeridianType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.meridianID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("meridianID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.AngleChoiceType](__obj.greenwichLongitude, Some("http://www.opengis.net/gml"), Some("greenwichLongitude"), __scope, false))

  }

  trait DefaultOpengisgml_PrimeMeridianRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.PrimeMeridianRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("PrimeMeridianRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.PrimeMeridianRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "PrimeMeridian"))) ^^ 
        { case p1 => opengis.gml.PrimeMeridianRefTypeSequence1(scalaxb.fromXML[opengis.gml.PrimeMeridianType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.PrimeMeridianRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.PrimeMeridianRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.PrimeMeridianRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.primemeridianreftypesequence1 map { scalaxb.toXML[opengis.gml.PrimeMeridianRefTypeSequence1](_, None, Some("primemeridianreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_PrimeMeridianRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.PrimeMeridianRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.PrimeMeridianRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.PrimeMeridianRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.PrimeMeridianType](__obj.PrimeMeridian, Some("http://www.opengis.net/gml"), Some("PrimeMeridian"), __scope, false)


  }

  trait DefaultOpengisgml_EllipsoidBaseTypeFormat extends scalaxb.XMLFormat[opengis.gml.EllipsoidBaseType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.EllipsoidBaseType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("EllipsoidType")) => Right(scalaxb.fromXML[opengis.gml.EllipsoidType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.EllipsoidBaseType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.EllipsoidType => scalaxb.toXML[opengis.gml.EllipsoidType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_EllipsoidTypeFormat extends scalaxb.ElemNameParser[opengis.gml.EllipsoidType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("EllipsoidType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.EllipsoidType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ellipsoidID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "semiMajorAxis")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "secondDefiningParameter")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.gml.EllipsoidType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IdentifierType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.MeasureTypable](p4, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.SecondDefiningParameterType](p5, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.EllipsoidType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.EllipsoidType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.ellipsoidID flatMap { scalaxb.toXML[opengis.gml.IdentifierType](_, Some("http://www.opengis.net/gml"), Some("ellipsoidID"), __scope, false) },
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.MeasureTypable](__obj.semiMajorAxis, Some("http://www.opengis.net/gml"), Some("semiMajorAxis"), __scope, false),
        scalaxb.toXML[opengis.gml.SecondDefiningParameterType](__obj.secondDefiningParameter, Some("http://www.opengis.net/gml"), Some("secondDefiningParameter"), __scope, false))

  }

  trait DefaultOpengisgml_EllipsoidRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.EllipsoidRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("EllipsoidRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.EllipsoidRefType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Ellipsoid"))) ^^ 
        { case p1 => opengis.gml.EllipsoidRefTypeSequence1(scalaxb.fromXML[opengis.gml.EllipsoidType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.EllipsoidRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.EllipsoidRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.EllipsoidRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.ellipsoidreftypesequence1 map { scalaxb.toXML[opengis.gml.EllipsoidRefTypeSequence1](_, None, Some("ellipsoidreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_EllipsoidRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.EllipsoidRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.EllipsoidRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.EllipsoidRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.EllipsoidType](__obj.Ellipsoid, Some("http://www.opengis.net/gml"), Some("Ellipsoid"), __scope, false)


  }

  trait DefaultOpengisgml_SecondDefiningParameterTypeFormat extends scalaxb.ElemNameParser[opengis.gml.SecondDefiningParameterType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("SecondDefiningParameterType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.SecondDefiningParameterType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "inverseFlattening")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MeasureTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "semiMinorAxis")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MeasureTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "isSphere")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.SecondDefiningParameterType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.SecondDefiningParameterType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.seconddefiningparametertypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get)

  }

  def buildOpengisgml_IsSphereFormat = new DefaultOpengisgml_IsSphereFormat {}
  trait DefaultOpengisgml_IsSphereFormat extends scalaxb.XMLFormat[opengis.gml.IsSphere] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.IsSphere =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.IsSphere] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("sphere")) => opengis.gml.Sphere

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.IsSphere] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.IsSphere, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisgml_DefaultStylePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DefaultStylePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DefaultStylePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DefaultStylePropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Style")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.StyleType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.DefaultStylePropertyType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@about").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@about" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.DefaultStylePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@about", _) => __obj.about foreach { x => attr = scala.xml.Attribute(null, "about", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DefaultStylePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj._Style map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_AbstractStyleTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractStyleType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractStyleType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("StyleType")) => Right(scalaxb.fromXML[opengis.gml.StyleType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractStyleType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.StyleType => scalaxb.toXML[opengis.gml.StyleType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_StyleTypeFormat extends scalaxb.ElemNameParser[opengis.gml.StyleType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("StyleType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.StyleType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "featureStyle")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "graphStyle")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.StyleType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.FeatureStylePropertyType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.GraphStylePropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.StyleType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.StyleType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.featureStyle flatMap { scalaxb.toXML[opengis.gml.FeatureStylePropertyType](_, Some("http://www.opengis.net/gml"), Some("featureStyle"), __scope, false) },
        __obj.graphStyle map { scalaxb.toXML[opengis.gml.GraphStylePropertyType](_, Some("http://www.opengis.net/gml"), Some("graphStyle"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_FeatureStylePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.FeatureStylePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("FeatureStylePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.FeatureStylePropertyType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "FeatureStyle")) ^^
      { case p1 =>
      opengis.gml.FeatureStylePropertyType(p1.headOption map { scalaxb.fromXML[opengis.gml.FeatureStyleType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@about").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@about" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.FeatureStylePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@about", _) => __obj.about foreach { x => attr = scala.xml.Attribute(null, "about", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.FeatureStylePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.FeatureStyle map { scalaxb.toXML[opengis.gml.FeatureStyleType](_, Some("http://www.opengis.net/gml"), Some("FeatureStyle"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_FeatureStyleTypeFormat extends scalaxb.ElemNameParser[opengis.gml.FeatureStyleType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("FeatureStyleType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.FeatureStyleType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "featureConstraint")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "geometryStyle")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "topologyStyle")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "labelStyle")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.gml.FeatureStyleType(p1,
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.gml.GeometryStylePropertyType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.TopologyStylePropertyType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[opengis.gml.LabelStylePropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@featureType").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@featureType" -> _ },
        (node \ "@baseType").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@baseType" -> _ },
        (node \ "@queryGrammar").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.QueryGrammarEnumeration](x, scalaxb.ElemName(node) :: stack)) } map { "@queryGrammar" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.FeatureStyleType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@featureType", _) => __obj.featureType foreach { x => attr = scala.xml.Attribute(null, "featureType", x.toString, attr) }
        case ("@baseType", _) => __obj.baseType foreach { x => attr = scala.xml.Attribute(null, "baseType", x.toString, attr) }
        case ("@queryGrammar", _) => __obj.queryGrammar foreach { x => attr = scala.xml.Attribute(null, "queryGrammar", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.FeatureStyleType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.featureConstraint map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("featureConstraint"), __scope, false) } getOrElse {Nil},
        __obj.geometryStyle flatMap { scalaxb.toXML[opengis.gml.GeometryStylePropertyType](_, Some("http://www.opengis.net/gml"), Some("geometryStyle"), __scope, false) },
        __obj.topologyStyle flatMap { scalaxb.toXML[opengis.gml.TopologyStylePropertyType](_, Some("http://www.opengis.net/gml"), Some("topologyStyle"), __scope, false) },
        __obj.labelStyle map { scalaxb.toXML[opengis.gml.LabelStylePropertyType](_, Some("http://www.opengis.net/gml"), Some("labelStyle"), __scope, false) } getOrElse {Nil})

  }

  def buildOpengisgml_QueryGrammarEnumerationFormat = new DefaultOpengisgml_QueryGrammarEnumerationFormat {}
  trait DefaultOpengisgml_QueryGrammarEnumerationFormat extends scalaxb.XMLFormat[opengis.gml.QueryGrammarEnumeration] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.QueryGrammarEnumeration =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.QueryGrammarEnumeration] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("xpath")) => opengis.gml.XpathValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("xquery")) => opengis.gml.Xquery
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("other")) => opengis.gml.OtherValue

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.QueryGrammarEnumeration] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.QueryGrammarEnumeration, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisgml_BaseStyleDescriptorTypableFormat extends scalaxb.XMLFormat[opengis.gml.BaseStyleDescriptorTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.BaseStyleDescriptorTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("GeometryStyleType")) => Right(scalaxb.fromXML[opengis.gml.GeometryStyleType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TopologyStyleType")) => Right(scalaxb.fromXML[opengis.gml.TopologyStyleType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("LabelStyleType")) => Right(scalaxb.fromXML[opengis.gml.LabelStyleType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GraphStyleType")) => Right(scalaxb.fromXML[opengis.gml.GraphStyleType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.BaseStyleDescriptorType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.BaseStyleDescriptorTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.GeometryStyleType => scalaxb.toXML[opengis.gml.GeometryStyleType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.TopologyStyleType => scalaxb.toXML[opengis.gml.TopologyStyleType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.LabelStyleType => scalaxb.toXML[opengis.gml.LabelStyleType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.GraphStyleType => scalaxb.toXML[opengis.gml.GraphStyleType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.BaseStyleDescriptorType => scalaxb.toXML[opengis.gml.BaseStyleDescriptorType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_BaseStyleDescriptorTypeFormat extends scalaxb.ElemNameParser[opengis.gml.BaseStyleDescriptorType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("BaseStyleDescriptorType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.BaseStyleDescriptorType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "spatialResolution")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "styleVariation")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "animate")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "animateMotion")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "animateColor")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "set")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 =>
      opengis.gml.BaseStyleDescriptorType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.ScaleType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.gml.StyleVariationType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.smil.AnimateType](_, scalaxb.ElemName(node) :: stack) },
        p5 map { scalaxb.fromXML[opengis.gml.smil.AnimateMotionType](_, scalaxb.ElemName(node) :: stack) },
        p6 map { scalaxb.fromXML[opengis.gml.smil.AnimateColorType](_, scalaxb.ElemName(node) :: stack) },
        p7 map { scalaxb.fromXML[opengis.gml.smil.SetType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.BaseStyleDescriptorType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.BaseStyleDescriptorType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.spatialResolution map { scalaxb.toXML[opengis.gml.ScaleType](_, Some("http://www.opengis.net/gml"), Some("spatialResolution"), __scope, false) } getOrElse {Nil},
        __obj.styleVariation flatMap { scalaxb.toXML[opengis.gml.StyleVariationType](_, Some("http://www.opengis.net/gml"), Some("styleVariation"), __scope, false) },
        __obj.animate flatMap { scalaxb.toXML[opengis.gml.smil.AnimateType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("animate"), __scope, false) },
        __obj.animateMotion flatMap { scalaxb.toXML[opengis.gml.smil.AnimateMotionType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("animateMotion"), __scope, false) },
        __obj.animateColor flatMap { scalaxb.toXML[opengis.gml.smil.AnimateColorType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("animateColor"), __scope, false) },
        __obj.set flatMap { scalaxb.toXML[opengis.gml.smil.SetType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("set"), __scope, false) })

  }

  trait DefaultOpengisgml_GeometryStylePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GeometryStylePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GeometryStylePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GeometryStylePropertyType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeometryStyle")) ^^
      { case p1 =>
      opengis.gml.GeometryStylePropertyType(p1.headOption map { scalaxb.fromXML[opengis.gml.GeometryStyleType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@about").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@about" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GeometryStylePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@about", _) => __obj.about foreach { x => attr = scala.xml.Attribute(null, "about", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GeometryStylePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.GeometryStyle map { scalaxb.toXML[opengis.gml.GeometryStyleType](_, Some("http://www.opengis.net/gml"), Some("GeometryStyle"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_GeometryStyleTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GeometryStyleType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GeometryStyleType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GeometryStyleType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "spatialResolution")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "styleVariation")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "animate")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "animateMotion")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "animateColor")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "set")) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "symbol")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.SymbolType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "style")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "labelStyle")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 =>
      opengis.gml.GeometryStyleType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.ScaleType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.gml.StyleVariationType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.smil.AnimateType](_, scalaxb.ElemName(node) :: stack) },
        p5 map { scalaxb.fromXML[opengis.gml.smil.AnimateMotionType](_, scalaxb.ElemName(node) :: stack) },
        p6 map { scalaxb.fromXML[opengis.gml.smil.AnimateColorType](_, scalaxb.ElemName(node) :: stack) },
        p7 map { scalaxb.fromXML[opengis.gml.smil.SetType](_, scalaxb.ElemName(node) :: stack) },
        p8,
        p9.headOption map { scalaxb.fromXML[opengis.gml.LabelStylePropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@geometryProperty").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@geometryProperty" -> _ },
        (node \ "@geometryType").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@geometryType" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GeometryStyleType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@geometryProperty", _) => __obj.geometryProperty foreach { x => attr = scala.xml.Attribute(null, "geometryProperty", x.toString, attr) }
        case ("@geometryType", _) => __obj.geometryType foreach { x => attr = scala.xml.Attribute(null, "geometryType", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GeometryStyleType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.spatialResolution map { scalaxb.toXML[opengis.gml.ScaleType](_, Some("http://www.opengis.net/gml"), Some("spatialResolution"), __scope, false) } getOrElse {Nil},
        __obj.styleVariation flatMap { scalaxb.toXML[opengis.gml.StyleVariationType](_, Some("http://www.opengis.net/gml"), Some("styleVariation"), __scope, false) },
        __obj.animate flatMap { scalaxb.toXML[opengis.gml.smil.AnimateType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("animate"), __scope, false) },
        __obj.animateMotion flatMap { scalaxb.toXML[opengis.gml.smil.AnimateMotionType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("animateMotion"), __scope, false) },
        __obj.animateColor flatMap { scalaxb.toXML[opengis.gml.smil.AnimateColorType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("animateColor"), __scope, false) },
        __obj.set flatMap { scalaxb.toXML[opengis.gml.smil.SetType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("set"), __scope, false) },
        (Some(__obj.geometrystyletypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get,
        __obj.labelStyle map { scalaxb.toXML[opengis.gml.LabelStylePropertyType](_, Some("http://www.opengis.net/gml"), Some("labelStyle"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TopologyStylePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TopologyStylePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TopologyStylePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TopologyStylePropertyType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TopologyStyle")) ^^
      { case p1 =>
      opengis.gml.TopologyStylePropertyType(p1.headOption map { scalaxb.fromXML[opengis.gml.TopologyStyleType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@about").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@about" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TopologyStylePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@about", _) => __obj.about foreach { x => attr = scala.xml.Attribute(null, "about", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TopologyStylePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.TopologyStyle map { scalaxb.toXML[opengis.gml.TopologyStyleType](_, Some("http://www.opengis.net/gml"), Some("TopologyStyle"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TopologyStyleTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TopologyStyleType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TopologyStyleType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TopologyStyleType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "spatialResolution")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "styleVariation")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "animate")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "animateMotion")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "animateColor")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "set")) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "symbol")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.SymbolType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "style")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "labelStyle")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 =>
      opengis.gml.TopologyStyleType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.ScaleType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.gml.StyleVariationType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.smil.AnimateType](_, scalaxb.ElemName(node) :: stack) },
        p5 map { scalaxb.fromXML[opengis.gml.smil.AnimateMotionType](_, scalaxb.ElemName(node) :: stack) },
        p6 map { scalaxb.fromXML[opengis.gml.smil.AnimateColorType](_, scalaxb.ElemName(node) :: stack) },
        p7 map { scalaxb.fromXML[opengis.gml.smil.SetType](_, scalaxb.ElemName(node) :: stack) },
        p8,
        p9.headOption map { scalaxb.fromXML[opengis.gml.LabelStylePropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@topologyProperty").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@topologyProperty" -> _ },
        (node \ "@topologyType").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@topologyType" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TopologyStyleType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@topologyProperty", _) => __obj.topologyProperty foreach { x => attr = scala.xml.Attribute(null, "topologyProperty", x.toString, attr) }
        case ("@topologyType", _) => __obj.topologyType foreach { x => attr = scala.xml.Attribute(null, "topologyType", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TopologyStyleType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.spatialResolution map { scalaxb.toXML[opengis.gml.ScaleType](_, Some("http://www.opengis.net/gml"), Some("spatialResolution"), __scope, false) } getOrElse {Nil},
        __obj.styleVariation flatMap { scalaxb.toXML[opengis.gml.StyleVariationType](_, Some("http://www.opengis.net/gml"), Some("styleVariation"), __scope, false) },
        __obj.animate flatMap { scalaxb.toXML[opengis.gml.smil.AnimateType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("animate"), __scope, false) },
        __obj.animateMotion flatMap { scalaxb.toXML[opengis.gml.smil.AnimateMotionType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("animateMotion"), __scope, false) },
        __obj.animateColor flatMap { scalaxb.toXML[opengis.gml.smil.AnimateColorType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("animateColor"), __scope, false) },
        __obj.set flatMap { scalaxb.toXML[opengis.gml.smil.SetType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("set"), __scope, false) },
        (Some(__obj.topologystyletypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get,
        __obj.labelStyle map { scalaxb.toXML[opengis.gml.LabelStylePropertyType](_, Some("http://www.opengis.net/gml"), Some("labelStyle"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_LabelStylePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.LabelStylePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("LabelStylePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.LabelStylePropertyType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "LabelStyle")) ^^
      { case p1 =>
      opengis.gml.LabelStylePropertyType(p1.headOption map { scalaxb.fromXML[opengis.gml.LabelStyleType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@about").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@about" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.LabelStylePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@about", _) => __obj.about foreach { x => attr = scala.xml.Attribute(null, "about", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.LabelStylePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.LabelStyle map { scalaxb.toXML[opengis.gml.LabelStyleType](_, Some("http://www.opengis.net/gml"), Some("LabelStyle"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_LabelStyleTypeFormat extends scalaxb.ElemNameParser[opengis.gml.LabelStyleType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("LabelStyleType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.LabelStyleType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "spatialResolution")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "styleVariation")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "animate")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "animateMotion")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "animateColor")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "set")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "style")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "label")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 =>
      opengis.gml.LabelStyleType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.ScaleType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.gml.StyleVariationType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.smil.AnimateType](_, scalaxb.ElemName(node) :: stack) },
        p5 map { scalaxb.fromXML[opengis.gml.smil.AnimateMotionType](_, scalaxb.ElemName(node) :: stack) },
        p6 map { scalaxb.fromXML[opengis.gml.smil.AnimateColorType](_, scalaxb.ElemName(node) :: stack) },
        p7 map { scalaxb.fromXML[opengis.gml.smil.SetType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[String](p8, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.LabelType](p9, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.LabelStyleType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.LabelStyleType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.spatialResolution map { scalaxb.toXML[opengis.gml.ScaleType](_, Some("http://www.opengis.net/gml"), Some("spatialResolution"), __scope, false) } getOrElse {Nil},
        __obj.styleVariation flatMap { scalaxb.toXML[opengis.gml.StyleVariationType](_, Some("http://www.opengis.net/gml"), Some("styleVariation"), __scope, false) },
        __obj.animate flatMap { scalaxb.toXML[opengis.gml.smil.AnimateType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("animate"), __scope, false) },
        __obj.animateMotion flatMap { scalaxb.toXML[opengis.gml.smil.AnimateMotionType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("animateMotion"), __scope, false) },
        __obj.animateColor flatMap { scalaxb.toXML[opengis.gml.smil.AnimateColorType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("animateColor"), __scope, false) },
        __obj.set flatMap { scalaxb.toXML[opengis.gml.smil.SetType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("set"), __scope, false) },
        scalaxb.toXML[String](__obj.style, Some("http://www.opengis.net/gml"), Some("style"), __scope, false),
        scalaxb.toXML[opengis.gml.LabelType](__obj.label, Some("http://www.opengis.net/gml"), Some("label"), __scope, false))

  }

  trait DefaultOpengisgml_GraphStylePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GraphStylePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GraphStylePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GraphStylePropertyType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GraphStyle")) ^^
      { case p1 =>
      opengis.gml.GraphStylePropertyType(p1.headOption map { scalaxb.fromXML[opengis.gml.GraphStyleType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@about").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@about" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GraphStylePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@about", _) => __obj.about foreach { x => attr = scala.xml.Attribute(null, "about", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GraphStylePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.GraphStyle map { scalaxb.toXML[opengis.gml.GraphStyleType](_, Some("http://www.opengis.net/gml"), Some("GraphStyle"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_GraphStyleTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GraphStyleType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GraphStyleType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GraphStyleType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "spatialResolution")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "styleVariation")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "animate")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "animateMotion")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "animateColor")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.w3.org/2001/SMIL20/"), "set")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "planar")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "directed")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "grid")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "minDistance")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "minAngle")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "graphType")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "drawingType")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "lineType")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "aestheticCriteria")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 ~ p10 ~ p11 ~ p12 ~ p13 ~ p14 ~ p15 ~ p16 =>
      opengis.gml.GraphStyleType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.ScaleType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.gml.StyleVariationType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.smil.AnimateType](_, scalaxb.ElemName(node) :: stack) },
        p5 map { scalaxb.fromXML[opengis.gml.smil.AnimateMotionType](_, scalaxb.ElemName(node) :: stack) },
        p6 map { scalaxb.fromXML[opengis.gml.smil.AnimateColorType](_, scalaxb.ElemName(node) :: stack) },
        p7 map { scalaxb.fromXML[opengis.gml.smil.SetType](_, scalaxb.ElemName(node) :: stack) },
        p8.headOption map { scalaxb.fromXML[Boolean](_, scalaxb.ElemName(node) :: stack) },
        p9.headOption map { scalaxb.fromXML[Boolean](_, scalaxb.ElemName(node) :: stack) },
        p10.headOption map { scalaxb.fromXML[Boolean](_, scalaxb.ElemName(node) :: stack) },
        p11.headOption map { scalaxb.fromXML[Double](_, scalaxb.ElemName(node) :: stack) },
        p12.headOption map { scalaxb.fromXML[Double](_, scalaxb.ElemName(node) :: stack) },
        p13.headOption map { scalaxb.fromXML[opengis.gml.GraphTypeType](_, scalaxb.ElemName(node) :: stack) },
        p14.headOption map { scalaxb.fromXML[opengis.gml.DrawingTypeType](_, scalaxb.ElemName(node) :: stack) },
        p15.headOption map { scalaxb.fromXML[opengis.gml.LineTypeType](_, scalaxb.ElemName(node) :: stack) },
        p16 map { scalaxb.fromXML[opengis.gml.AesheticCriteriaType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GraphStyleType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GraphStyleType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.spatialResolution map { scalaxb.toXML[opengis.gml.ScaleType](_, Some("http://www.opengis.net/gml"), Some("spatialResolution"), __scope, false) } getOrElse {Nil},
        __obj.styleVariation flatMap { scalaxb.toXML[opengis.gml.StyleVariationType](_, Some("http://www.opengis.net/gml"), Some("styleVariation"), __scope, false) },
        __obj.animate flatMap { scalaxb.toXML[opengis.gml.smil.AnimateType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("animate"), __scope, false) },
        __obj.animateMotion flatMap { scalaxb.toXML[opengis.gml.smil.AnimateMotionType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("animateMotion"), __scope, false) },
        __obj.animateColor flatMap { scalaxb.toXML[opengis.gml.smil.AnimateColorType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("animateColor"), __scope, false) },
        __obj.set flatMap { scalaxb.toXML[opengis.gml.smil.SetType](_, Some("http://www.w3.org/2001/SMIL20/"), Some("set"), __scope, false) },
        __obj.planar map { scalaxb.toXML[Boolean](_, Some("http://www.opengis.net/gml"), Some("planar"), __scope, false) } getOrElse {Nil},
        __obj.directed map { scalaxb.toXML[Boolean](_, Some("http://www.opengis.net/gml"), Some("directed"), __scope, false) } getOrElse {Nil},
        __obj.grid map { scalaxb.toXML[Boolean](_, Some("http://www.opengis.net/gml"), Some("grid"), __scope, false) } getOrElse {Nil},
        __obj.minDistance map { scalaxb.toXML[Double](_, Some("http://www.opengis.net/gml"), Some("minDistance"), __scope, false) } getOrElse {Nil},
        __obj.minAngle map { scalaxb.toXML[Double](_, Some("http://www.opengis.net/gml"), Some("minAngle"), __scope, false) } getOrElse {Nil},
        __obj.graphType map { scalaxb.toXML[opengis.gml.GraphTypeType](_, Some("http://www.opengis.net/gml"), Some("graphType"), __scope, false) } getOrElse {Nil},
        __obj.drawingType map { scalaxb.toXML[opengis.gml.DrawingTypeType](_, Some("http://www.opengis.net/gml"), Some("drawingType"), __scope, false) } getOrElse {Nil},
        __obj.lineType map { scalaxb.toXML[opengis.gml.LineTypeType](_, Some("http://www.opengis.net/gml"), Some("lineType"), __scope, false) } getOrElse {Nil},
        __obj.aestheticCriteria flatMap { scalaxb.toXML[opengis.gml.AesheticCriteriaType](_, Some("http://www.opengis.net/gml"), Some("aestheticCriteria"), __scope, false) })

  }

  trait DefaultOpengisgml_SymbolTypeFormat extends scalaxb.ElemNameParser[opengis.gml.SymbolType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("SymbolType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.SymbolType] =
      phrase(safeRep(any(_ => true)) ^^
      { case p1 =>
      opengis.gml.SymbolType(p1 map { scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@symbolType").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.SymbolTypeEnumeration](x, scalaxb.ElemName(node) :: stack)) } map { "@symbolType" -> _ },
        (node \ "@{http://www.opengis.net/gml}transform").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}transform" -> _ },
        (node \ "@about").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@about" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.SymbolType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@symbolType", _) => attr = scala.xml.Attribute(null, "symbolType", __obj.symbolType.toString, attr)
        case ("@{http://www.opengis.net/gml}transform", _) => __obj.gmltransform foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "transform", x.toString, attr) }
        case ("@about", _) => __obj.about foreach { x => attr = scala.xml.Attribute(null, "about", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.SymbolType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.any flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, true) })

  }

  def buildOpengisgml_SymbolTypeEnumerationFormat = new DefaultOpengisgml_SymbolTypeEnumerationFormat {}
  trait DefaultOpengisgml_SymbolTypeEnumerationFormat extends scalaxb.XMLFormat[opengis.gml.SymbolTypeEnumeration] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.SymbolTypeEnumeration =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.SymbolTypeEnumeration] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("svg")) => opengis.gml.Svg
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("xpath")) => opengis.gml.Xpath
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("other")) => opengis.gml.Other

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.SymbolTypeEnumeration] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.SymbolTypeEnumeration, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisgml_LabelTypeFormat extends scalaxb.ElemNameParser[opengis.gml.LabelType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("LabelType")

    override def isMixed: Boolean = true

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.LabelType] =
      phrase(optTextRecord ~ 
      (safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "LabelExpression")) ^^ 
      (_.toSeq map { x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) })) ~ 
      optTextRecord ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.LabelType(Seq.concat(p1.toList,
        p2,
        p3.toList),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}transform").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}transform" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.LabelType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}transform", _) => __obj.gmltransform foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "transform", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.LabelType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      __obj.mixed.toSeq flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) }

  }

  trait DefaultOpengisgml_StyleVariationTypeFormat extends scalaxb.XMLFormat[opengis.gml.StyleVariationType] with scalaxb.CanWriteChildNodes[opengis.gml.StyleVariationType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.StyleVariationType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.StyleVariationType(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@styleProperty").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@styleProperty" -> _ },
        (node \ "@featurePropertyRange").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@featurePropertyRange" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.StyleVariationType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@styleProperty", _) => attr = scala.xml.Attribute(null, "styleProperty", __obj.styleProperty.toString, attr)
        case ("@featurePropertyRange", _) => __obj.featurePropertyRange foreach { x => attr = scala.xml.Attribute(null, "featurePropertyRange", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.StyleVariationType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  def buildOpengisgml_GraphTypeTypeFormat = new DefaultOpengisgml_GraphTypeTypeFormat {}
  trait DefaultOpengisgml_GraphTypeTypeFormat extends scalaxb.XMLFormat[opengis.gml.GraphTypeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.GraphTypeType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.GraphTypeType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("TREE")) => opengis.gml.TREE
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("BICONNECTED")) => opengis.gml.BICONNECTED

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.GraphTypeType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.GraphTypeType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengisgml_DrawingTypeTypeFormat = new DefaultOpengisgml_DrawingTypeTypeFormat {}
  trait DefaultOpengisgml_DrawingTypeTypeFormat extends scalaxb.XMLFormat[opengis.gml.DrawingTypeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.DrawingTypeType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.DrawingTypeType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("POLYLINE")) => opengis.gml.POLYLINE
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("ORTHOGONAL")) => opengis.gml.ORTHOGONAL

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.DrawingTypeType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.DrawingTypeType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengisgml_LineTypeTypeFormat = new DefaultOpengisgml_LineTypeTypeFormat {}
  trait DefaultOpengisgml_LineTypeTypeFormat extends scalaxb.XMLFormat[opengis.gml.LineTypeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.LineTypeType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.LineTypeType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("STRAIGHT")) => opengis.gml.STRAIGHT
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("BENT")) => opengis.gml.BENT

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.LineTypeType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.LineTypeType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengisgml_AesheticCriteriaTypeFormat = new DefaultOpengisgml_AesheticCriteriaTypeFormat {}
  trait DefaultOpengisgml_AesheticCriteriaTypeFormat extends scalaxb.XMLFormat[opengis.gml.AesheticCriteriaType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.AesheticCriteriaType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.AesheticCriteriaType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("MIN_CROSSINGS")) => opengis.gml.MIN_CROSSINGS
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("MIN_AREA")) => opengis.gml.MIN_AREA
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("MIN_BENDS")) => opengis.gml.MIN_BENDS
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("MAX_BENDS")) => opengis.gml.MAX_BENDS
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("UNIFORM_BENDS")) => opengis.gml.UNIFORM_BENDS
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("MIN_SLOPES")) => opengis.gml.MIN_SLOPES
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("MIN_EDGE_LENGTH")) => opengis.gml.MIN_EDGE_LENGTH
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("MAX_EDGE_LENGTH")) => opengis.gml.MAX_EDGE_LENGTH
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("UNIFORM_EDGE_LENGTH")) => opengis.gml.UNIFORM_EDGE_LENGTH
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("MAX_ANGULAR_RESOLUTION")) => opengis.gml.MAX_ANGULAR_RESOLUTION
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("MIN_ASPECT_RATIO")) => opengis.gml.MIN_ASPECT_RATIO
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("MAX_SYMMETRIES")) => opengis.gml.MAX_SYMMETRIES

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AesheticCriteriaType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.AesheticCriteriaType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisgml_DefinitionTypableFormat extends scalaxb.XMLFormat[opengis.gml.DefinitionTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.DefinitionTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("TimeCalendarEraType")) => Right(scalaxb.fromXML[opengis.gml.TimeCalendarEraType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeOrdinalEraType")) => Right(scalaxb.fromXML[opengis.gml.TimeOrdinalEraType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractTimeReferenceSystemType")) => Right(scalaxb.fromXML[opengis.gml.AbstractTimeReferenceSystemType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeClockType")) => Right(scalaxb.fromXML[opengis.gml.TimeClockType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeCalendarType")) => Right(scalaxb.fromXML[opengis.gml.TimeCalendarType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeCoordinateSystemType")) => Right(scalaxb.fromXML[opengis.gml.TimeCoordinateSystemType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeOrdinalReferenceSystemType")) => Right(scalaxb.fromXML[opengis.gml.TimeOrdinalReferenceSystemType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractReferenceSystemBaseType")) => Right(scalaxb.fromXML[opengis.gml.AbstractReferenceSystemBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractReferenceSystemType")) => Right(scalaxb.fromXML[opengis.gml.AbstractReferenceSystemType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TemporalCRSType")) => Right(scalaxb.fromXML[opengis.gml.TemporalCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ImageCRSType")) => Right(scalaxb.fromXML[opengis.gml.ImageCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("EngineeringCRSType")) => Right(scalaxb.fromXML[opengis.gml.EngineeringCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractGeneralDerivedCRSType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGeneralDerivedCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ProjectedCRSType")) => Right(scalaxb.fromXML[opengis.gml.ProjectedCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DerivedCRSType")) => Right(scalaxb.fromXML[opengis.gml.DerivedCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GeocentricCRSType")) => Right(scalaxb.fromXML[opengis.gml.GeocentricCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("VerticalCRSType")) => Right(scalaxb.fromXML[opengis.gml.VerticalCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GeographicCRSType")) => Right(scalaxb.fromXML[opengis.gml.GeographicCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CompoundCRSType")) => Right(scalaxb.fromXML[opengis.gml.CompoundCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DictionaryType")) => Right(scalaxb.fromXML[opengis.gml.DictionaryType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DefinitionProxyType")) => Right(scalaxb.fromXML[opengis.gml.DefinitionProxyType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("EllipsoidBaseType")) => Right(scalaxb.fromXML[opengis.gml.EllipsoidBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("EllipsoidType")) => Right(scalaxb.fromXML[opengis.gml.EllipsoidType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractDatumBaseType")) => Right(scalaxb.fromXML[opengis.gml.AbstractDatumBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractDatumType")) => Right(scalaxb.fromXML[opengis.gml.AbstractDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TemporalDatumBaseType")) => Right(scalaxb.fromXML[opengis.gml.TemporalDatumBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TemporalDatumType")) => Right(scalaxb.fromXML[opengis.gml.TemporalDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ImageDatumType")) => Right(scalaxb.fromXML[opengis.gml.ImageDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("EngineeringDatumType")) => Right(scalaxb.fromXML[opengis.gml.EngineeringDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("VerticalDatumType")) => Right(scalaxb.fromXML[opengis.gml.VerticalDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GeodeticDatumType")) => Right(scalaxb.fromXML[opengis.gml.GeodeticDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PrimeMeridianBaseType")) => Right(scalaxb.fromXML[opengis.gml.PrimeMeridianBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PrimeMeridianType")) => Right(scalaxb.fromXML[opengis.gml.PrimeMeridianType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractGeneralOperationParameterType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGeneralOperationParameterType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OperationParameterBaseType")) => Right(scalaxb.fromXML[opengis.gml.OperationParameterBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OperationParameterType")) => Right(scalaxb.fromXML[opengis.gml.OperationParameterType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OperationParameterGroupBaseType")) => Right(scalaxb.fromXML[opengis.gml.OperationParameterGroupBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OperationParameterGroupType")) => Right(scalaxb.fromXML[opengis.gml.OperationParameterGroupType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractCoordinateOperationBaseType")) => Right(scalaxb.fromXML[opengis.gml.AbstractCoordinateOperationBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractCoordinateOperationType")) => Right(scalaxb.fromXML[opengis.gml.AbstractCoordinateOperationType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractGeneralTransformationType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGeneralTransformationType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TransformationType")) => Right(scalaxb.fromXML[opengis.gml.TransformationType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractGeneralConversionType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGeneralConversionType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ConversionType")) => Right(scalaxb.fromXML[opengis.gml.ConversionType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ConcatenatedOperationType")) => Right(scalaxb.fromXML[opengis.gml.ConcatenatedOperationType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PassThroughOperationType")) => Right(scalaxb.fromXML[opengis.gml.PassThroughOperationType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OperationMethodBaseType")) => Right(scalaxb.fromXML[opengis.gml.OperationMethodBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OperationMethodType")) => Right(scalaxb.fromXML[opengis.gml.OperationMethodType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CoordinateSystemAxisBaseType")) => Right(scalaxb.fromXML[opengis.gml.CoordinateSystemAxisBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CoordinateSystemAxisType")) => Right(scalaxb.fromXML[opengis.gml.CoordinateSystemAxisType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractCoordinateSystemBaseType")) => Right(scalaxb.fromXML[opengis.gml.AbstractCoordinateSystemBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractCoordinateSystemType")) => Right(scalaxb.fromXML[opengis.gml.AbstractCoordinateSystemType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ObliqueCartesianCSType")) => Right(scalaxb.fromXML[opengis.gml.ObliqueCartesianCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CylindricalCSType")) => Right(scalaxb.fromXML[opengis.gml.CylindricalCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PolarCSType")) => Right(scalaxb.fromXML[opengis.gml.PolarCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("SphericalCSType")) => Right(scalaxb.fromXML[opengis.gml.SphericalCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("UserDefinedCSType")) => Right(scalaxb.fromXML[opengis.gml.UserDefinedCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("LinearCSType")) => Right(scalaxb.fromXML[opengis.gml.LinearCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TemporalCSType")) => Right(scalaxb.fromXML[opengis.gml.TemporalCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("VerticalCSType")) => Right(scalaxb.fromXML[opengis.gml.VerticalCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CartesianCSType")) => Right(scalaxb.fromXML[opengis.gml.CartesianCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("EllipsoidalCSType")) => Right(scalaxb.fromXML[opengis.gml.EllipsoidalCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("UnitDefinitionType")) => Right(scalaxb.fromXML[opengis.gml.UnitDefinitionTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ConventionalUnitType")) => Right(scalaxb.fromXML[opengis.gml.ConventionalUnitType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("BaseUnitType")) => Right(scalaxb.fromXML[opengis.gml.BaseUnitType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DerivedUnitType")) => Right(scalaxb.fromXML[opengis.gml.DerivedUnitType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.DefinitionType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.DefinitionTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.TimeCalendarEraType => scalaxb.toXML[opengis.gml.TimeCalendarEraType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.TimeOrdinalEraType => scalaxb.toXML[opengis.gml.TimeOrdinalEraType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractTimeReferenceSystemType => scalaxb.toXML[opengis.gml.AbstractTimeReferenceSystemType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractReferenceSystemBaseType => scalaxb.toXML[opengis.gml.AbstractReferenceSystemBaseType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.DictionaryType => scalaxb.toXML[opengis.gml.DictionaryType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.DefinitionProxyType => scalaxb.toXML[opengis.gml.DefinitionProxyType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.EllipsoidBaseType => scalaxb.toXML[opengis.gml.EllipsoidBaseType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractDatumBaseType => scalaxb.toXML[opengis.gml.AbstractDatumBaseType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.PrimeMeridianBaseType => scalaxb.toXML[opengis.gml.PrimeMeridianBaseType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractGeneralOperationParameterType => scalaxb.toXML[opengis.gml.AbstractGeneralOperationParameterType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractCoordinateOperationBaseType => scalaxb.toXML[opengis.gml.AbstractCoordinateOperationBaseType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.OperationMethodBaseType => scalaxb.toXML[opengis.gml.OperationMethodBaseType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.CoordinateSystemAxisBaseType => scalaxb.toXML[opengis.gml.CoordinateSystemAxisBaseType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractCoordinateSystemBaseType => scalaxb.toXML[opengis.gml.AbstractCoordinateSystemBaseType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.UnitDefinitionTypable => scalaxb.toXML[opengis.gml.UnitDefinitionTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.DefinitionType => scalaxb.toXML[opengis.gml.DefinitionType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_DefinitionTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DefinitionType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DefinitionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DefinitionType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ^^
      { case p1 =>
      opengis.gml.DefinitionType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.DefinitionType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DefinitionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false))

  }

  trait DefaultOpengisgml_DictionaryTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DictionaryType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DictionaryType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DictionaryType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "dictionaryEntry")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DictionaryEntryType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "definitionMember")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DictionaryEntryType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "indirectEntry")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.IndirectEntryType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 =>
      opengis.gml.DictionaryType(p1,
        p2,
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.DictionaryType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DictionaryType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.dictionarytypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.DictionaryTypeOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_DictionaryEntryTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DictionaryEntryType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DictionaryEntryType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DictionaryEntryType] =
      phrase(opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "DerivedUnit")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DerivedUnitType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "UnitDefinition")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.UnitDefinitionTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "BaseUnit")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.BaseUnitType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ConventionalUnit")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ConventionalUnitType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CoordinateSystemAxis")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordinateSystemAxisType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "OperationMethod")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.OperationMethodType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Ellipsoid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.EllipsoidType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "PrimeMeridian")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PrimeMeridianType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Dictionary")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DictionaryType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "UnitDefinition")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.UnitDefinitionTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CoordinateSystemAxis")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordinateSystemAxisType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "OperationMethod")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.OperationMethodType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Ellipsoid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.EllipsoidType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "PrimeMeridian")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PrimeMeridianType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Dictionary")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DictionaryType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Definition")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DefinitionTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "DefinitionCollection")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DictionaryType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "DefinitionProxy")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DefinitionProxyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TimeCalendarEra")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TimeCalendarEraType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "DefinitionCollection")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DictionaryType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "DefinitionProxy")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DefinitionProxyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TimeCalendarEra")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TimeCalendarEraType](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.DictionaryEntryTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.DictionaryEntryType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.DictionaryEntryType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DictionaryEntryType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.dictionaryentrytypesequence1 map { scalaxb.toXML[opengis.gml.DictionaryEntryTypeSequence1](_, None, Some("dictionaryentrytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_DictionaryEntryTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.DictionaryEntryTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.DictionaryEntryTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.DictionaryEntryTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj.Definition) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_IndirectEntryTypeFormat extends scalaxb.ElemNameParser[opengis.gml.IndirectEntryType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("IndirectEntryType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.IndirectEntryType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "DefinitionProxy")) ^^
      { case p1 =>
      opengis.gml.IndirectEntryType(scalaxb.fromXML[opengis.gml.DefinitionProxyType](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.gml.IndirectEntryType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.gml.DefinitionProxyType](__obj.DefinitionProxy, Some("http://www.opengis.net/gml"), Some("DefinitionProxy"), __scope, false))

  }

  trait DefaultOpengisgml_DefinitionProxyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DefinitionProxyType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DefinitionProxyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DefinitionProxyType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "definitionRef")) ^^
      { case p1 ~ p2 =>
      opengis.gml.DefinitionProxyType(p1,
        scalaxb.fromXML[opengis.gml.ReferenceType](p2, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.DefinitionProxyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DefinitionProxyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        scalaxb.toXML[opengis.gml.ReferenceType](__obj.definitionRef, Some("http://www.opengis.net/gml"), Some("definitionRef"), __scope, false))

  }


/** This content model group makes it easier to construct types that 
      derive from DefinitionType and its descendents "by restriction".  
      A reference to the group saves having to enumerate the standard definition properties. 
      See definition of StandardObjectProperties for more documentation
*/
  trait Opengisgml_StandardDefinitionPropertiesGroupFormat extends scalaxb.AnyElemNameParser {
    def parseStandardDefinitionPropertiesGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.StandardDefinitionPropertiesSequence] =
      ((safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "metaDataProperty")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "description")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "groupName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "parameterName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinateOperationName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "methodName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "meridianName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "datumName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ellipsoidName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "groupName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "parameterName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinateOperationName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "methodName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "meridianName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "datumName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ellipsoidName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "name")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 ~ p2 ~ p3 => opengis.gml.StandardDefinitionPropertiesSequence(p1 map { scalaxb.fromXML[opengis.gml.MetaDataPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p3) })
  
    def parseStandardDefinitionPropertiesGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[Any]] =
      ((safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "metaDataProperty")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "description")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "groupName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "parameterName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinateOperationName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "methodName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "meridianName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "datumName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ellipsoidName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "groupName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "parameterName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinateOperationName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "methodName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "meridianName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "datumName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ellipsoidName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "name")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 ~ p2 ~ p3 => scalaxb.DataRecord(opengis.gml.StandardDefinitionPropertiesSequence(p1 map { scalaxb.fromXML[opengis.gml.MetaDataPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p3)) })
    
    def parsemixedStandardDefinitionPropertiesGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      (((safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "metaDataProperty")) ^^ 
      (_.toSeq map { x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MetaDataPropertyType](x, scalaxb.ElemName(node) :: stack)) })) ~ 
      optTextRecord ~ 
      (opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "description")) ^^ 
      (_ map { x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.StringOrRefType](x, scalaxb.ElemName(node) :: stack)) })) ~ 
      optTextRecord ~ 
      safeRep(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "groupName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "parameterName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinateOperationName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "methodName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "meridianName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "datumName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ellipsoidName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "groupName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "parameterName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinateOperationName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "methodName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "meridianName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "datumName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ellipsoidName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "name")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) })) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 => Seq.concat(p1,
        p2.toList,
        p3.toList,
        p4.toList,
        p5.flatten,
        p6.toList) })
  }

  trait DefaultOpengisgml_StandardDefinitionPropertiesSequenceFormat extends scalaxb.XMLFormat[opengis.gml.StandardDefinitionPropertiesSequence] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.StandardDefinitionPropertiesSequence] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.StandardDefinitionPropertiesSequence, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      Seq.concat(__obj.metaDataProperty flatMap { scalaxb.toXML[opengis.gml.MetaDataPropertyType](_, Some("http://www.opengis.net/gml"), Some("metaDataProperty"), __scope, false) },
        __obj.description map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("description"), __scope, false) } getOrElse {Nil},
        __obj.name flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })


  }

  trait DefaultOpengisgml_DirectionPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DirectionPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DirectionPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DirectionPropertyType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "DirectionVector")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectionVectorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompassPoint")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "DirectionKeyword")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "DirectionString")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.StringOrRefType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.DirectionPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.DirectionPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DirectionPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.directionpropertytypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisgml_DirectionVectorTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DirectionVectorType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DirectionVectorType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DirectionVectorType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "vector")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.VectorType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "horizontalAngle")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "verticalAngle"))) ^^ 
        { case p1 ~ p2 => scalaxb.DataRecord(opengis.gml.DirectionVectorTypeSequence1(scalaxb.fromXML[opengis.gml.AngleType](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.AngleType](p2, scalaxb.ElemName(node) :: stack))) })) ^^
      { case p1 =>
      opengis.gml.DirectionVectorType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.DirectionVectorType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.directionvectortypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.DirectionVectorTypeOption]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisgml_DirectionVectorTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.DirectionVectorTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.DirectionVectorTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.DirectionVectorTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      Seq.concat(scalaxb.toXML[opengis.gml.AngleType](__obj.horizontalAngle, Some("http://www.opengis.net/gml"), Some("horizontalAngle"), __scope, false),
        scalaxb.toXML[opengis.gml.AngleType](__obj.verticalAngle, Some("http://www.opengis.net/gml"), Some("verticalAngle"), __scope, false))


  }

  def buildOpengisgml_CompassPointEnumerationFormat = new DefaultOpengisgml_CompassPointEnumerationFormat {}
  trait DefaultOpengisgml_CompassPointEnumerationFormat extends scalaxb.XMLFormat[opengis.gml.CompassPointEnumeration] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.CompassPointEnumeration =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.CompassPointEnumeration] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("N")) => opengis.gml.N
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("NNE")) => opengis.gml.NNE
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("NE")) => opengis.gml.NE
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("ENE")) => opengis.gml.ENE
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("E")) => opengis.gml.E
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("ESE")) => opengis.gml.ESE
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("SE")) => opengis.gml.SE
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("SSE")) => opengis.gml.SSE
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("S")) => opengis.gml.S
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("SSW")) => opengis.gml.SSW
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("SW")) => opengis.gml.SW
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("WSW")) => opengis.gml.WSW
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("W")) => opengis.gml.W
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("WNW")) => opengis.gml.WNW
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("NW")) => opengis.gml.NW
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("NNW")) => opengis.gml.NNW

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CompassPointEnumeration] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.CompassPointEnumeration, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisgml_AbstractTimeSliceTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractTimeSliceType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractTimeSliceType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("MovingObjectStatusType")) => Right(scalaxb.fromXML[opengis.gml.MovingObjectStatusType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractTimeSliceType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.MovingObjectStatusType => scalaxb.toXML[opengis.gml.MovingObjectStatusType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_MovingObjectStatusTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MovingObjectStatusType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MovingObjectStatusType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MovingObjectStatusType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validTime")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "dataSource")) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "location")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LocationPropertyTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "speed")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "bearing")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "acceleration")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "elevation")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "status")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 =>
      opengis.gml.MovingObjectStatusType(p1,
        scalaxb.fromXML[opengis.gml.TimePrimitivePropertyTypable](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p4,
        p5.headOption map { scalaxb.fromXML[opengis.gml.MeasureTypable](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[opengis.gml.DirectionPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p7.headOption map { scalaxb.fromXML[opengis.gml.MeasureTypable](_, scalaxb.ElemName(node) :: stack) },
        p8.headOption map { scalaxb.fromXML[opengis.gml.MeasureTypable](_, scalaxb.ElemName(node) :: stack) },
        p9.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MovingObjectStatusType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MovingObjectStatusType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        scalaxb.toXML[opengis.gml.TimePrimitivePropertyTypable](__obj.validTime, Some("http://www.opengis.net/gml"), Some("validTime"), __scope, false),
        __obj.dataSource map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("dataSource"), __scope, false) } getOrElse {Nil},
        (Some(__obj.location) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get,
        __obj.speed map { scalaxb.toXML[opengis.gml.MeasureTypable](_, Some("http://www.opengis.net/gml"), Some("speed"), __scope, false) } getOrElse {Nil},
        __obj.bearing map { scalaxb.toXML[opengis.gml.DirectionPropertyType](_, Some("http://www.opengis.net/gml"), Some("bearing"), __scope, false) } getOrElse {Nil},
        __obj.acceleration map { scalaxb.toXML[opengis.gml.MeasureTypable](_, Some("http://www.opengis.net/gml"), Some("acceleration"), __scope, false) } getOrElse {Nil},
        __obj.elevation map { scalaxb.toXML[opengis.gml.MeasureTypable](_, Some("http://www.opengis.net/gml"), Some("elevation"), __scope, false) } getOrElse {Nil},
        __obj.status map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("status"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_HistoryPropertyTypableFormat extends scalaxb.XMLFormat[opengis.gml.HistoryPropertyTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.HistoryPropertyTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("TrackType")) => Right(scalaxb.fromXML[opengis.gml.TrackType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.HistoryPropertyType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.HistoryPropertyTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.TrackType => scalaxb.toXML[opengis.gml.TrackType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.HistoryPropertyType => scalaxb.toXML[opengis.gml.HistoryPropertyType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_HistoryPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.HistoryPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("HistoryPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.HistoryPropertyType] =
      phrase(safeRep(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "MovingObjectStatus")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MovingObjectStatusType](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.HistoryPropertyTypableSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.HistoryPropertyType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.HistoryPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.historypropertytypablesequence1 flatMap { scalaxb.toXML[opengis.gml.HistoryPropertyTypableSequence1](_, None, Some("historypropertytypablesequence1"), __scope, false) })

  }

  trait DefaultOpengisgml_HistoryPropertyTypableSequence1Format extends scalaxb.XMLFormat[opengis.gml.HistoryPropertyTypableSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.HistoryPropertyTypableSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.HistoryPropertyTypableSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._TimeSlice) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_TrackTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TrackType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TrackType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TrackType] =
      phrase(safeRep(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "MovingObjectStatus")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MovingObjectStatusType](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.HistoryPropertyTypableSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.TrackType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.TrackType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.historypropertytypablesequence1 flatMap { scalaxb.toXML[opengis.gml.HistoryPropertyTypableSequence1](_, None, Some("historypropertytypablesequence1"), __scope, false) })

  }

  trait DefaultOpengisgml_TrackTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.TrackTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TrackTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.TrackTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.MovingObjectStatusType](__obj.MovingObjectStatus, Some("http://www.opengis.net/gml"), Some("MovingObjectStatus"), __scope, false)


  }

  trait DefaultOpengisgml_DynamicFeatureTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DynamicFeatureType] with Opengisgml_StandardObjectPropertiesGroupFormat with Opengisgml_DynamicPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DynamicFeatureType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DynamicFeatureType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "boundedBy")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "location")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LocationPropertyTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (parseDynamicPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.DynamicFeatureType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.BoundingShapeType](_, scalaxb.ElemName(node) :: stack) },
        p3,
        p4,
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.DynamicFeatureType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DynamicFeatureType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.boundedBy map { scalaxb.toXML[opengis.gml.BoundingShapeType](_, Some("http://www.opengis.net/gml"), Some("boundedBy"), __scope, false) } getOrElse {Nil},
        __obj.location map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.DynamicPropertiesSequence](__obj.dynamicPropertiesSequence4, None, Some("dynamicPropertiesSequence4"), __scope, false))

  }

  trait DefaultOpengisgml_DynamicFeatureCollectionTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DynamicFeatureCollectionType] with Opengisgml_StandardObjectPropertiesGroupFormat with Opengisgml_DynamicPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DynamicFeatureCollectionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DynamicFeatureCollectionType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "boundedBy")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "location")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LocationPropertyTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "featureMember")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "featureMembers")) ~ 
      (parseDynamicPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.gml.DynamicFeatureCollectionType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.BoundingShapeType](_, scalaxb.ElemName(node) :: stack) },
        p3,
        p4 map { scalaxb.fromXML[opengis.gml.FeaturePropertyType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[opengis.gml.FeatureArrayPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p6,
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.DynamicFeatureCollectionType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DynamicFeatureCollectionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.boundedBy map { scalaxb.toXML[opengis.gml.BoundingShapeType](_, Some("http://www.opengis.net/gml"), Some("boundedBy"), __scope, false) } getOrElse {Nil},
        __obj.location map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        __obj.featureMember flatMap { scalaxb.toXML[opengis.gml.FeaturePropertyType](_, Some("http://www.opengis.net/gml"), Some("featureMember"), __scope, false) },
        __obj.featureMembers map { scalaxb.toXML[opengis.gml.FeatureArrayPropertyType](_, Some("http://www.opengis.net/gml"), Some("featureMembers"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.DynamicPropertiesSequence](__obj.dynamicPropertiesSequence7, None, Some("dynamicPropertiesSequence7"), __scope, false))

  }


  trait Opengisgml_DynamicPropertiesGroupFormat extends scalaxb.AnyElemNameParser {
    def parseDynamicPropertiesGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DynamicPropertiesSequence] =
      ((opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validTime")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "track")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TrackType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "track")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TrackType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "history")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.HistoryPropertyTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "dataSource"))) ^^ 
        { case p1 ~ p2 ~ p3 => opengis.gml.DynamicPropertiesSequence(p1.headOption map { scalaxb.fromXML[opengis.gml.TimePrimitivePropertyTypable](_, scalaxb.ElemName(node) :: stack) },
        p2,
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) }) })
  
    def parseDynamicPropertiesGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[Any]] =
      ((opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validTime")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "track")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TrackType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "track")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TrackType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "history")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.HistoryPropertyTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "dataSource"))) ^^ 
        { case p1 ~ p2 ~ p3 => scalaxb.DataRecord(opengis.gml.DynamicPropertiesSequence(p1.headOption map { scalaxb.fromXML[opengis.gml.TimePrimitivePropertyTypable](_, scalaxb.ElemName(node) :: stack) },
        p2,
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) })) })
    
    def parsemixedDynamicPropertiesGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      (((opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validTime")) ^^ 
      (_ map { x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TimePrimitivePropertyTypable](x, scalaxb.ElemName(node) :: stack)) })) ~ 
      optTextRecord ~ 
      opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "track")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TrackType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "track")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TrackType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "history")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.HistoryPropertyTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) })) ~ 
      optTextRecord ~ 
      (opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "dataSource")) ^^ 
      (_ map { x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.StringOrRefType](x, scalaxb.ElemName(node) :: stack)) })) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 => Seq.concat(p1.toList,
        p2.toList,
        p3 getOrElse {Nil},
        p4.toList,
        p5.toList,
        p6.toList) })
  }

  trait DefaultOpengisgml_DynamicPropertiesSequenceFormat extends scalaxb.XMLFormat[opengis.gml.DynamicPropertiesSequence] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.DynamicPropertiesSequence] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.DynamicPropertiesSequence, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      Seq.concat(__obj.validTime map { scalaxb.toXML[opengis.gml.TimePrimitivePropertyTypable](_, Some("http://www.opengis.net/gml"), Some("validTime"), __scope, false) } getOrElse {Nil},
        __obj.history map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        __obj.dataSource map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("dataSource"), __scope, false) } getOrElse {Nil})


  }

  trait DefaultOpengisgml_AbstractFeatureTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractFeatureType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractFeatureType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("DynamicFeatureType")) => Right(scalaxb.fromXML[opengis.gml.DynamicFeatureType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractCoverageType")) => Right(scalaxb.fromXML[opengis.gml.AbstractCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractContinuousCoverageType")) => Right(scalaxb.fromXML[opengis.gml.AbstractContinuousCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractDiscreteCoverageType")) => Right(scalaxb.fromXML[opengis.gml.AbstractDiscreteCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("RectifiedGridCoverageType")) => Right(scalaxb.fromXML[opengis.gml.RectifiedGridCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GridCoverageType")) => Right(scalaxb.fromXML[opengis.gml.GridCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiSolidCoverageType")) => Right(scalaxb.fromXML[opengis.gml.MultiSolidCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiSurfaceCoverageType")) => Right(scalaxb.fromXML[opengis.gml.MultiSurfaceCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiCurveCoverageType")) => Right(scalaxb.fromXML[opengis.gml.MultiCurveCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiPointCoverageType")) => Right(scalaxb.fromXML[opengis.gml.MultiPointCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractFeatureCollectionType")) => Right(scalaxb.fromXML[opengis.gml.AbstractFeatureCollectionType](node, stack))
          case (Some("http://www.opengis.net/wfs"), Some("FeatureCollectionType")) => Right(scalaxb.fromXML[opengis.wfs.FeatureCollectionType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("FeatureCollectionType")) => Right(scalaxb.fromXML[opengis.gml.FeatureCollectionTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DynamicFeatureCollectionType")) => Right(scalaxb.fromXML[opengis.gml.DynamicFeatureCollectionType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("BoundedFeatureType")) => Right(scalaxb.fromXML[opengis.gml.BoundedFeatureType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ObservationType")) => Right(scalaxb.fromXML[opengis.gml.ObservationTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DirectedObservationType")) => Right(scalaxb.fromXML[opengis.gml.DirectedObservationTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DirectedObservationAtDistanceType")) => Right(scalaxb.fromXML[opengis.gml.DirectedObservationAtDistanceType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractFeatureType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.DynamicFeatureType => scalaxb.toXML[opengis.gml.DynamicFeatureType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractCoverageType => scalaxb.toXML[opengis.gml.AbstractCoverageType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractFeatureCollectionType => scalaxb.toXML[opengis.gml.AbstractFeatureCollectionType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.BoundedFeatureType => scalaxb.toXML[opengis.gml.BoundedFeatureType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.ObservationTypable => scalaxb.toXML[opengis.gml.ObservationTypable](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_BoundingShapeTypeFormat extends scalaxb.ElemNameParser[opengis.gml.BoundingShapeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("BoundingShapeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.BoundingShapeType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Envelope")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.EnvelopeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "EnvelopeWithTimePeriod")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.EnvelopeWithTimePeriodType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Null")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.BoundingShapeType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.BoundingShapeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.boundingshapetypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisgml_EnvelopeWithTimePeriodTypeFormat extends scalaxb.ElemNameParser[opengis.gml.EnvelopeWithTimePeriodType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("EnvelopeWithTimePeriodType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.EnvelopeWithTimePeriodType] =
      phrase(safeRep((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "lowerCorner")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "upperCorner"))) ^^ 
        { case p1 ~ p2 => scalaxb.DataRecord(opengis.gml.EnvelopeTypableSequence1(scalaxb.fromXML[opengis.gml.DirectPositionType](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.DirectPositionType](p2, scalaxb.ElemName(node) :: stack))) }) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coord")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pos")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinates")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordinatesType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "timePosition")) ^^
      { case p1 ~ p2 =>
      opengis.gml.EnvelopeWithTimePeriodType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.TimePositionType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ },
        (node \ "@frame").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[java.net.URI](scala.xml.Text("#ISO-8601"), scalaxb.ElemName(node) :: stack))) map { "@frame" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.EnvelopeWithTimePeriodType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@frame", _) => if (__obj.frame.toString != "#ISO-8601") attr = scala.xml.Attribute(null, "frame", __obj.frame.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.EnvelopeWithTimePeriodType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.envelopetypableoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.EnvelopeTypableOption]](x, x.namespace, x.key, __scope, false) },
        __obj.timePosition flatMap { scalaxb.toXML[opengis.gml.TimePositionType](_, Some("http://www.opengis.net/gml"), Some("timePosition"), __scope, false) })

  }

  trait DefaultOpengisgml_FeaturePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.FeaturePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("FeaturePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.FeaturePropertyType] =
      phrase(opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Observation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ObservationTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "DirectedObservation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectedObservationTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "FeatureCollection")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.FeatureCollectionTypable](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.FeaturePropertyTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.FeaturePropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.FeaturePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.FeaturePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.featurepropertytypesequence1 map { scalaxb.toXML[opengis.gml.FeaturePropertyTypeSequence1](_, None, Some("featurepropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_FeaturePropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.FeaturePropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.FeaturePropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.FeaturePropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._Feature) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_FeatureArrayPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.FeatureArrayPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("FeatureArrayPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.FeatureArrayPropertyType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Observation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ObservationTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "DirectedObservation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectedObservationTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "FeatureCollection")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.FeatureCollectionTypable](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.FeatureArrayPropertyType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.FeatureArrayPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj._Feature flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_AbstractFeatureCollectionTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractFeatureCollectionType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractFeatureCollectionType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/wfs"), Some("FeatureCollectionType")) => Right(scalaxb.fromXML[opengis.wfs.FeatureCollectionType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("FeatureCollectionType")) => Right(scalaxb.fromXML[opengis.gml.FeatureCollectionTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DynamicFeatureCollectionType")) => Right(scalaxb.fromXML[opengis.gml.DynamicFeatureCollectionType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractFeatureCollectionType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.wfs.FeatureCollectionType => scalaxb.toXML[opengis.wfs.FeatureCollectionType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.FeatureCollectionTypable => scalaxb.toXML[opengis.gml.FeatureCollectionTypable](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_FeatureCollectionTypableFormat extends scalaxb.XMLFormat[opengis.gml.FeatureCollectionTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.FeatureCollectionTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("DynamicFeatureCollectionType")) => Right(scalaxb.fromXML[opengis.gml.DynamicFeatureCollectionType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.FeatureCollectionType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.FeatureCollectionTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.DynamicFeatureCollectionType => scalaxb.toXML[opengis.gml.DynamicFeatureCollectionType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.FeatureCollectionType => scalaxb.toXML[opengis.gml.FeatureCollectionType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_FeatureCollectionTypeFormat extends scalaxb.ElemNameParser[opengis.gml.FeatureCollectionType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("FeatureCollectionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.FeatureCollectionType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "boundedBy")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "location")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LocationPropertyTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "featureMember")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "featureMembers")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.gml.FeatureCollectionType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.BoundingShapeType](_, scalaxb.ElemName(node) :: stack) },
        p3,
        p4 map { scalaxb.fromXML[opengis.gml.FeaturePropertyType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[opengis.gml.FeatureArrayPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.FeatureCollectionType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.FeatureCollectionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.boundedBy map { scalaxb.toXML[opengis.gml.BoundingShapeType](_, Some("http://www.opengis.net/gml"), Some("boundedBy"), __scope, false) } getOrElse {Nil},
        __obj.location map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        __obj.featureMember flatMap { scalaxb.toXML[opengis.gml.FeaturePropertyType](_, Some("http://www.opengis.net/gml"), Some("featureMember"), __scope, false) },
        __obj.featureMembers map { scalaxb.toXML[opengis.gml.FeatureArrayPropertyType](_, Some("http://www.opengis.net/gml"), Some("featureMembers"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_BoundedFeatureTypeFormat extends scalaxb.ElemNameParser[opengis.gml.BoundedFeatureType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("BoundedFeatureType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.BoundedFeatureType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "boundedBy")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "location")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LocationPropertyTypable](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.BoundedFeatureType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.BoundingShapeType](_, scalaxb.ElemName(node) :: stack) },
        p3,
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.BoundedFeatureType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.BoundedFeatureType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.boundedBy map { scalaxb.toXML[opengis.gml.BoundingShapeType](_, Some("http://www.opengis.net/gml"), Some("boundedBy"), __scope, false) } getOrElse {Nil},
        __obj.location map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_LocationPropertyTypableFormat extends scalaxb.XMLFormat[opengis.gml.LocationPropertyTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.LocationPropertyTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("PriorityLocationPropertyType")) => Right(scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.LocationPropertyType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.LocationPropertyTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.PriorityLocationPropertyType => scalaxb.toXML[opengis.gml.PriorityLocationPropertyType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.LocationPropertyType => scalaxb.toXML[opengis.gml.LocationPropertyType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_LocationPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.LocationPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("LocationPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.LocationPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeometricComplex")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeometricComplexType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "LocationKeyWord")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "LocationString")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.StringOrRefType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Null")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.LocationPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.LocationPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.LocationPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.locationpropertytypableoption map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_PriorityLocationPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.PriorityLocationPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("PriorityLocationPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.PriorityLocationPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeometricComplex")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeometricComplexType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "LocationKeyWord")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "LocationString")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.StringOrRefType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Null")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.PriorityLocationPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ },
        (node \ "@priority").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@priority" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.PriorityLocationPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case ("@priority", _) => __obj.priority foreach { x => attr = scala.xml.Attribute(null, "priority", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.PriorityLocationPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.locationpropertytypableoption map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_AbstractGeometricAggregateTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractGeometricAggregateType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractGeometricAggregateType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("MultiPolygonType")) => Right(scalaxb.fromXML[opengis.gml.MultiPolygonType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiLineStringType")) => Right(scalaxb.fromXML[opengis.gml.MultiLineStringType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiSolidType")) => Right(scalaxb.fromXML[opengis.gml.MultiSolidType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.MultiSurfaceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiCurveType")) => Right(scalaxb.fromXML[opengis.gml.MultiCurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiPointType")) => Right(scalaxb.fromXML[opengis.gml.MultiPointType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiGeometryType")) => Right(scalaxb.fromXML[opengis.gml.MultiGeometryType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractGeometricAggregateType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.MultiPolygonType => scalaxb.toXML[opengis.gml.MultiPolygonType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.MultiLineStringType => scalaxb.toXML[opengis.gml.MultiLineStringType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.MultiSolidType => scalaxb.toXML[opengis.gml.MultiSolidType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.MultiSurfaceType => scalaxb.toXML[opengis.gml.MultiSurfaceType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.MultiCurveType => scalaxb.toXML[opengis.gml.MultiCurveType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.MultiPointType => scalaxb.toXML[opengis.gml.MultiPointType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.MultiGeometryType => scalaxb.toXML[opengis.gml.MultiGeometryType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_MultiGeometryTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiGeometryType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiGeometryType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiGeometryType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "geometryMember")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "geometryMembers")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.MultiGeometryType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.GeometryPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.GeometryArrayPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiGeometryType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiGeometryType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.geometryMember flatMap { scalaxb.toXML[opengis.gml.GeometryPropertyType](_, Some("http://www.opengis.net/gml"), Some("geometryMember"), __scope, false) },
        __obj.geometryMembers map { scalaxb.toXML[opengis.gml.GeometryArrayPropertyType](_, Some("http://www.opengis.net/gml"), Some("geometryMembers"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiGeometryPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiGeometryPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiGeometryPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiGeometryPropertyType] =
      phrase(opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "MultiLineString")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiLineStringType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "MultiGeometry")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiGeometryType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "MultiPoint")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiPointType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "MultiCurve")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiCurveType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "MultiSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSurfaceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "MultiSolid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiSolidType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "MultiPolygon")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MultiPolygonType](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.MultiGeometryPropertyTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.MultiGeometryPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiGeometryPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiGeometryPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.multigeometrypropertytypesequence1 map { scalaxb.toXML[opengis.gml.MultiGeometryPropertyTypeSequence1](_, None, Some("multigeometrypropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiGeometryPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.MultiGeometryPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.MultiGeometryPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.MultiGeometryPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._GeometricAggregate) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_MultiPointTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiPointType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiPointType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiPointType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointMember")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointMembers")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.MultiPointType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.PointPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.PointArrayPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiPointType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiPointType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.pointMember flatMap { scalaxb.toXML[opengis.gml.PointPropertyType](_, Some("http://www.opengis.net/gml"), Some("pointMember"), __scope, false) },
        __obj.pointMembers map { scalaxb.toXML[opengis.gml.PointArrayPropertyType](_, Some("http://www.opengis.net/gml"), Some("pointMembers"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiPointPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiPointPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiPointPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiPointPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "MultiPoint"))) ^^ 
        { case p1 => opengis.gml.MultiPointPropertyTypeSequence1(scalaxb.fromXML[opengis.gml.MultiPointType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.MultiPointPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiPointPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiPointPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.multipointpropertytypesequence1 map { scalaxb.toXML[opengis.gml.MultiPointPropertyTypeSequence1](_, None, Some("multipointpropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiPointPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.MultiPointPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.MultiPointPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.MultiPointPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.MultiPointType](__obj.MultiPoint, Some("http://www.opengis.net/gml"), Some("MultiPoint"), __scope, false)


  }

  trait DefaultOpengisgml_MultiCurveTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiCurveType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiCurveType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiCurveType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "curveMember")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "curveMembers")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.MultiCurveType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.CurvePropertyType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.CurveArrayPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiCurveType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiCurveType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.curveMember flatMap { scalaxb.toXML[opengis.gml.CurvePropertyType](_, Some("http://www.opengis.net/gml"), Some("curveMember"), __scope, false) },
        __obj.curveMembers map { scalaxb.toXML[opengis.gml.CurveArrayPropertyType](_, Some("http://www.opengis.net/gml"), Some("curveMembers"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiCurvePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiCurvePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiCurvePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiCurvePropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "MultiCurve"))) ^^ 
        { case p1 => opengis.gml.MultiCurvePropertyTypeSequence1(scalaxb.fromXML[opengis.gml.MultiCurveType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.MultiCurvePropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiCurvePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiCurvePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.multicurvepropertytypesequence1 map { scalaxb.toXML[opengis.gml.MultiCurvePropertyTypeSequence1](_, None, Some("multicurvepropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiCurvePropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.MultiCurvePropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.MultiCurvePropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.MultiCurvePropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.MultiCurveType](__obj.MultiCurve, Some("http://www.opengis.net/gml"), Some("MultiCurve"), __scope, false)


  }

  trait DefaultOpengisgml_MultiSurfaceTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiSurfaceType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiSurfaceType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiSurfaceType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "surfaceMember")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "surfaceMembers")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.MultiSurfaceType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.SurfacePropertyType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.SurfaceArrayPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiSurfaceType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiSurfaceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.surfaceMember flatMap { scalaxb.toXML[opengis.gml.SurfacePropertyType](_, Some("http://www.opengis.net/gml"), Some("surfaceMember"), __scope, false) },
        __obj.surfaceMembers map { scalaxb.toXML[opengis.gml.SurfaceArrayPropertyType](_, Some("http://www.opengis.net/gml"), Some("surfaceMembers"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiSurfacePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiSurfacePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiSurfacePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiSurfacePropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "MultiSurface"))) ^^ 
        { case p1 => opengis.gml.MultiSurfacePropertyTypeSequence1(scalaxb.fromXML[opengis.gml.MultiSurfaceType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.MultiSurfacePropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiSurfacePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiSurfacePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.multisurfacepropertytypesequence1 map { scalaxb.toXML[opengis.gml.MultiSurfacePropertyTypeSequence1](_, None, Some("multisurfacepropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiSurfacePropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.MultiSurfacePropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.MultiSurfacePropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.MultiSurfacePropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.MultiSurfaceType](__obj.MultiSurface, Some("http://www.opengis.net/gml"), Some("MultiSurface"), __scope, false)


  }

  trait DefaultOpengisgml_MultiSolidTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiSolidType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiSolidType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiSolidType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "solidMember")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "solidMembers")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.MultiSolidType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.SolidPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.SolidArrayPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiSolidType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiSolidType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.solidMember flatMap { scalaxb.toXML[opengis.gml.SolidPropertyType](_, Some("http://www.opengis.net/gml"), Some("solidMember"), __scope, false) },
        __obj.solidMembers map { scalaxb.toXML[opengis.gml.SolidArrayPropertyType](_, Some("http://www.opengis.net/gml"), Some("solidMembers"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiSolidPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiSolidPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiSolidPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiSolidPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "MultiSolid"))) ^^ 
        { case p1 => opengis.gml.MultiSolidPropertyTypeSequence1(scalaxb.fromXML[opengis.gml.MultiSolidType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.MultiSolidPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiSolidPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiSolidPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.multisolidpropertytypesequence1 map { scalaxb.toXML[opengis.gml.MultiSolidPropertyTypeSequence1](_, None, Some("multisolidpropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiSolidPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.MultiSolidPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.MultiSolidPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.MultiSolidPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.MultiSolidType](__obj.MultiSolid, Some("http://www.opengis.net/gml"), Some("MultiSolid"), __scope, false)


  }

  trait DefaultOpengisgml_MultiLineStringTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiLineStringType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiLineStringType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiLineStringType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "lineStringMember")) ^^
      { case p1 ~ p2 =>
      opengis.gml.MultiLineStringType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.LineStringPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiLineStringType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiLineStringType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.lineStringMember flatMap { scalaxb.toXML[opengis.gml.LineStringPropertyType](_, Some("http://www.opengis.net/gml"), Some("lineStringMember"), __scope, false) })

  }

  trait DefaultOpengisgml_MultiLineStringPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiLineStringPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiLineStringPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiLineStringPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "MultiLineString"))) ^^ 
        { case p1 => opengis.gml.MultiLineStringPropertyTypeSequence1(scalaxb.fromXML[opengis.gml.MultiLineStringType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.MultiLineStringPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiLineStringPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiLineStringPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.multilinestringpropertytypesequence1 map { scalaxb.toXML[opengis.gml.MultiLineStringPropertyTypeSequence1](_, None, Some("multilinestringpropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiLineStringPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.MultiLineStringPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.MultiLineStringPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.MultiLineStringPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.MultiLineStringType](__obj.MultiLineString, Some("http://www.opengis.net/gml"), Some("MultiLineString"), __scope, false)


  }

  trait DefaultOpengisgml_MultiPolygonTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiPolygonType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiPolygonType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiPolygonType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "polygonMember")) ^^
      { case p1 ~ p2 =>
      opengis.gml.MultiPolygonType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.PolygonPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiPolygonType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiPolygonType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.polygonMember flatMap { scalaxb.toXML[opengis.gml.PolygonPropertyType](_, Some("http://www.opengis.net/gml"), Some("polygonMember"), __scope, false) })

  }

  trait DefaultOpengisgml_MultiPolygonPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MultiPolygonPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MultiPolygonPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MultiPolygonPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "MultiPolygon"))) ^^ 
        { case p1 => opengis.gml.MultiPolygonPropertyTypeSequence1(scalaxb.fromXML[opengis.gml.MultiPolygonType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.MultiPolygonPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MultiPolygonPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MultiPolygonPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.multipolygonpropertytypesequence1 map { scalaxb.toXML[opengis.gml.MultiPolygonPropertyTypeSequence1](_, None, Some("multipolygonpropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_MultiPolygonPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.MultiPolygonPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.MultiPolygonPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.MultiPolygonPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.MultiPolygonType](__obj.MultiPolygon, Some("http://www.opengis.net/gml"), Some("MultiPolygon"), __scope, false)


  }

  trait DefaultOpengisgml_GeometryPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GeometryPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GeometryPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GeometryPropertyType] =
      phrase(opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeometricComplex")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeometricComplexType](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.GeometryPropertyTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.GeometryPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GeometryPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GeometryPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.geometrypropertytypesequence1 map { scalaxb.toXML[opengis.gml.GeometryPropertyTypeSequence1](_, None, Some("geometrypropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_GeometryPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.GeometryPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.GeometryPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.GeometryPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._Geometry) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_GeometryArrayPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GeometryArrayPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GeometryArrayPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GeometryArrayPropertyType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeometricComplex")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeometricComplexType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.GeometryArrayPropertyType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.GeometryArrayPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj._Geometry flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_AbstractGeometryTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractGeometryType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractGeometryType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("AbstractRingType")) => Right(scalaxb.fromXML[opengis.gml.AbstractRingType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("RingType")) => Right(scalaxb.fromXML[opengis.gml.RingType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("LinearRingType")) => Right(scalaxb.fromXML[opengis.gml.LinearRingType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractGeometricAggregateType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGeometricAggregateType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiPolygonType")) => Right(scalaxb.fromXML[opengis.gml.MultiPolygonType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiLineStringType")) => Right(scalaxb.fromXML[opengis.gml.MultiLineStringType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiSolidType")) => Right(scalaxb.fromXML[opengis.gml.MultiSolidType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.MultiSurfaceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiCurveType")) => Right(scalaxb.fromXML[opengis.gml.MultiCurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiPointType")) => Right(scalaxb.fromXML[opengis.gml.MultiPointType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiGeometryType")) => Right(scalaxb.fromXML[opengis.gml.MultiGeometryType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractGeometricPrimitiveType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGeometricPrimitiveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractSolidType")) => Right(scalaxb.fromXML[opengis.gml.AbstractSolidTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("SolidType")) => Right(scalaxb.fromXML[opengis.gml.SolidType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CompositeSolidType")) => Right(scalaxb.fromXML[opengis.gml.CompositeSolidType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.AbstractSurfaceTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OrientableSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.OrientableSurfaceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("SurfaceType")) => Right(scalaxb.fromXML[opengis.gml.SurfaceTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TriangulatedSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.TriangulatedSurfaceTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TinType")) => Right(scalaxb.fromXML[opengis.gml.TinType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PolyhedralSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.PolyhedralSurfaceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PolygonType")) => Right(scalaxb.fromXML[opengis.gml.PolygonType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CompositeSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.CompositeSurfaceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractCurveType")) => Right(scalaxb.fromXML[opengis.gml.AbstractCurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OrientableCurveType")) => Right(scalaxb.fromXML[opengis.gml.OrientableCurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CurveType")) => Right(scalaxb.fromXML[opengis.gml.CurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("LineStringType")) => Right(scalaxb.fromXML[opengis.gml.LineStringType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CompositeCurveType")) => Right(scalaxb.fromXML[opengis.gml.CompositeCurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PointType")) => Right(scalaxb.fromXML[opengis.gml.PointType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GeometricComplexType")) => Right(scalaxb.fromXML[opengis.gml.GeometricComplexType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GridType")) => Right(scalaxb.fromXML[opengis.gml.GridTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("RectifiedGridType")) => Right(scalaxb.fromXML[opengis.gml.RectifiedGridType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractGeometryType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.AbstractRingType => scalaxb.toXML[opengis.gml.AbstractRingType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractGeometricAggregateType => scalaxb.toXML[opengis.gml.AbstractGeometricAggregateType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractGeometricPrimitiveType => scalaxb.toXML[opengis.gml.AbstractGeometricPrimitiveType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.GeometricComplexType => scalaxb.toXML[opengis.gml.GeometricComplexType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.GridTypable => scalaxb.toXML[opengis.gml.GridTypable](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_AbstractGeometricPrimitiveTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractGeometricPrimitiveType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractGeometricPrimitiveType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("AbstractSolidType")) => Right(scalaxb.fromXML[opengis.gml.AbstractSolidTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("SolidType")) => Right(scalaxb.fromXML[opengis.gml.SolidType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CompositeSolidType")) => Right(scalaxb.fromXML[opengis.gml.CompositeSolidType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.AbstractSurfaceTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OrientableSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.OrientableSurfaceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("SurfaceType")) => Right(scalaxb.fromXML[opengis.gml.SurfaceTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TriangulatedSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.TriangulatedSurfaceTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TinType")) => Right(scalaxb.fromXML[opengis.gml.TinType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PolyhedralSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.PolyhedralSurfaceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PolygonType")) => Right(scalaxb.fromXML[opengis.gml.PolygonType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CompositeSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.CompositeSurfaceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractCurveType")) => Right(scalaxb.fromXML[opengis.gml.AbstractCurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OrientableCurveType")) => Right(scalaxb.fromXML[opengis.gml.OrientableCurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CurveType")) => Right(scalaxb.fromXML[opengis.gml.CurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("LineStringType")) => Right(scalaxb.fromXML[opengis.gml.LineStringType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CompositeCurveType")) => Right(scalaxb.fromXML[opengis.gml.CompositeCurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PointType")) => Right(scalaxb.fromXML[opengis.gml.PointType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractGeometricPrimitiveType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.AbstractSolidTypable => scalaxb.toXML[opengis.gml.AbstractSolidTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractSurfaceTypable => scalaxb.toXML[opengis.gml.AbstractSurfaceTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractCurveType => scalaxb.toXML[opengis.gml.AbstractCurveType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.PointType => scalaxb.toXML[opengis.gml.PointType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_GeometricPrimitivePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GeometricPrimitivePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GeometricPrimitivePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GeometricPrimitivePropertyType] =
      phrase(opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Point")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CompositeSurfaceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "_Surface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractSurfaceTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Polygon")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolygonType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Surface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.SurfaceTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "OrientableSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.OrientableSurfaceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeSolid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CompositeSolidType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Solid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.SolidType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "_Solid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractSolidTypable](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.GeometricPrimitivePropertyTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.GeometricPrimitivePropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GeometricPrimitivePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GeometricPrimitivePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.geometricprimitivepropertytypesequence1 map { scalaxb.toXML[opengis.gml.GeometricPrimitivePropertyTypeSequence1](_, None, Some("geometricprimitivepropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_GeometricPrimitivePropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.GeometricPrimitivePropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.GeometricPrimitivePropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.GeometricPrimitivePropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._GeometricPrimitive) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_PointTypeFormat extends scalaxb.ElemNameParser[opengis.gml.PointType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("PointType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.PointType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pos")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinates")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordinatesType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coord")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 =>
      opengis.gml.PointType(p1,
        p2,
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.PointType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.PointType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        (Some(__obj.pointtypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.PointTypeOption]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisgml_PointPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.PointPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("PointPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.PointPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Point"))) ^^ 
        { case p1 => opengis.gml.PointPropertyTypeSequence1(scalaxb.fromXML[opengis.gml.PointType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.PointPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.PointPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.PointPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.pointpropertytypesequence1 map { scalaxb.toXML[opengis.gml.PointPropertyTypeSequence1](_, None, Some("pointpropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_PointPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.PointPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.PointPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.PointPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.PointType](__obj.Point, Some("http://www.opengis.net/gml"), Some("Point"), __scope, false)


  }

  trait DefaultOpengisgml_PointArrayPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.PointArrayPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("PointArrayPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.PointArrayPropertyType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Point")) ^^
      { case p1 =>
      opengis.gml.PointArrayPropertyType(p1 map { scalaxb.fromXML[opengis.gml.PointType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.gml.PointArrayPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Point flatMap { scalaxb.toXML[opengis.gml.PointType](_, Some("http://www.opengis.net/gml"), Some("Point"), __scope, false) })

  }

  trait DefaultOpengisgml_AbstractCurveTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractCurveType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractCurveType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("OrientableCurveType")) => Right(scalaxb.fromXML[opengis.gml.OrientableCurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CurveType")) => Right(scalaxb.fromXML[opengis.gml.CurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("LineStringType")) => Right(scalaxb.fromXML[opengis.gml.LineStringType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CompositeCurveType")) => Right(scalaxb.fromXML[opengis.gml.CompositeCurveType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractCurveType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.OrientableCurveType => scalaxb.toXML[opengis.gml.OrientableCurveType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.CurveType => scalaxb.toXML[opengis.gml.CurveType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.LineStringType => scalaxb.toXML[opengis.gml.LineStringType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.CompositeCurveType => scalaxb.toXML[opengis.gml.CompositeCurveType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_CurvePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CurvePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CurvePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CurvePropertyType] =
      phrase(opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeCurve")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CompositeCurveType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "LineString")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LineStringType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "OrientableCurve")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.OrientableCurveType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Curve")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CurveType](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.CurvePropertyTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.CurvePropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CurvePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CurvePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.curvepropertytypesequence1 map { scalaxb.toXML[opengis.gml.CurvePropertyTypeSequence1](_, None, Some("curvepropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_CurvePropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.CurvePropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CurvePropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.CurvePropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._Curve) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_CurveArrayPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CurveArrayPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CurveArrayPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CurveArrayPropertyType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeCurve")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CompositeCurveType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "LineString")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LineStringType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "OrientableCurve")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.OrientableCurveType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Curve")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CurveType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.CurveArrayPropertyType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.CurveArrayPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj._Curve flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_LineStringTypeFormat extends scalaxb.ElemNameParser[opengis.gml.LineStringType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("LineStringType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.LineStringType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pos")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointProperty")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointRep")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coord")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordType](x, scalaxb.ElemName(node) :: stack))))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "posList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionListType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinates")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordinatesType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 =>
      opengis.gml.LineStringType(p1,
        p2,
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.LineStringType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.LineStringType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.linestringtypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.LineStringTypeOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_DirectPositionTypeFormat extends scalaxb.XMLFormat[opengis.gml.DirectPositionType] with scalaxb.CanWriteChildNodes[opengis.gml.DirectPositionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.DirectPositionType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.DirectPositionType(scalaxb.fromXML[Seq[Double]](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.DirectPositionType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DirectPositionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_DirectPositionListTypeFormat extends scalaxb.XMLFormat[opengis.gml.DirectPositionListType] with scalaxb.CanWriteChildNodes[opengis.gml.DirectPositionListType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.DirectPositionListType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.DirectPositionListType(scalaxb.fromXML[Seq[Double]](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ },
        (node \ "@count").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@count" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.DirectPositionListType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@count", _) => __obj.count foreach { x => attr = scala.xml.Attribute(null, "count", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DirectPositionListType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_VectorTypeFormat extends scalaxb.XMLFormat[opengis.gml.VectorType] with scalaxb.CanWriteChildNodes[opengis.gml.VectorType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.VectorType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.VectorType(scalaxb.fromXML[Seq[Double]](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.VectorType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.VectorType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_EnvelopeTypableFormat extends scalaxb.XMLFormat[opengis.gml.EnvelopeTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.EnvelopeTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("EnvelopeWithTimePeriodType")) => Right(scalaxb.fromXML[opengis.gml.EnvelopeWithTimePeriodType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.EnvelopeType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.EnvelopeTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.EnvelopeWithTimePeriodType => scalaxb.toXML[opengis.gml.EnvelopeWithTimePeriodType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.EnvelopeType => scalaxb.toXML[opengis.gml.EnvelopeType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_EnvelopeTypeFormat extends scalaxb.ElemNameParser[opengis.gml.EnvelopeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("EnvelopeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.EnvelopeType] =
      phrase(safeRep((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "lowerCorner")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "upperCorner"))) ^^ 
        { case p1 ~ p2 => scalaxb.DataRecord(opengis.gml.EnvelopeTypableSequence1(scalaxb.fromXML[opengis.gml.DirectPositionType](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.DirectPositionType](p2, scalaxb.ElemName(node) :: stack))) }) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coord")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pos")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinates")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordinatesType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.EnvelopeType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.EnvelopeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.EnvelopeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.envelopetypableoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.EnvelopeTypableOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_EnvelopeTypableSequence1Format extends scalaxb.XMLFormat[opengis.gml.EnvelopeTypableSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.EnvelopeTypableSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.EnvelopeTypableSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      Seq.concat(scalaxb.toXML[opengis.gml.DirectPositionType](__obj.lowerCorner, Some("http://www.opengis.net/gml"), Some("lowerCorner"), __scope, false),
        scalaxb.toXML[opengis.gml.DirectPositionType](__obj.upperCorner, Some("http://www.opengis.net/gml"), Some("upperCorner"), __scope, false))


  }

  trait DefaultOpengisgml_CoordTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CoordType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CoordType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CoordType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "X")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Y")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Z")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.CoordType(scalaxb.fromXML[BigDecimal](p1, scalaxb.ElemName(node) :: stack),
        p2.headOption map { scalaxb.fromXML[BigDecimal](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[BigDecimal](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.gml.CoordType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[BigDecimal](__obj.X, Some("http://www.opengis.net/gml"), Some("X"), __scope, false),
        __obj.Y map { scalaxb.toXML[BigDecimal](_, Some("http://www.opengis.net/gml"), Some("Y"), __scope, false) } getOrElse {Nil},
        __obj.Z map { scalaxb.toXML[BigDecimal](_, Some("http://www.opengis.net/gml"), Some("Z"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_LineStringPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.LineStringPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("LineStringPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.LineStringPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "LineString"))) ^^ 
        { case p1 => opengis.gml.LineStringPropertyTypeSequence1(scalaxb.fromXML[opengis.gml.LineStringType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.LineStringPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.LineStringPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.LineStringPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.linestringpropertytypesequence1 map { scalaxb.toXML[opengis.gml.LineStringPropertyTypeSequence1](_, None, Some("linestringpropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_LineStringPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.LineStringPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.LineStringPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.LineStringPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.LineStringType](__obj.LineString, Some("http://www.opengis.net/gml"), Some("LineString"), __scope, false)


  }


/** A list of geometric positions represented either by a DirectPosition or a Point.
*/
  trait Opengisgml_GeometricPositionListGroupGroupFormat extends Opengisgml_GeometricPositionGroupGroupFormat {
    def parseGeometricPositionListGroupGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[scalaxb.DataRecord[Any]] =
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "posList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionListType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      (parseGeometricPositionGroupGroup(node, scalaxb.ElemName(node) :: stack, true)))
  
    def parseGeometricPositionListGroupGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[Any]] =
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "posList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionListType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      (parseGeometricPositionGroupGroup(node, scalaxb.ElemName(node) :: stack, true)))
    
    def parsemixedGeometricPositionListGroupGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      (((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "posList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionListType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      (parsemixedGeometricPositionGroupGroup(node, scalaxb.ElemName(node) :: stack)))
  }


/** A geometric position represented either by a DirectPosition or a Point.
*/
  trait Opengisgml_GeometricPositionGroupGroupFormat extends scalaxb.AnyElemNameParser {
    def parseGeometricPositionGroupGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[scalaxb.DataRecord[opengis.gml.GeometricPositionGroupOption]] =
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pos")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointProperty")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack)))))
  
    def parseGeometricPositionGroupGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[opengis.gml.GeometricPositionGroupOption]] =
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pos")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointProperty")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack)))))
    
    def parsemixedGeometricPositionGroupGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      (((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pos")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointProperty")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }))
  }

  trait DefaultOpengisgml_SRSInformationGroupFormat extends scalaxb.AttributeGroupFormat[opengis.gml.SRSInformationGroup] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.SRSInformationGroup] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.SRSInformationGroup((node \ "@axisLabels").headOption map { scalaxb.fromXML[Seq[String]](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@uomLabels").headOption map { scalaxb.fromXML[Seq[String]](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.SRSInformationGroup, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
    __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
      attr
    }
  }

  trait DefaultOpengisgml_SRSReferenceGroupFormat extends scalaxb.AttributeGroupFormat[opengis.gml.SRSReferenceGroup] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.SRSReferenceGroup] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.SRSReferenceGroup((node \ "@srsName").headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@srsDimension").headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@axisLabels").headOption map { scalaxb.fromXML[Seq[String]](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@uomLabels").headOption map { scalaxb.fromXML[Seq[String]](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.SRSReferenceGroup, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
    __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
    __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
    __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
      attr
    }
  }

  trait DefaultOpengisgml_AbstractSurfaceTypableFormat extends scalaxb.XMLFormat[opengis.gml.AbstractSurfaceTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractSurfaceTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("OrientableSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.OrientableSurfaceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("SurfaceType")) => Right(scalaxb.fromXML[opengis.gml.SurfaceTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TriangulatedSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.TriangulatedSurfaceTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TinType")) => Right(scalaxb.fromXML[opengis.gml.TinType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PolyhedralSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.PolyhedralSurfaceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PolygonType")) => Right(scalaxb.fromXML[opengis.gml.PolygonType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CompositeSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.CompositeSurfaceType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.AbstractSurfaceType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractSurfaceTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.OrientableSurfaceType => scalaxb.toXML[opengis.gml.OrientableSurfaceType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.SurfaceTypable => scalaxb.toXML[opengis.gml.SurfaceTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.PolygonType => scalaxb.toXML[opengis.gml.PolygonType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.CompositeSurfaceType => scalaxb.toXML[opengis.gml.CompositeSurfaceType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractSurfaceType => scalaxb.toXML[opengis.gml.AbstractSurfaceType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_AbstractSurfaceTypeFormat extends scalaxb.ElemNameParser[opengis.gml.AbstractSurfaceType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("AbstractSurfaceType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.AbstractSurfaceType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ^^
      { case p1 =>
      opengis.gml.AbstractSurfaceType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.AbstractSurfaceType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.AbstractSurfaceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false))

  }

  trait DefaultOpengisgml_SurfacePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.SurfacePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("SurfacePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.SurfacePropertyType] =
      phrase(opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CompositeSurfaceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CompositeSurfaceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "_Surface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractSurfaceTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Polygon")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolygonType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Surface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.SurfaceTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "OrientableSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.OrientableSurfaceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Polygon")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolygonType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "PolyhedralSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolyhedralSurfaceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Surface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.SurfaceTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TriangulatedSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TriangulatedSurfaceTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "OrientableSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.OrientableSurfaceType](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.SurfacePropertyTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.SurfacePropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.SurfacePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.SurfacePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.surfacepropertytypesequence1 map { scalaxb.toXML[opengis.gml.SurfacePropertyTypeSequence1](_, None, Some("surfacepropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_SurfacePropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.SurfacePropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.SurfacePropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.SurfacePropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._Surface) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_SurfaceArrayPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.SurfaceArrayPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("SurfaceArrayPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.SurfaceArrayPropertyType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CompositeSurfaceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CompositeSurfaceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "_Surface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractSurfaceTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Polygon")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolygonType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Surface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.SurfaceTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "OrientableSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.OrientableSurfaceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Polygon")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolygonType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "PolyhedralSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolyhedralSurfaceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Surface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.SurfaceTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TriangulatedSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TriangulatedSurfaceTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "OrientableSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.OrientableSurfaceType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.SurfaceArrayPropertyType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.SurfaceArrayPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj._Surface flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_PolygonTypeFormat extends scalaxb.ElemNameParser[opengis.gml.PolygonType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("PolygonType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.PolygonType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "exterior")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractRingPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "outerBoundaryIs")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractRingPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "outerBoundaryIs")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractRingPropertyType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "innerBoundaryIs")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractRingPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "innerBoundaryIs")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractRingPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "interior")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractRingPropertyType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.PolygonType(p1,
        p2,
        p3,
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.PolygonType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.PolygonType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.exterior map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        __obj.interior flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_AbstractRingTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractRingType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractRingType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("RingType")) => Right(scalaxb.fromXML[opengis.gml.RingType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("LinearRingType")) => Right(scalaxb.fromXML[opengis.gml.LinearRingType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractRingType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.RingType => scalaxb.toXML[opengis.gml.RingType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.LinearRingType => scalaxb.toXML[opengis.gml.LinearRingType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_AbstractRingPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.AbstractRingPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("AbstractRingPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.AbstractRingPropertyType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "LinearRing")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LinearRingType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Ring")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RingType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.AbstractRingPropertyType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.AbstractRingPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj._Ring) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisgml_LinearRingTypeFormat extends scalaxb.ElemNameParser[opengis.gml.LinearRingType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("LinearRingType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.LinearRingType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pos")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointProperty")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointRep")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack))))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "posList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionListType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinates")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordinatesType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coord")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 =>
      opengis.gml.LinearRingType(p1,
        p2,
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.LinearRingType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.LinearRingType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.linearringtypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.LinearRingTypeOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_LinearRingPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.LinearRingPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("LinearRingPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.LinearRingPropertyType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "LinearRing")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LinearRingType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.LinearRingPropertyType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.LinearRingPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.linearringpropertytypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.LinearRingType]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisgml_PolygonPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.PolygonPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("PolygonPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.PolygonPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Polygon"))) ^^ 
        { case p1 => opengis.gml.PolygonPropertyTypeSequence1(scalaxb.fromXML[opengis.gml.PolygonType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.PolygonPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.PolygonPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.PolygonPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.polygonpropertytypesequence1 map { scalaxb.toXML[opengis.gml.PolygonPropertyTypeSequence1](_, None, Some("polygonpropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_PolygonPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.PolygonPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.PolygonPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.PolygonPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.PolygonType](__obj.Polygon, Some("http://www.opengis.net/gml"), Some("Polygon"), __scope, false)


  }

  trait DefaultOpengisgml_CompositeCurveTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CompositeCurveType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CompositeCurveType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CompositeCurveType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "curveMember")) ^^
      { case p1 ~ p2 =>
      opengis.gml.CompositeCurveType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.CurvePropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CompositeCurveType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CompositeCurveType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.curveMember flatMap { scalaxb.toXML[opengis.gml.CurvePropertyType](_, Some("http://www.opengis.net/gml"), Some("curveMember"), __scope, false) })

  }

  trait DefaultOpengisgml_CompositeCurvePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CompositeCurvePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CompositeCurvePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CompositeCurvePropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeCurve"))) ^^ 
        { case p1 => opengis.gml.CompositeCurvePropertyTypeSequence1(scalaxb.fromXML[opengis.gml.CompositeCurveType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.CompositeCurvePropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CompositeCurvePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CompositeCurvePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.compositecurvepropertytypesequence1 map { scalaxb.toXML[opengis.gml.CompositeCurvePropertyTypeSequence1](_, None, Some("compositecurvepropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_CompositeCurvePropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.CompositeCurvePropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CompositeCurvePropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.CompositeCurvePropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.CompositeCurveType](__obj.CompositeCurve, Some("http://www.opengis.net/gml"), Some("CompositeCurve"), __scope, false)


  }

  trait DefaultOpengisgml_CompositeSurfaceTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CompositeSurfaceType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CompositeSurfaceType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CompositeSurfaceType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "surfaceMember")) ^^
      { case p1 ~ p2 =>
      opengis.gml.CompositeSurfaceType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.SurfacePropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CompositeSurfaceType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CompositeSurfaceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.surfaceMember flatMap { scalaxb.toXML[opengis.gml.SurfacePropertyType](_, Some("http://www.opengis.net/gml"), Some("surfaceMember"), __scope, false) })

  }

  trait DefaultOpengisgml_CompositeSurfacePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CompositeSurfacePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CompositeSurfacePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CompositeSurfacePropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeSurface"))) ^^ 
        { case p1 => opengis.gml.CompositeSurfacePropertyTypeSequence1(scalaxb.fromXML[opengis.gml.CompositeSurfaceType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.CompositeSurfacePropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CompositeSurfacePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CompositeSurfacePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.compositesurfacepropertytypesequence1 map { scalaxb.toXML[opengis.gml.CompositeSurfacePropertyTypeSequence1](_, None, Some("compositesurfacepropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_CompositeSurfacePropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.CompositeSurfacePropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CompositeSurfacePropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.CompositeSurfacePropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.CompositeSurfaceType](__obj.CompositeSurface, Some("http://www.opengis.net/gml"), Some("CompositeSurface"), __scope, false)


  }

  trait DefaultOpengisgml_CompositeSolidTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CompositeSolidType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CompositeSolidType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CompositeSolidType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "solidMember")) ^^
      { case p1 ~ p2 =>
      opengis.gml.CompositeSolidType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.SolidPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CompositeSolidType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CompositeSolidType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.solidMember flatMap { scalaxb.toXML[opengis.gml.SolidPropertyType](_, Some("http://www.opengis.net/gml"), Some("solidMember"), __scope, false) })

  }

  trait DefaultOpengisgml_CompositeSolidPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CompositeSolidPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CompositeSolidPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CompositeSolidPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeSolid"))) ^^ 
        { case p1 => opengis.gml.CompositeSolidPropertyTypeSequence1(scalaxb.fromXML[opengis.gml.CompositeSolidType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.CompositeSolidPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CompositeSolidPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CompositeSolidPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.compositesolidpropertytypesequence1 map { scalaxb.toXML[opengis.gml.CompositeSolidPropertyTypeSequence1](_, None, Some("compositesolidpropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_CompositeSolidPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.CompositeSolidPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CompositeSolidPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.CompositeSolidPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.CompositeSolidType](__obj.CompositeSolid, Some("http://www.opengis.net/gml"), Some("CompositeSolid"), __scope, false)


  }

  trait DefaultOpengisgml_GeometricComplexTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GeometricComplexType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GeometricComplexType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GeometricComplexType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "element")) ^^
      { case p1 ~ p2 =>
      opengis.gml.GeometricComplexType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.GeometricPrimitivePropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GeometricComplexType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GeometricComplexType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.element flatMap { scalaxb.toXML[opengis.gml.GeometricPrimitivePropertyType](_, Some("http://www.opengis.net/gml"), Some("element"), __scope, false) })

  }

  trait DefaultOpengisgml_GeometricComplexPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GeometricComplexPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GeometricComplexPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GeometricComplexPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeometricComplex")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeometricComplexType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeCurve")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CompositeCurveType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CompositeSurfaceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeSolid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CompositeSolidType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.GeometricComplexPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GeometricComplexPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GeometricComplexPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.geometriccomplexpropertytypeoption map { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.GeometricComplexPropertyTypeOption]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_CurveTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CurveType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CurveType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CurveType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "segments")) ^^
      { case p1 ~ p2 =>
      opengis.gml.CurveType(p1,
        scalaxb.fromXML[opengis.gml.CurveSegmentArrayPropertyType](p2, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CurveType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CurveType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        scalaxb.toXML[opengis.gml.CurveSegmentArrayPropertyType](__obj.segments, Some("http://www.opengis.net/gml"), Some("segments"), __scope, false))

  }

  trait DefaultOpengisgml_OrientableCurveTypeFormat extends scalaxb.ElemNameParser[opengis.gml.OrientableCurveType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("OrientableCurveType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.OrientableCurveType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "baseCurve")) ^^
      { case p1 ~ p2 =>
      opengis.gml.OrientableCurveType(p1,
        scalaxb.fromXML[opengis.gml.CurvePropertyType](p2, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ },
        (node \ "@orientation").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.SignType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.SignType](scala.xml.Text("+"), scalaxb.ElemName(node) :: stack))) map { "@orientation" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.OrientableCurveType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@orientation", _) => if (__obj.orientation.toString != "+") attr = scala.xml.Attribute(null, "orientation", __obj.orientation.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.OrientableCurveType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        scalaxb.toXML[opengis.gml.CurvePropertyType](__obj.baseCurve, Some("http://www.opengis.net/gml"), Some("baseCurve"), __scope, false))

  }

  trait DefaultOpengisgml_AbstractCurveSegmentTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractCurveSegmentType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractCurveSegmentType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("CubicSplineType")) => Right(scalaxb.fromXML[opengis.gml.CubicSplineType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GeodesicStringType")) => Right(scalaxb.fromXML[opengis.gml.GeodesicStringTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GeodesicType")) => Right(scalaxb.fromXML[opengis.gml.GeodesicType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ArcStringType")) => Right(scalaxb.fromXML[opengis.gml.ArcStringTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ArcType")) => Right(scalaxb.fromXML[opengis.gml.ArcTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CircleType")) => Right(scalaxb.fromXML[opengis.gml.CircleType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("LineStringSegmentType")) => Right(scalaxb.fromXML[opengis.gml.LineStringSegmentType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ArcStringByBulgeType")) => Right(scalaxb.fromXML[opengis.gml.ArcStringByBulgeTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ArcByBulgeType")) => Right(scalaxb.fromXML[opengis.gml.ArcByBulgeType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ArcByCenterPointType")) => Right(scalaxb.fromXML[opengis.gml.ArcByCenterPointTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CircleByCenterPointType")) => Right(scalaxb.fromXML[opengis.gml.CircleByCenterPointType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OffsetCurveType")) => Right(scalaxb.fromXML[opengis.gml.OffsetCurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ClothoidType")) => Right(scalaxb.fromXML[opengis.gml.ClothoidType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("BSplineType")) => Right(scalaxb.fromXML[opengis.gml.BSplineTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("BezierType")) => Right(scalaxb.fromXML[opengis.gml.BezierType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractCurveSegmentType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.CubicSplineType => scalaxb.toXML[opengis.gml.CubicSplineType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.GeodesicStringTypable => scalaxb.toXML[opengis.gml.GeodesicStringTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.ArcStringTypable => scalaxb.toXML[opengis.gml.ArcStringTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.LineStringSegmentType => scalaxb.toXML[opengis.gml.LineStringSegmentType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.ArcStringByBulgeTypable => scalaxb.toXML[opengis.gml.ArcStringByBulgeTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.ArcByCenterPointTypable => scalaxb.toXML[opengis.gml.ArcByCenterPointTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.OffsetCurveType => scalaxb.toXML[opengis.gml.OffsetCurveType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.ClothoidType => scalaxb.toXML[opengis.gml.ClothoidType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.BSplineTypable => scalaxb.toXML[opengis.gml.BSplineTypable](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_CurveSegmentArrayPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CurveSegmentArrayPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CurveSegmentArrayPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CurveSegmentArrayPropertyType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CubicSpline")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CubicSplineType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeodesicString")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeodesicStringTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Geodesic")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeodesicType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ArcString")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ArcStringTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Arc")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ArcTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "LineStringSegment")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LineStringSegmentType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ArcByBulge")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ArcByBulgeType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ArcStringByBulge")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ArcStringByBulgeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CircleByCenterPoint")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CircleByCenterPointType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ArcByCenterPoint")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ArcByCenterPointTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "OffsetCurve")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.OffsetCurveType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Clothoid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ClothoidType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Bezier")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.BezierType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "BSpline")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.BSplineTypable](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.CurveSegmentArrayPropertyType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.CurveSegmentArrayPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj._CurveSegment flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_LineStringSegmentTypeFormat extends scalaxb.ElemNameParser[opengis.gml.LineStringSegmentType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("LineStringSegmentType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.LineStringSegmentType] =
      phrase(safeRep((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pos")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointProperty")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointRep")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack))))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "posList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionListType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinates")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordinatesType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.LineStringSegmentType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@numDerivativesAtStart").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtStart" -> _ },
        (node \ "@numDerivativesAtEnd").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtEnd" -> _ },
        (node \ "@numDerivativeInterior").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativeInterior" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.CurveInterpolationType](scala.xml.Text("linear"), scalaxb.ElemName(node) :: stack))) map { "@interpolation" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.LineStringSegmentType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@numDerivativesAtStart", _) => if (__obj.numDerivativesAtStart.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtStart", __obj.numDerivativesAtStart.toString, attr)
        case ("@numDerivativesAtEnd", _) => if (__obj.numDerivativesAtEnd.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtEnd", __obj.numDerivativesAtEnd.toString, attr)
        case ("@numDerivativeInterior", _) => if (__obj.numDerivativeInterior.toString != "0") attr = scala.xml.Attribute(null, "numDerivativeInterior", __obj.numDerivativeInterior.toString, attr)
        case ("@interpolation", _) => attr = scala.xml.Attribute(null, "interpolation", __obj.interpolation.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.LineStringSegmentType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.linestringsegmenttypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.LineStringSegmentTypeOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_ArcStringTypableFormat extends scalaxb.XMLFormat[opengis.gml.ArcStringTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.ArcStringTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("ArcType")) => Right(scalaxb.fromXML[opengis.gml.ArcTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CircleType")) => Right(scalaxb.fromXML[opengis.gml.CircleType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.ArcStringType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.ArcStringTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.ArcTypable => scalaxb.toXML[opengis.gml.ArcTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.ArcStringType => scalaxb.toXML[opengis.gml.ArcStringType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_ArcStringTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ArcStringType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ArcStringType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ArcStringType] =
      phrase(safeRep((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pos")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointProperty")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointRep")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack))))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "posList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionListType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinates")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordinatesType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.ArcStringType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@numDerivativesAtStart").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtStart" -> _ },
        (node \ "@numDerivativesAtEnd").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtEnd" -> _ },
        (node \ "@numDerivativeInterior").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativeInterior" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.CurveInterpolationType](scala.xml.Text("circularArc3Points"), scalaxb.ElemName(node) :: stack))) map { "@interpolation" -> _ },
        (node \ "@numArc").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@numArc" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ArcStringType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@numDerivativesAtStart", _) => if (__obj.numDerivativesAtStart.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtStart", __obj.numDerivativesAtStart.toString, attr)
        case ("@numDerivativesAtEnd", _) => if (__obj.numDerivativesAtEnd.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtEnd", __obj.numDerivativesAtEnd.toString, attr)
        case ("@numDerivativeInterior", _) => if (__obj.numDerivativeInterior.toString != "0") attr = scala.xml.Attribute(null, "numDerivativeInterior", __obj.numDerivativeInterior.toString, attr)
        case ("@interpolation", _) => attr = scala.xml.Attribute(null, "interpolation", __obj.interpolation.toString, attr)
        case ("@numArc", _) => __obj.numArc foreach { x => attr = scala.xml.Attribute(null, "numArc", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ArcStringType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.arcstringtypableoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.ArcStringTypableOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_ArcTypableFormat extends scalaxb.XMLFormat[opengis.gml.ArcTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.ArcTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("CircleType")) => Right(scalaxb.fromXML[opengis.gml.CircleType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.ArcType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.ArcTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.CircleType => scalaxb.toXML[opengis.gml.CircleType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.ArcType => scalaxb.toXML[opengis.gml.ArcType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_ArcTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ArcType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ArcType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ArcType] =
      phrase(safeRep((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pos")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointProperty")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointRep")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack))))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "posList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionListType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinates")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordinatesType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.ArcType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@numDerivativesAtStart").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtStart" -> _ },
        (node \ "@numDerivativesAtEnd").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtEnd" -> _ },
        (node \ "@numDerivativeInterior").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativeInterior" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.CurveInterpolationType](scala.xml.Text("circularArc3Points"), scalaxb.ElemName(node) :: stack))) map { "@interpolation" -> _ },
        (node \ "@numArc").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@numArc" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ArcType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@numDerivativesAtStart", _) => if (__obj.numDerivativesAtStart.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtStart", __obj.numDerivativesAtStart.toString, attr)
        case ("@numDerivativesAtEnd", _) => if (__obj.numDerivativesAtEnd.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtEnd", __obj.numDerivativesAtEnd.toString, attr)
        case ("@numDerivativeInterior", _) => if (__obj.numDerivativeInterior.toString != "0") attr = scala.xml.Attribute(null, "numDerivativeInterior", __obj.numDerivativeInterior.toString, attr)
        case ("@interpolation", _) => attr = scala.xml.Attribute(null, "interpolation", __obj.interpolation.toString, attr)
        case ("@numArc", _) => __obj.numArc foreach { x => attr = scala.xml.Attribute(null, "numArc", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ArcType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.arcstringtypableoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.ArcStringTypableOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_CircleTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CircleType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CircleType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CircleType] =
      phrase(safeRep((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pos")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointProperty")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointRep")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack))))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "posList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionListType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinates")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordinatesType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.CircleType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@numDerivativesAtStart").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtStart" -> _ },
        (node \ "@numDerivativesAtEnd").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtEnd" -> _ },
        (node \ "@numDerivativeInterior").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativeInterior" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.CurveInterpolationType](scala.xml.Text("circularArc3Points"), scalaxb.ElemName(node) :: stack))) map { "@interpolation" -> _ },
        (node \ "@numArc").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@numArc" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CircleType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@numDerivativesAtStart", _) => if (__obj.numDerivativesAtStart.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtStart", __obj.numDerivativesAtStart.toString, attr)
        case ("@numDerivativesAtEnd", _) => if (__obj.numDerivativesAtEnd.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtEnd", __obj.numDerivativesAtEnd.toString, attr)
        case ("@numDerivativeInterior", _) => if (__obj.numDerivativeInterior.toString != "0") attr = scala.xml.Attribute(null, "numDerivativeInterior", __obj.numDerivativeInterior.toString, attr)
        case ("@interpolation", _) => attr = scala.xml.Attribute(null, "interpolation", __obj.interpolation.toString, attr)
        case ("@numArc", _) => __obj.numArc foreach { x => attr = scala.xml.Attribute(null, "numArc", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CircleType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.arcstringtypableoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.ArcStringTypableOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_ArcStringByBulgeTypableFormat extends scalaxb.XMLFormat[opengis.gml.ArcStringByBulgeTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.ArcStringByBulgeTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("ArcByBulgeType")) => Right(scalaxb.fromXML[opengis.gml.ArcByBulgeType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.ArcStringByBulgeType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.ArcStringByBulgeTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.ArcByBulgeType => scalaxb.toXML[opengis.gml.ArcByBulgeType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.ArcStringByBulgeType => scalaxb.toXML[opengis.gml.ArcStringByBulgeType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_ArcStringByBulgeTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ArcStringByBulgeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ArcStringByBulgeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ArcStringByBulgeType] =
      phrase(safeRep((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pos")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointProperty")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointRep")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack))))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "posList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionListType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinates")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordinatesType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "bulge")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "normal")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.ArcStringByBulgeType(p1,
        p2 map { scalaxb.fromXML[Double](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.gml.VectorType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@numDerivativesAtStart").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtStart" -> _ },
        (node \ "@numDerivativesAtEnd").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtEnd" -> _ },
        (node \ "@numDerivativeInterior").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativeInterior" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.CurveInterpolationType](scala.xml.Text("circularArc2PointWithBulge"), scalaxb.ElemName(node) :: stack))) map { "@interpolation" -> _ },
        (node \ "@numArc").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@numArc" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ArcStringByBulgeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@numDerivativesAtStart", _) => if (__obj.numDerivativesAtStart.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtStart", __obj.numDerivativesAtStart.toString, attr)
        case ("@numDerivativesAtEnd", _) => if (__obj.numDerivativesAtEnd.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtEnd", __obj.numDerivativesAtEnd.toString, attr)
        case ("@numDerivativeInterior", _) => if (__obj.numDerivativeInterior.toString != "0") attr = scala.xml.Attribute(null, "numDerivativeInterior", __obj.numDerivativeInterior.toString, attr)
        case ("@interpolation", _) => attr = scala.xml.Attribute(null, "interpolation", __obj.interpolation.toString, attr)
        case ("@numArc", _) => __obj.numArc foreach { x => attr = scala.xml.Attribute(null, "numArc", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ArcStringByBulgeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.arcstringbybulgetypableoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.ArcStringByBulgeTypableOption]](x, x.namespace, x.key, __scope, false) },
        __obj.bulge flatMap { scalaxb.toXML[Double](_, Some("http://www.opengis.net/gml"), Some("bulge"), __scope, false) },
        __obj.normal flatMap { scalaxb.toXML[opengis.gml.VectorType](_, Some("http://www.opengis.net/gml"), Some("normal"), __scope, false) })

  }

  trait DefaultOpengisgml_ArcByBulgeTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ArcByBulgeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ArcByBulgeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ArcByBulgeType] =
      phrase(safeRep((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pos")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointProperty")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointRep")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack))))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "posList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionListType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinates")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordinatesType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "bulge")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "normal")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.ArcByBulgeType(p1,
        p2 map { scalaxb.fromXML[Double](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.gml.VectorType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@numDerivativesAtStart").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtStart" -> _ },
        (node \ "@numDerivativesAtEnd").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtEnd" -> _ },
        (node \ "@numDerivativeInterior").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativeInterior" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.CurveInterpolationType](scala.xml.Text("circularArc2PointWithBulge"), scalaxb.ElemName(node) :: stack))) map { "@interpolation" -> _ },
        (node \ "@numArc").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@numArc" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ArcByBulgeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@numDerivativesAtStart", _) => if (__obj.numDerivativesAtStart.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtStart", __obj.numDerivativesAtStart.toString, attr)
        case ("@numDerivativesAtEnd", _) => if (__obj.numDerivativesAtEnd.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtEnd", __obj.numDerivativesAtEnd.toString, attr)
        case ("@numDerivativeInterior", _) => if (__obj.numDerivativeInterior.toString != "0") attr = scala.xml.Attribute(null, "numDerivativeInterior", __obj.numDerivativeInterior.toString, attr)
        case ("@interpolation", _) => attr = scala.xml.Attribute(null, "interpolation", __obj.interpolation.toString, attr)
        case ("@numArc", _) => __obj.numArc foreach { x => attr = scala.xml.Attribute(null, "numArc", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ArcByBulgeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.arcstringbybulgetypableoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.ArcStringByBulgeTypableOption]](x, x.namespace, x.key, __scope, false) },
        __obj.bulge flatMap { scalaxb.toXML[Double](_, Some("http://www.opengis.net/gml"), Some("bulge"), __scope, false) },
        __obj.normal flatMap { scalaxb.toXML[opengis.gml.VectorType](_, Some("http://www.opengis.net/gml"), Some("normal"), __scope, false) })

  }

  trait DefaultOpengisgml_ArcByCenterPointTypableFormat extends scalaxb.XMLFormat[opengis.gml.ArcByCenterPointTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.ArcByCenterPointTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("CircleByCenterPointType")) => Right(scalaxb.fromXML[opengis.gml.CircleByCenterPointType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.ArcByCenterPointType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.ArcByCenterPointTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.CircleByCenterPointType => scalaxb.toXML[opengis.gml.CircleByCenterPointType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.ArcByCenterPointType => scalaxb.toXML[opengis.gml.ArcByCenterPointType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_ArcByCenterPointTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ArcByCenterPointType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ArcByCenterPointType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ArcByCenterPointType] =
      phrase(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pos")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointProperty")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointRep")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack))))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "posList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionListType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinates")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordinatesType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "radius")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "startAngle")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "endAngle")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.ArcByCenterPointType(p1,
        scalaxb.fromXML[opengis.gml.LengthType](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[opengis.gml.AngleType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.gml.AngleType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@numDerivativesAtStart").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtStart" -> _ },
        (node \ "@numDerivativesAtEnd").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtEnd" -> _ },
        (node \ "@numDerivativeInterior").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativeInterior" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.CurveInterpolationType](scala.xml.Text("circularArcCenterPointWithRadius"), scalaxb.ElemName(node) :: stack))) map { "@interpolation" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("1"), scalaxb.ElemName(node) :: stack))) map { "@numArc" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ArcByCenterPointType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@numDerivativesAtStart", _) => if (__obj.numDerivativesAtStart.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtStart", __obj.numDerivativesAtStart.toString, attr)
        case ("@numDerivativesAtEnd", _) => if (__obj.numDerivativesAtEnd.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtEnd", __obj.numDerivativesAtEnd.toString, attr)
        case ("@numDerivativeInterior", _) => if (__obj.numDerivativeInterior.toString != "0") attr = scala.xml.Attribute(null, "numDerivativeInterior", __obj.numDerivativeInterior.toString, attr)
        case ("@interpolation", _) => attr = scala.xml.Attribute(null, "interpolation", __obj.interpolation.toString, attr)
        case ("@numArc", _) => attr = scala.xml.Attribute(null, "numArc", __obj.numArc.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ArcByCenterPointType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat((Some(__obj.arcbycenterpointtypableoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.ArcByCenterPointTypableOption]](x, x.namespace, x.key, __scope, false)}).get,
        scalaxb.toXML[opengis.gml.LengthType](__obj.radius, Some("http://www.opengis.net/gml"), Some("radius"), __scope, false),
        __obj.startAngle map { scalaxb.toXML[opengis.gml.AngleType](_, Some("http://www.opengis.net/gml"), Some("startAngle"), __scope, false) } getOrElse {Nil},
        __obj.endAngle map { scalaxb.toXML[opengis.gml.AngleType](_, Some("http://www.opengis.net/gml"), Some("endAngle"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_CircleByCenterPointTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CircleByCenterPointType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CircleByCenterPointType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CircleByCenterPointType] =
      phrase(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pos")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointProperty")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointRep")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack))))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "posList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionListType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinates")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordinatesType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "radius")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "startAngle")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "endAngle")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.CircleByCenterPointType(p1,
        scalaxb.fromXML[opengis.gml.LengthType](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[opengis.gml.AngleType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.gml.AngleType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@numDerivativesAtStart").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtStart" -> _ },
        (node \ "@numDerivativesAtEnd").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtEnd" -> _ },
        (node \ "@numDerivativeInterior").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativeInterior" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.CurveInterpolationType](scala.xml.Text("circularArcCenterPointWithRadius"), scalaxb.ElemName(node) :: stack))) map { "@interpolation" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("1"), scalaxb.ElemName(node) :: stack))) map { "@numArc" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CircleByCenterPointType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@numDerivativesAtStart", _) => if (__obj.numDerivativesAtStart.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtStart", __obj.numDerivativesAtStart.toString, attr)
        case ("@numDerivativesAtEnd", _) => if (__obj.numDerivativesAtEnd.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtEnd", __obj.numDerivativesAtEnd.toString, attr)
        case ("@numDerivativeInterior", _) => if (__obj.numDerivativeInterior.toString != "0") attr = scala.xml.Attribute(null, "numDerivativeInterior", __obj.numDerivativeInterior.toString, attr)
        case ("@interpolation", _) => attr = scala.xml.Attribute(null, "interpolation", __obj.interpolation.toString, attr)
        case ("@numArc", _) => attr = scala.xml.Attribute(null, "numArc", __obj.numArc.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CircleByCenterPointType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat((Some(__obj.arcbycenterpointtypableoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.ArcByCenterPointTypableOption]](x, x.namespace, x.key, __scope, false)}).get,
        scalaxb.toXML[opengis.gml.LengthType](__obj.radius, Some("http://www.opengis.net/gml"), Some("radius"), __scope, false),
        __obj.startAngle map { scalaxb.toXML[opengis.gml.AngleType](_, Some("http://www.opengis.net/gml"), Some("startAngle"), __scope, false) } getOrElse {Nil},
        __obj.endAngle map { scalaxb.toXML[opengis.gml.AngleType](_, Some("http://www.opengis.net/gml"), Some("endAngle"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_OffsetCurveTypeFormat extends scalaxb.ElemNameParser[opengis.gml.OffsetCurveType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("OffsetCurveType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.OffsetCurveType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "offsetBase")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "distance")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "refDirection")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.OffsetCurveType(scalaxb.fromXML[opengis.gml.CurvePropertyType](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.LengthType](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[opengis.gml.VectorType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@numDerivativesAtStart").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtStart" -> _ },
        (node \ "@numDerivativesAtEnd").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtEnd" -> _ },
        (node \ "@numDerivativeInterior").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativeInterior" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.OffsetCurveType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@numDerivativesAtStart", _) => if (__obj.numDerivativesAtStart.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtStart", __obj.numDerivativesAtStart.toString, attr)
        case ("@numDerivativesAtEnd", _) => if (__obj.numDerivativesAtEnd.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtEnd", __obj.numDerivativesAtEnd.toString, attr)
        case ("@numDerivativeInterior", _) => if (__obj.numDerivativeInterior.toString != "0") attr = scala.xml.Attribute(null, "numDerivativeInterior", __obj.numDerivativeInterior.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.OffsetCurveType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.CurvePropertyType](__obj.offsetBase, Some("http://www.opengis.net/gml"), Some("offsetBase"), __scope, false),
        scalaxb.toXML[opengis.gml.LengthType](__obj.distance, Some("http://www.opengis.net/gml"), Some("distance"), __scope, false),
        __obj.refDirection map { scalaxb.toXML[opengis.gml.VectorType](_, Some("http://www.opengis.net/gml"), Some("refDirection"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_AffinePlacementTypeFormat extends scalaxb.ElemNameParser[opengis.gml.AffinePlacementType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("AffinePlacementType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.AffinePlacementType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "location")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "refDirection")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "inDimension")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "outDimension")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.AffinePlacementType(scalaxb.fromXML[opengis.gml.DirectPositionType](p1, scalaxb.ElemName(node) :: stack),
        p2 map { scalaxb.fromXML[opengis.gml.VectorType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[BigInt](p3, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[BigInt](p4, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.gml.AffinePlacementType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.DirectPositionType](__obj.location, Some("http://www.opengis.net/gml"), Some("location"), __scope, false),
        __obj.refDirection flatMap { scalaxb.toXML[opengis.gml.VectorType](_, Some("http://www.opengis.net/gml"), Some("refDirection"), __scope, false) },
        scalaxb.toXML[BigInt](__obj.inDimension, Some("http://www.opengis.net/gml"), Some("inDimension"), __scope, false),
        scalaxb.toXML[BigInt](__obj.outDimension, Some("http://www.opengis.net/gml"), Some("outDimension"), __scope, false))

  }

  trait DefaultOpengisgml_RefLocationFormat extends scalaxb.ElemNameParser[opengis.gml.RefLocation] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.RefLocation] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "AffinePlacement")) ^^
      { case p1 =>
      opengis.gml.RefLocation(scalaxb.fromXML[opengis.gml.AffinePlacementType](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.gml.RefLocation, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.gml.AffinePlacementType](__obj.AffinePlacement, Some("http://www.opengis.net/gml"), Some("AffinePlacement"), __scope, false))

  }

  trait DefaultOpengisgml_ClothoidTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ClothoidType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ClothoidType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ClothoidType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "refLocation")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "scaleFactor")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "startParameter")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "endParameter")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.ClothoidType(scalaxb.fromXML[opengis.gml.RefLocation](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[BigDecimal](p2, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[Double](p3, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[Double](p4, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@numDerivativesAtStart").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtStart" -> _ },
        (node \ "@numDerivativesAtEnd").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtEnd" -> _ },
        (node \ "@numDerivativeInterior").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativeInterior" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ClothoidType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@numDerivativesAtStart", _) => if (__obj.numDerivativesAtStart.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtStart", __obj.numDerivativesAtStart.toString, attr)
        case ("@numDerivativesAtEnd", _) => if (__obj.numDerivativesAtEnd.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtEnd", __obj.numDerivativesAtEnd.toString, attr)
        case ("@numDerivativeInterior", _) => if (__obj.numDerivativeInterior.toString != "0") attr = scala.xml.Attribute(null, "numDerivativeInterior", __obj.numDerivativeInterior.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ClothoidType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.RefLocation](__obj.refLocation, Some("http://www.opengis.net/gml"), Some("refLocation"), __scope, false),
        scalaxb.toXML[BigDecimal](__obj.scaleFactor, Some("http://www.opengis.net/gml"), Some("scaleFactor"), __scope, false),
        scalaxb.toXML[Double](__obj.startParameter, Some("http://www.opengis.net/gml"), Some("startParameter"), __scope, false),
        scalaxb.toXML[Double](__obj.endParameter, Some("http://www.opengis.net/gml"), Some("endParameter"), __scope, false))

  }

  trait DefaultOpengisgml_GeodesicStringTypableFormat extends scalaxb.XMLFormat[opengis.gml.GeodesicStringTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.GeodesicStringTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("GeodesicType")) => Right(scalaxb.fromXML[opengis.gml.GeodesicType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.GeodesicStringType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.GeodesicStringTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.GeodesicType => scalaxb.toXML[opengis.gml.GeodesicType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.GeodesicStringType => scalaxb.toXML[opengis.gml.GeodesicStringType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_GeodesicStringTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GeodesicStringType] with Opengisgml_GeometricPositionGroupGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GeodesicStringType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GeodesicStringType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "posList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionListType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      (parseGeometricPositionGroupGroup(node, scalaxb.ElemName(node) :: stack, true))) ^^
      { case p1 =>
      opengis.gml.GeodesicStringType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@numDerivativesAtStart").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtStart" -> _ },
        (node \ "@numDerivativesAtEnd").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtEnd" -> _ },
        (node \ "@numDerivativeInterior").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativeInterior" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.CurveInterpolationType](scala.xml.Text("geodesic"), scalaxb.ElemName(node) :: stack))) map { "@interpolation" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GeodesicStringType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@numDerivativesAtStart", _) => if (__obj.numDerivativesAtStart.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtStart", __obj.numDerivativesAtStart.toString, attr)
        case ("@numDerivativesAtEnd", _) => if (__obj.numDerivativesAtEnd.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtEnd", __obj.numDerivativesAtEnd.toString, attr)
        case ("@numDerivativeInterior", _) => if (__obj.numDerivativeInterior.toString != "0") attr = scala.xml.Attribute(null, "numDerivativeInterior", __obj.numDerivativeInterior.toString, attr)
        case ("@interpolation", _) => attr = scala.xml.Attribute(null, "interpolation", __obj.interpolation.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GeodesicStringType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.geodesicstringtypableoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_GeodesicTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GeodesicType] with Opengisgml_GeometricPositionGroupGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GeodesicType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GeodesicType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "posList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionListType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      (parseGeometricPositionGroupGroup(node, scalaxb.ElemName(node) :: stack, true))) ^^
      { case p1 =>
      opengis.gml.GeodesicType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@numDerivativesAtStart").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtStart" -> _ },
        (node \ "@numDerivativesAtEnd").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtEnd" -> _ },
        (node \ "@numDerivativeInterior").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativeInterior" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.CurveInterpolationType](scala.xml.Text("geodesic"), scalaxb.ElemName(node) :: stack))) map { "@interpolation" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GeodesicType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@numDerivativesAtStart", _) => if (__obj.numDerivativesAtStart.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtStart", __obj.numDerivativesAtStart.toString, attr)
        case ("@numDerivativesAtEnd", _) => if (__obj.numDerivativesAtEnd.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtEnd", __obj.numDerivativesAtEnd.toString, attr)
        case ("@numDerivativeInterior", _) => if (__obj.numDerivativeInterior.toString != "0") attr = scala.xml.Attribute(null, "numDerivativeInterior", __obj.numDerivativeInterior.toString, attr)
        case ("@interpolation", _) => attr = scala.xml.Attribute(null, "interpolation", __obj.interpolation.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GeodesicType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.geodesicstringtypableoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_CubicSplineTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CubicSplineType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CubicSplineType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CubicSplineType] =
      phrase(safeRep((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pos")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointProperty")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointRep")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack))))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "posList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionListType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinates")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordinatesType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "vectorAtStart")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "vectorAtEnd")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.CubicSplineType(p1,
        scalaxb.fromXML[opengis.gml.VectorType](p2, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.VectorType](p3, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@numDerivativesAtStart").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtStart" -> _ },
        (node \ "@numDerivativesAtEnd").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtEnd" -> _ },
        (node \ "@numDerivativeInterior").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativeInterior" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.CurveInterpolationType](scala.xml.Text("cubicSpline"), scalaxb.ElemName(node) :: stack))) map { "@interpolation" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("3"), scalaxb.ElemName(node) :: stack))) map { "@degree" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CubicSplineType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@numDerivativesAtStart", _) => if (__obj.numDerivativesAtStart.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtStart", __obj.numDerivativesAtStart.toString, attr)
        case ("@numDerivativesAtEnd", _) => if (__obj.numDerivativesAtEnd.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtEnd", __obj.numDerivativesAtEnd.toString, attr)
        case ("@numDerivativeInterior", _) => if (__obj.numDerivativeInterior.toString != "0") attr = scala.xml.Attribute(null, "numDerivativeInterior", __obj.numDerivativeInterior.toString, attr)
        case ("@interpolation", _) => attr = scala.xml.Attribute(null, "interpolation", __obj.interpolation.toString, attr)
        case ("@degree", _) => attr = scala.xml.Attribute(null, "degree", __obj.degree.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CubicSplineType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.cubicsplinetypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.CubicSplineTypeOption]](x, x.namespace, x.key, __scope, false) },
        scalaxb.toXML[opengis.gml.VectorType](__obj.vectorAtStart, Some("http://www.opengis.net/gml"), Some("vectorAtStart"), __scope, false),
        scalaxb.toXML[opengis.gml.VectorType](__obj.vectorAtEnd, Some("http://www.opengis.net/gml"), Some("vectorAtEnd"), __scope, false))

  }

  trait DefaultOpengisgml_KnotTypeFormat extends scalaxb.ElemNameParser[opengis.gml.KnotType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("KnotType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.KnotType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "value")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "multiplicity")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "weight")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.KnotType(scalaxb.fromXML[Double](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[BigInt](p2, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[Double](p3, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.gml.KnotType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[Double](__obj.value, Some("http://www.opengis.net/gml"), Some("value"), __scope, false),
        scalaxb.toXML[BigInt](__obj.multiplicity, Some("http://www.opengis.net/gml"), Some("multiplicity"), __scope, false),
        scalaxb.toXML[Double](__obj.weight, Some("http://www.opengis.net/gml"), Some("weight"), __scope, false))

  }

  trait DefaultOpengisgml_KnotPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.KnotPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("KnotPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.KnotPropertyType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Knot")) ^^
      { case p1 =>
      opengis.gml.KnotPropertyType(scalaxb.fromXML[opengis.gml.KnotType](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.gml.KnotPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.gml.KnotType](__obj.Knot, Some("http://www.opengis.net/gml"), Some("Knot"), __scope, false))

  }

  trait DefaultOpengisgml_BSplineTypableFormat extends scalaxb.XMLFormat[opengis.gml.BSplineTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.BSplineTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("BezierType")) => Right(scalaxb.fromXML[opengis.gml.BezierType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.BSplineType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.BSplineTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.BezierType => scalaxb.toXML[opengis.gml.BezierType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.BSplineType => scalaxb.toXML[opengis.gml.BSplineType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_BSplineTypeFormat extends scalaxb.ElemNameParser[opengis.gml.BSplineType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("BSplineType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.BSplineType] =
      phrase(safeRep((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pos")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointProperty")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointRep")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack))))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "posList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionListType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinates")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordinatesType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "degree")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "knot")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.BSplineType(p1,
        scalaxb.fromXML[BigInt](p2, scalaxb.ElemName(node) :: stack),
        p3 map { scalaxb.fromXML[opengis.gml.KnotPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@numDerivativesAtStart").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtStart" -> _ },
        (node \ "@numDerivativesAtEnd").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtEnd" -> _ },
        (node \ "@numDerivativeInterior").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativeInterior" -> _ },
        (node \ "@interpolation").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.CurveInterpolationType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.CurveInterpolationType](scala.xml.Text("polynomialSpline"), scalaxb.ElemName(node) :: stack))) map { "@interpolation" -> _ },
        (node \ "@isPolynomial").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)) } map { "@isPolynomial" -> _ },
        (node \ "@knotType").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.KnotTypesType](x, scalaxb.ElemName(node) :: stack)) } map { "@knotType" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.BSplineType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@numDerivativesAtStart", _) => if (__obj.numDerivativesAtStart.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtStart", __obj.numDerivativesAtStart.toString, attr)
        case ("@numDerivativesAtEnd", _) => if (__obj.numDerivativesAtEnd.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtEnd", __obj.numDerivativesAtEnd.toString, attr)
        case ("@numDerivativeInterior", _) => if (__obj.numDerivativeInterior.toString != "0") attr = scala.xml.Attribute(null, "numDerivativeInterior", __obj.numDerivativeInterior.toString, attr)
        case ("@interpolation", _) => if (__obj.interpolation.toString != "polynomialSpline") attr = scala.xml.Attribute(null, "interpolation", __obj.interpolation.toString, attr)
        case ("@isPolynomial", _) => __obj.isPolynomial foreach { x => attr = scala.xml.Attribute(null, "isPolynomial", x.toString, attr) }
        case ("@knotType", _) => __obj.knotType foreach { x => attr = scala.xml.Attribute(null, "knotType", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.BSplineType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.bsplinetypableoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.BSplineTypableOption]](x, x.namespace, x.key, __scope, false) },
        scalaxb.toXML[BigInt](__obj.degree, Some("http://www.opengis.net/gml"), Some("degree"), __scope, false),
        __obj.knot flatMap { scalaxb.toXML[opengis.gml.KnotPropertyType](_, Some("http://www.opengis.net/gml"), Some("knot"), __scope, false) })

  }

  trait DefaultOpengisgml_BezierTypeFormat extends scalaxb.ElemNameParser[opengis.gml.BezierType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("BezierType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.BezierType] =
      phrase(safeRep((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pos")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointProperty")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointRep")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PointPropertyType](x, scalaxb.ElemName(node) :: stack))))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "posList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionListType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinates")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CoordinatesType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "degree")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "knot")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.BezierType(p1,
        scalaxb.fromXML[BigInt](p2, scalaxb.ElemName(node) :: stack),
        p3 map { scalaxb.fromXML[opengis.gml.KnotPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@numDerivativesAtStart").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtStart" -> _ },
        (node \ "@numDerivativesAtEnd").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativesAtEnd" -> _ },
        (node \ "@numDerivativeInterior").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@numDerivativeInterior" -> _ },
        (node \ "@interpolation").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.CurveInterpolationType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.CurveInterpolationType](scala.xml.Text("polynomialSpline"), scalaxb.ElemName(node) :: stack))) map { "@interpolation" -> _ },
        (node \ "@isPolynomial").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)) } map { "@isPolynomial" -> _ },
        (node \ "@knotType").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.KnotTypesType](x, scalaxb.ElemName(node) :: stack)) } map { "@knotType" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.BezierType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@numDerivativesAtStart", _) => if (__obj.numDerivativesAtStart.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtStart", __obj.numDerivativesAtStart.toString, attr)
        case ("@numDerivativesAtEnd", _) => if (__obj.numDerivativesAtEnd.toString != "0") attr = scala.xml.Attribute(null, "numDerivativesAtEnd", __obj.numDerivativesAtEnd.toString, attr)
        case ("@numDerivativeInterior", _) => if (__obj.numDerivativeInterior.toString != "0") attr = scala.xml.Attribute(null, "numDerivativeInterior", __obj.numDerivativeInterior.toString, attr)
        case ("@interpolation", _) => if (__obj.interpolation.toString != "polynomialSpline") attr = scala.xml.Attribute(null, "interpolation", __obj.interpolation.toString, attr)
        case ("@isPolynomial", _) => __obj.isPolynomial foreach { x => attr = scala.xml.Attribute(null, "isPolynomial", x.toString, attr) }
        case ("@knotType", _) => __obj.knotType foreach { x => attr = scala.xml.Attribute(null, "knotType", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.BezierType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.bsplinetypableoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.BSplineTypableOption]](x, x.namespace, x.key, __scope, false) },
        scalaxb.toXML[BigInt](__obj.degree, Some("http://www.opengis.net/gml"), Some("degree"), __scope, false),
        __obj.knot flatMap { scalaxb.toXML[opengis.gml.KnotPropertyType](_, Some("http://www.opengis.net/gml"), Some("knot"), __scope, false) })

  }

  trait DefaultOpengisgml_SurfaceTypableFormat extends scalaxb.XMLFormat[opengis.gml.SurfaceTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.SurfaceTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("TriangulatedSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.TriangulatedSurfaceTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TinType")) => Right(scalaxb.fromXML[opengis.gml.TinType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PolyhedralSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.PolyhedralSurfaceType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.SurfaceType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.SurfaceTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.TriangulatedSurfaceTypable => scalaxb.toXML[opengis.gml.TriangulatedSurfaceTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.PolyhedralSurfaceType => scalaxb.toXML[opengis.gml.PolyhedralSurfaceType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.SurfaceType => scalaxb.toXML[opengis.gml.SurfaceType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_SurfaceTypeFormat extends scalaxb.ElemNameParser[opengis.gml.SurfaceType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("SurfaceType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.SurfaceType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "trianglePatches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TrianglePatchArrayPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "trianglePatches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TrianglePatchArrayPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "patches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.SurfacePatchArrayPropertyTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "polygonPatches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolygonPatchArrayPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "polygonPatches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolygonPatchArrayPropertyType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 =>
      opengis.gml.SurfaceType(p1,
        p2,
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.SurfaceType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.SurfaceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        (Some(__obj.patches) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisgml_OrientableSurfaceTypeFormat extends scalaxb.ElemNameParser[opengis.gml.OrientableSurfaceType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("OrientableSurfaceType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.OrientableSurfaceType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "baseSurface")) ^^
      { case p1 ~ p2 =>
      opengis.gml.OrientableSurfaceType(p1,
        scalaxb.fromXML[opengis.gml.SurfacePropertyType](p2, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ },
        (node \ "@orientation").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.SignType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.SignType](scala.xml.Text("+"), scalaxb.ElemName(node) :: stack))) map { "@orientation" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.OrientableSurfaceType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@orientation", _) => if (__obj.orientation.toString != "+") attr = scala.xml.Attribute(null, "orientation", __obj.orientation.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.OrientableSurfaceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        scalaxb.toXML[opengis.gml.SurfacePropertyType](__obj.baseSurface, Some("http://www.opengis.net/gml"), Some("baseSurface"), __scope, false))

  }

  trait DefaultOpengisgml_AbstractSurfacePatchTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractSurfacePatchType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractSurfacePatchType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("AbstractParametricCurveSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.AbstractParametricCurveSurfaceTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractGriddedSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGriddedSurfaceTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("SphereType")) => Right(scalaxb.fromXML[opengis.gml.SphereType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ConeType")) => Right(scalaxb.fromXML[opengis.gml.ConeType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CylinderType")) => Right(scalaxb.fromXML[opengis.gml.CylinderType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TriangleType")) => Right(scalaxb.fromXML[opengis.gml.TriangleType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PolygonPatchType")) => Right(scalaxb.fromXML[opengis.gml.PolygonPatchType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("RectangleType")) => Right(scalaxb.fromXML[opengis.gml.RectangleType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractSurfacePatchType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.AbstractParametricCurveSurfaceTypable => scalaxb.toXML[opengis.gml.AbstractParametricCurveSurfaceTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.TriangleType => scalaxb.toXML[opengis.gml.TriangleType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.PolygonPatchType => scalaxb.toXML[opengis.gml.PolygonPatchType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.RectangleType => scalaxb.toXML[opengis.gml.RectangleType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_SurfacePatchArrayPropertyTypableFormat extends scalaxb.XMLFormat[opengis.gml.SurfacePatchArrayPropertyTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.SurfacePatchArrayPropertyTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("PolygonPatchArrayPropertyType")) => Right(scalaxb.fromXML[opengis.gml.PolygonPatchArrayPropertyType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TrianglePatchArrayPropertyType")) => Right(scalaxb.fromXML[opengis.gml.TrianglePatchArrayPropertyType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.SurfacePatchArrayPropertyType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.SurfacePatchArrayPropertyTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.PolygonPatchArrayPropertyType => scalaxb.toXML[opengis.gml.PolygonPatchArrayPropertyType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.TrianglePatchArrayPropertyType => scalaxb.toXML[opengis.gml.TrianglePatchArrayPropertyType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.SurfacePatchArrayPropertyType => scalaxb.toXML[opengis.gml.SurfacePatchArrayPropertyType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_SurfacePatchArrayPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.SurfacePatchArrayPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("SurfacePatchArrayPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.SurfacePatchArrayPropertyType] =
      phrase(safeRep(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Rectangle")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RectangleType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "PolygonPatch")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolygonPatchType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Triangle")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TriangleType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "_GriddedSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractGriddedSurfaceTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "_ParametricCurveSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractParametricCurveSurfaceTypable](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.SurfacePatchArrayPropertyTypableSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.SurfacePatchArrayPropertyType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.SurfacePatchArrayPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.surfacepatcharraypropertytypablesequence1 flatMap { scalaxb.toXML[opengis.gml.SurfacePatchArrayPropertyTypableSequence1](_, None, Some("surfacepatcharraypropertytypablesequence1"), __scope, false) })

  }

  trait DefaultOpengisgml_SurfacePatchArrayPropertyTypableSequence1Format extends scalaxb.XMLFormat[opengis.gml.SurfacePatchArrayPropertyTypableSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.SurfacePatchArrayPropertyTypableSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.SurfacePatchArrayPropertyTypableSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._SurfacePatch) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_PolygonPatchTypeFormat extends scalaxb.ElemNameParser[opengis.gml.PolygonPatchType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("PolygonPatchType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.PolygonPatchType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "exterior")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractRingPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "outerBoundaryIs")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractRingPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "outerBoundaryIs")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractRingPropertyType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "innerBoundaryIs")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractRingPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "innerBoundaryIs")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractRingPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "interior")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractRingPropertyType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 =>
      opengis.gml.PolygonPatchType(p1,
        p2,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.SurfaceInterpolationType](scala.xml.Text("planar"), scalaxb.ElemName(node) :: stack))) map { "@interpolation" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.PolygonPatchType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@interpolation", _) => attr = scala.xml.Attribute(null, "interpolation", __obj.interpolation.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.PolygonPatchType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.exterior map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        __obj.interior flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_TriangleTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TriangleType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TriangleType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TriangleType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "exterior")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractRingPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "outerBoundaryIs")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractRingPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "outerBoundaryIs")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractRingPropertyType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.TriangleType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.SurfaceInterpolationType](scala.xml.Text("planar"), scalaxb.ElemName(node) :: stack))) map { "@interpolation" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TriangleType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@interpolation", _) => attr = scala.xml.Attribute(null, "interpolation", __obj.interpolation.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TriangleType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.exterior) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisgml_RectangleTypeFormat extends scalaxb.ElemNameParser[opengis.gml.RectangleType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("RectangleType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.RectangleType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "exterior")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractRingPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "outerBoundaryIs")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractRingPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "outerBoundaryIs")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractRingPropertyType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.RectangleType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.SurfaceInterpolationType](scala.xml.Text("planar"), scalaxb.ElemName(node) :: stack))) map { "@interpolation" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.RectangleType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@interpolation", _) => attr = scala.xml.Attribute(null, "interpolation", __obj.interpolation.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.RectangleType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.exterior) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisgml_RingTypeFormat extends scalaxb.ElemNameParser[opengis.gml.RingType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("RingType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.RingType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "curveMember")) ^^
      { case p1 ~ p2 =>
      opengis.gml.RingType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.CurvePropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.RingType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.RingType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.curveMember flatMap { scalaxb.toXML[opengis.gml.CurvePropertyType](_, Some("http://www.opengis.net/gml"), Some("curveMember"), __scope, false) })

  }

  trait DefaultOpengisgml_RingPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.RingPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("RingPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.RingPropertyType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Ring")) ^^
      { case p1 =>
      opengis.gml.RingPropertyType(scalaxb.fromXML[opengis.gml.RingType](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.gml.RingPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.gml.RingType](__obj.Ring, Some("http://www.opengis.net/gml"), Some("Ring"), __scope, false))

  }

  trait DefaultOpengisgml_RowFormat extends scalaxb.ElemNameParser[opengis.gml.Row] with Opengisgml_GeometricPositionListGroupGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.Row] =
      phrase(safeRep(parseGeometricPositionListGroupGroup(node, scalaxb.ElemName(node) :: stack)) ^^
      { case p1 =>
      opengis.gml.Row(p1) })
    
    def writesChildNodes(__obj: opengis.gml.Row, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.geometricPositionListGroupOption1 flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_AbstractParametricCurveSurfaceTypableFormat extends scalaxb.XMLFormat[opengis.gml.AbstractParametricCurveSurfaceTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractParametricCurveSurfaceTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("AbstractGriddedSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGriddedSurfaceTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("SphereType")) => Right(scalaxb.fromXML[opengis.gml.SphereType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ConeType")) => Right(scalaxb.fromXML[opengis.gml.ConeType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CylinderType")) => Right(scalaxb.fromXML[opengis.gml.CylinderType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.AbstractParametricCurveSurfaceType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractParametricCurveSurfaceTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.AbstractGriddedSurfaceTypable => scalaxb.toXML[opengis.gml.AbstractGriddedSurfaceTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractParametricCurveSurfaceType => scalaxb.toXML[opengis.gml.AbstractParametricCurveSurfaceType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_AbstractParametricCurveSurfaceTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractParametricCurveSurfaceType] with scalaxb.CanWriteChildNodes[opengis.gml.AbstractParametricCurveSurfaceType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractParametricCurveSurfaceType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.AbstractParametricCurveSurfaceType())
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def writesChildNodes(__obj: opengis.gml.AbstractParametricCurveSurfaceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisgml_AbstractGriddedSurfaceTypableFormat extends scalaxb.XMLFormat[opengis.gml.AbstractGriddedSurfaceTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractGriddedSurfaceTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("SphereType")) => Right(scalaxb.fromXML[opengis.gml.SphereType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ConeType")) => Right(scalaxb.fromXML[opengis.gml.ConeType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CylinderType")) => Right(scalaxb.fromXML[opengis.gml.CylinderType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.AbstractGriddedSurfaceType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractGriddedSurfaceTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.SphereType => scalaxb.toXML[opengis.gml.SphereType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.ConeType => scalaxb.toXML[opengis.gml.ConeType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.CylinderType => scalaxb.toXML[opengis.gml.CylinderType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractGriddedSurfaceType => scalaxb.toXML[opengis.gml.AbstractGriddedSurfaceType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_AbstractGriddedSurfaceTypeFormat extends scalaxb.ElemNameParser[opengis.gml.AbstractGriddedSurfaceType] with Opengisgml_PointGridGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("AbstractGriddedSurfaceType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.AbstractGriddedSurfaceType] =
      phrase((parsePointGridGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rows")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "columns")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.AbstractGriddedSurfaceType(p1,
        p2.headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.gml.AbstractGriddedSurfaceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.PointGridSequence](__obj.pointGridSequence2, None, Some("pointGridSequence2"), __scope, false),
        __obj.rows map { scalaxb.toXML[BigInt](_, Some("http://www.opengis.net/gml"), Some("rows"), __scope, false) } getOrElse {Nil},
        __obj.columns map { scalaxb.toXML[BigInt](_, Some("http://www.opengis.net/gml"), Some("columns"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_ConeTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ConeType] with Opengisgml_PointGridGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ConeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ConeType] =
      phrase((parsePointGridGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rows")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "columns")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.ConeType(p1,
        p2.headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.CurveInterpolationType](scala.xml.Text("circularArc3Points"), scalaxb.ElemName(node) :: stack))) map { "@horizontalCurveType" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.CurveInterpolationType](scala.xml.Text("linear"), scalaxb.ElemName(node) :: stack))) map { "@verticalCurveType" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ConeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@horizontalCurveType", _) => attr = scala.xml.Attribute(null, "horizontalCurveType", __obj.horizontalCurveType.toString, attr)
        case ("@verticalCurveType", _) => attr = scala.xml.Attribute(null, "verticalCurveType", __obj.verticalCurveType.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ConeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.PointGridSequence](__obj.pointGridSequence2, None, Some("pointGridSequence2"), __scope, false),
        __obj.rows map { scalaxb.toXML[BigInt](_, Some("http://www.opengis.net/gml"), Some("rows"), __scope, false) } getOrElse {Nil},
        __obj.columns map { scalaxb.toXML[BigInt](_, Some("http://www.opengis.net/gml"), Some("columns"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_CylinderTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CylinderType] with Opengisgml_PointGridGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CylinderType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CylinderType] =
      phrase((parsePointGridGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rows")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "columns")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.CylinderType(p1,
        p2.headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.CurveInterpolationType](scala.xml.Text("circularArc3Points"), scalaxb.ElemName(node) :: stack))) map { "@horizontalCurveType" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.CurveInterpolationType](scala.xml.Text("linear"), scalaxb.ElemName(node) :: stack))) map { "@verticalCurveType" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CylinderType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@horizontalCurveType", _) => attr = scala.xml.Attribute(null, "horizontalCurveType", __obj.horizontalCurveType.toString, attr)
        case ("@verticalCurveType", _) => attr = scala.xml.Attribute(null, "verticalCurveType", __obj.verticalCurveType.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CylinderType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.PointGridSequence](__obj.pointGridSequence2, None, Some("pointGridSequence2"), __scope, false),
        __obj.rows map { scalaxb.toXML[BigInt](_, Some("http://www.opengis.net/gml"), Some("rows"), __scope, false) } getOrElse {Nil},
        __obj.columns map { scalaxb.toXML[BigInt](_, Some("http://www.opengis.net/gml"), Some("columns"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_SphereTypeFormat extends scalaxb.ElemNameParser[opengis.gml.SphereType] with Opengisgml_PointGridGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("SphereType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.SphereType] =
      phrase((parsePointGridGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "rows")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "columns")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.SphereType(p1,
        p2.headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.CurveInterpolationType](scala.xml.Text("circularArc3Points"), scalaxb.ElemName(node) :: stack))) map { "@horizontalCurveType" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.CurveInterpolationType](scala.xml.Text("circularArc3Points"), scalaxb.ElemName(node) :: stack))) map { "@verticalCurveType" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.SphereType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@horizontalCurveType", _) => attr = scala.xml.Attribute(null, "horizontalCurveType", __obj.horizontalCurveType.toString, attr)
        case ("@verticalCurveType", _) => attr = scala.xml.Attribute(null, "verticalCurveType", __obj.verticalCurveType.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.SphereType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.PointGridSequence](__obj.pointGridSequence2, None, Some("pointGridSequence2"), __scope, false),
        __obj.rows map { scalaxb.toXML[BigInt](_, Some("http://www.opengis.net/gml"), Some("rows"), __scope, false) } getOrElse {Nil},
        __obj.columns map { scalaxb.toXML[BigInt](_, Some("http://www.opengis.net/gml"), Some("columns"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_PolyhedralSurfaceTypeFormat extends scalaxb.ElemNameParser[opengis.gml.PolyhedralSurfaceType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("PolyhedralSurfaceType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.PolyhedralSurfaceType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "trianglePatches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TrianglePatchArrayPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "trianglePatches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TrianglePatchArrayPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "patches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.SurfacePatchArrayPropertyTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "polygonPatches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolygonPatchArrayPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "polygonPatches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolygonPatchArrayPropertyType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 =>
      opengis.gml.PolyhedralSurfaceType(p1,
        p2,
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.PolyhedralSurfaceType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.PolyhedralSurfaceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        (Some(__obj.patches) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisgml_PolygonPatchArrayPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.PolygonPatchArrayPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("PolygonPatchArrayPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.PolygonPatchArrayPropertyType] =
      phrase(safeRep(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Rectangle")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RectangleType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "PolygonPatch")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolygonPatchType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Triangle")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TriangleType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "_GriddedSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractGriddedSurfaceTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "_ParametricCurveSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractParametricCurveSurfaceTypable](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.SurfacePatchArrayPropertyTypableSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.PolygonPatchArrayPropertyType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.PolygonPatchArrayPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.surfacepatcharraypropertytypablesequence1 flatMap { scalaxb.toXML[opengis.gml.SurfacePatchArrayPropertyTypableSequence1](_, None, Some("surfacepatcharraypropertytypablesequence1"), __scope, false) })

  }

  trait DefaultOpengisgml_PolygonPatchArrayPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.PolygonPatchArrayPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.PolygonPatchArrayPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.PolygonPatchArrayPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.PolygonPatchType](__obj.PolygonPatch, Some("http://www.opengis.net/gml"), Some("PolygonPatch"), __scope, false)


  }

  trait DefaultOpengisgml_TrianglePatchArrayPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TrianglePatchArrayPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TrianglePatchArrayPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TrianglePatchArrayPropertyType] =
      phrase(safeRep(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Rectangle")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.RectangleType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "PolygonPatch")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolygonPatchType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Triangle")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TriangleType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "_GriddedSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractGriddedSurfaceTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "_ParametricCurveSurface")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractParametricCurveSurfaceTypable](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.SurfacePatchArrayPropertyTypableSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.TrianglePatchArrayPropertyType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.TrianglePatchArrayPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.surfacepatcharraypropertytypablesequence1 flatMap { scalaxb.toXML[opengis.gml.SurfacePatchArrayPropertyTypableSequence1](_, None, Some("surfacepatcharraypropertytypablesequence1"), __scope, false) })

  }

  trait DefaultOpengisgml_TrianglePatchArrayPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.TrianglePatchArrayPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TrianglePatchArrayPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.TrianglePatchArrayPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.TriangleType](__obj.Triangle, Some("http://www.opengis.net/gml"), Some("Triangle"), __scope, false)


  }

  trait DefaultOpengisgml_TriangulatedSurfaceTypableFormat extends scalaxb.XMLFormat[opengis.gml.TriangulatedSurfaceTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TriangulatedSurfaceTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("TinType")) => Right(scalaxb.fromXML[opengis.gml.TinType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.TriangulatedSurfaceType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.TriangulatedSurfaceTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.TinType => scalaxb.toXML[opengis.gml.TinType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.TriangulatedSurfaceType => scalaxb.toXML[opengis.gml.TriangulatedSurfaceType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_TriangulatedSurfaceTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TriangulatedSurfaceType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TriangulatedSurfaceType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TriangulatedSurfaceType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "trianglePatches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TrianglePatchArrayPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "trianglePatches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TrianglePatchArrayPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "patches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.SurfacePatchArrayPropertyTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "polygonPatches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolygonPatchArrayPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "polygonPatches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolygonPatchArrayPropertyType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 =>
      opengis.gml.TriangulatedSurfaceType(p1,
        p2,
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TriangulatedSurfaceType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TriangulatedSurfaceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        (Some(__obj.patches) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisgml_ControlPointFormat extends scalaxb.ElemNameParser[opengis.gml.ControlPoint] with Opengisgml_GeometricPositionGroupGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ControlPoint] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "posList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectPositionListType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      (parseGeometricPositionGroupGroup(node, scalaxb.ElemName(node) :: stack, true))) ^^
      { case p1 =>
      opengis.gml.ControlPoint(p1) })
    
    def writesChildNodes(__obj: opengis.gml.ControlPoint, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.controlpointoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_TinTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TinType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TinType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TinType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "trianglePatches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TrianglePatchArrayPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "trianglePatches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TrianglePatchArrayPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "patches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.SurfacePatchArrayPropertyTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "polygonPatches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolygonPatchArrayPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "polygonPatches")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolygonPatchArrayPropertyType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "stopLines")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "breakLines")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "maxLength")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "controlPoint")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.gml.TinType(p1,
        p2,
        p3 map { scalaxb.fromXML[opengis.gml.LineStringSegmentArrayPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.LineStringSegmentArrayPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.LengthType](p5, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.ControlPoint](p6, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TinType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TinType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        (Some(__obj.patches) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get,
        __obj.stopLines flatMap { scalaxb.toXML[opengis.gml.LineStringSegmentArrayPropertyType](_, Some("http://www.opengis.net/gml"), Some("stopLines"), __scope, false) },
        __obj.breakLines flatMap { scalaxb.toXML[opengis.gml.LineStringSegmentArrayPropertyType](_, Some("http://www.opengis.net/gml"), Some("breakLines"), __scope, false) },
        scalaxb.toXML[opengis.gml.LengthType](__obj.maxLength, Some("http://www.opengis.net/gml"), Some("maxLength"), __scope, false),
        scalaxb.toXML[opengis.gml.ControlPoint](__obj.controlPoint, Some("http://www.opengis.net/gml"), Some("controlPoint"), __scope, false))

  }

  trait DefaultOpengisgml_LineStringSegmentArrayPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.LineStringSegmentArrayPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("LineStringSegmentArrayPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.LineStringSegmentArrayPropertyType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "LineStringSegment")) ^^
      { case p1 =>
      opengis.gml.LineStringSegmentArrayPropertyType(p1 map { scalaxb.fromXML[opengis.gml.LineStringSegmentType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.gml.LineStringSegmentArrayPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.LineStringSegment flatMap { scalaxb.toXML[opengis.gml.LineStringSegmentType](_, Some("http://www.opengis.net/gml"), Some("LineStringSegment"), __scope, false) })

  }

  trait DefaultOpengisgml_AbstractSolidTypableFormat extends scalaxb.XMLFormat[opengis.gml.AbstractSolidTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractSolidTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("SolidType")) => Right(scalaxb.fromXML[opengis.gml.SolidType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CompositeSolidType")) => Right(scalaxb.fromXML[opengis.gml.CompositeSolidType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.AbstractSolidType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractSolidTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.SolidType => scalaxb.toXML[opengis.gml.SolidType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.CompositeSolidType => scalaxb.toXML[opengis.gml.CompositeSolidType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractSolidType => scalaxb.toXML[opengis.gml.AbstractSolidType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_AbstractSolidTypeFormat extends scalaxb.ElemNameParser[opengis.gml.AbstractSolidType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("AbstractSolidType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.AbstractSolidType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ^^
      { case p1 =>
      opengis.gml.AbstractSolidType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.AbstractSolidType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.AbstractSolidType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false))

  }

  trait DefaultOpengisgml_SolidPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.SolidPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("SolidPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.SolidPropertyType] =
      phrase(opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeSolid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CompositeSolidType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Solid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.SolidType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeSolid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CompositeSolidType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Solid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.SolidType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "_Solid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractSolidTypable](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.SolidPropertyTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.SolidPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.SolidPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.SolidPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.solidpropertytypesequence1 map { scalaxb.toXML[opengis.gml.SolidPropertyTypeSequence1](_, None, Some("solidpropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_SolidPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.SolidPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.SolidPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.SolidPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._Solid) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_SolidArrayPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.SolidArrayPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("SolidArrayPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.SolidArrayPropertyType] =
      phrase(safeRep(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeSolid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CompositeSolidType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Solid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.SolidType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeSolid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CompositeSolidType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Solid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.SolidType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "_Solid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.AbstractSolidTypable](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.SolidArrayPropertyTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.SolidArrayPropertyType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.SolidArrayPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.solidarraypropertytypesequence1 flatMap { scalaxb.toXML[opengis.gml.SolidArrayPropertyTypeSequence1](_, None, Some("solidarraypropertytypesequence1"), __scope, false) })

  }

  trait DefaultOpengisgml_SolidArrayPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.SolidArrayPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.SolidArrayPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.SolidArrayPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._Solid) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_SolidTypeFormat extends scalaxb.ElemNameParser[opengis.gml.SolidType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("SolidType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.SolidType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "exterior")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "interior")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.SolidType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.SurfacePropertyType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.gml.SurfacePropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.SolidType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.SolidType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.exterior map { scalaxb.toXML[opengis.gml.SurfacePropertyType](_, Some("http://www.opengis.net/gml"), Some("exterior"), __scope, false) } getOrElse {Nil},
        __obj.interior flatMap { scalaxb.toXML[opengis.gml.SurfacePropertyType](_, Some("http://www.opengis.net/gml"), Some("interior"), __scope, false) })

  }

  def buildOpengisgml_CurveInterpolationTypeFormat = new DefaultOpengisgml_CurveInterpolationTypeFormat {}
  trait DefaultOpengisgml_CurveInterpolationTypeFormat extends scalaxb.XMLFormat[opengis.gml.CurveInterpolationType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.CurveInterpolationType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.CurveInterpolationType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("linear")) => opengis.gml.LinearValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("geodesic")) => opengis.gml.Geodesic
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("circularArc3Points")) => opengis.gml.CircularArc3Points
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("circularArc2PointWithBulge")) => opengis.gml.CircularArc2PointWithBulge
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("circularArcCenterPointWithRadius")) => opengis.gml.CircularArcCenterPointWithRadius
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("elliptical")) => opengis.gml.Elliptical
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("clothoid")) => opengis.gml.Clothoid
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("conic")) => opengis.gml.Conic
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("polynomialSpline")) => opengis.gml.PolynomialSpline
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("cubicSpline")) => opengis.gml.CubicSpline
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("rationalSpline")) => opengis.gml.RationalSpline

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CurveInterpolationType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.CurveInterpolationType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengisgml_SurfaceInterpolationTypeFormat = new DefaultOpengisgml_SurfaceInterpolationTypeFormat {}
  trait DefaultOpengisgml_SurfaceInterpolationTypeFormat extends scalaxb.XMLFormat[opengis.gml.SurfaceInterpolationType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.SurfaceInterpolationType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.SurfaceInterpolationType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("none")) => opengis.gml.NoneType
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("planar")) => opengis.gml.Planar
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("spherical")) => opengis.gml.Spherical
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("elliptical")) => opengis.gml.EllipticalValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("conic")) => opengis.gml.ConicValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("tin")) => opengis.gml.Tin
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("parametricCurve")) => opengis.gml.ParametricCurve
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("polynomialSpline")) => opengis.gml.PolynomialSplineValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("rationalSpline")) => opengis.gml.RationalSplineValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("triangulatedSpline")) => opengis.gml.TriangulatedSpline

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.SurfaceInterpolationType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.SurfaceInterpolationType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengisgml_KnotTypesTypeFormat = new DefaultOpengisgml_KnotTypesTypeFormat {}
  trait DefaultOpengisgml_KnotTypesTypeFormat extends scalaxb.XMLFormat[opengis.gml.KnotTypesType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.KnotTypesType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.KnotTypesType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("uniform")) => opengis.gml.Uniform
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("quasiUniform")) => opengis.gml.QuasiUniform
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("piecewiseBezier")) => opengis.gml.PiecewiseBezier

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.KnotTypesType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.KnotTypesType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }


/** Reference points which are organised
   into sequences or grids(sequences of equal length sequences).
*/
  trait Opengisgml_PointGridGroupFormat extends scalaxb.AnyElemNameParser {
    def parsePointGridGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.PointGridSequence] =
      ((safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "row"))) ^^ 
        { case p1 => opengis.gml.PointGridSequence(p1 map { scalaxb.fromXML[opengis.gml.Row](_, scalaxb.ElemName(node) :: stack) }: _*) })
  
    def parsePointGridGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[Any]] =
      ((safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "row"))) ^^ 
        { case p1 => scalaxb.DataRecord(opengis.gml.PointGridSequence(p1 map { scalaxb.fromXML[opengis.gml.Row](_, scalaxb.ElemName(node) :: stack) }: _*)) })
    
    def parsemixedPointGridGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      (((safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "row")) ^^ 
      (_.toSeq map { x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.Row](x, scalaxb.ElemName(node) :: stack)) })) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(p1,
        p2.toList) })
  }

  trait DefaultOpengisgml_PointGridSequenceFormat extends scalaxb.XMLFormat[opengis.gml.PointGridSequence] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.PointGridSequence] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.PointGridSequence, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      __obj.row flatMap { scalaxb.toXML[opengis.gml.Row](_, Some("http://www.opengis.net/gml"), Some("row"), __scope, false) }


  }

  trait DefaultOpengisgml_AbstractGMLTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractGMLType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractGMLType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("CompositeValueType")) => Right(scalaxb.fromXML[opengis.gml.CompositeValueTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ValueArrayType")) => Right(scalaxb.fromXML[opengis.gml.ValueArrayType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractTopologyType")) => Right(scalaxb.fromXML[opengis.gml.AbstractTopologyType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TopoComplexType")) => Right(scalaxb.fromXML[opengis.gml.TopoComplexType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TopoVolumeType")) => Right(scalaxb.fromXML[opengis.gml.TopoVolumeType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TopoSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.TopoSurfaceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TopoCurveType")) => Right(scalaxb.fromXML[opengis.gml.TopoCurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TopoPointType")) => Right(scalaxb.fromXML[opengis.gml.TopoPointType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractTopoPrimitiveType")) => Right(scalaxb.fromXML[opengis.gml.AbstractTopoPrimitiveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TopoSolidType")) => Right(scalaxb.fromXML[opengis.gml.TopoSolidType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("FaceType")) => Right(scalaxb.fromXML[opengis.gml.FaceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("EdgeType")) => Right(scalaxb.fromXML[opengis.gml.EdgeType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("NodeType")) => Right(scalaxb.fromXML[opengis.gml.NodeType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ArrayType")) => Right(scalaxb.fromXML[opengis.gml.ArrayType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("BagType")) => Right(scalaxb.fromXML[opengis.gml.BagType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractTimeSliceType")) => Right(scalaxb.fromXML[opengis.gml.AbstractTimeSliceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MovingObjectStatusType")) => Right(scalaxb.fromXML[opengis.gml.MovingObjectStatusType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DefinitionType")) => Right(scalaxb.fromXML[opengis.gml.DefinitionTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeCalendarEraType")) => Right(scalaxb.fromXML[opengis.gml.TimeCalendarEraType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeOrdinalEraType")) => Right(scalaxb.fromXML[opengis.gml.TimeOrdinalEraType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractTimeReferenceSystemType")) => Right(scalaxb.fromXML[opengis.gml.AbstractTimeReferenceSystemType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeClockType")) => Right(scalaxb.fromXML[opengis.gml.TimeClockType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeCalendarType")) => Right(scalaxb.fromXML[opengis.gml.TimeCalendarType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeCoordinateSystemType")) => Right(scalaxb.fromXML[opengis.gml.TimeCoordinateSystemType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeOrdinalReferenceSystemType")) => Right(scalaxb.fromXML[opengis.gml.TimeOrdinalReferenceSystemType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractReferenceSystemBaseType")) => Right(scalaxb.fromXML[opengis.gml.AbstractReferenceSystemBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractReferenceSystemType")) => Right(scalaxb.fromXML[opengis.gml.AbstractReferenceSystemType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TemporalCRSType")) => Right(scalaxb.fromXML[opengis.gml.TemporalCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ImageCRSType")) => Right(scalaxb.fromXML[opengis.gml.ImageCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("EngineeringCRSType")) => Right(scalaxb.fromXML[opengis.gml.EngineeringCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractGeneralDerivedCRSType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGeneralDerivedCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ProjectedCRSType")) => Right(scalaxb.fromXML[opengis.gml.ProjectedCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DerivedCRSType")) => Right(scalaxb.fromXML[opengis.gml.DerivedCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GeocentricCRSType")) => Right(scalaxb.fromXML[opengis.gml.GeocentricCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("VerticalCRSType")) => Right(scalaxb.fromXML[opengis.gml.VerticalCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GeographicCRSType")) => Right(scalaxb.fromXML[opengis.gml.GeographicCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CompoundCRSType")) => Right(scalaxb.fromXML[opengis.gml.CompoundCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DictionaryType")) => Right(scalaxb.fromXML[opengis.gml.DictionaryType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DefinitionProxyType")) => Right(scalaxb.fromXML[opengis.gml.DefinitionProxyType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("EllipsoidBaseType")) => Right(scalaxb.fromXML[opengis.gml.EllipsoidBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("EllipsoidType")) => Right(scalaxb.fromXML[opengis.gml.EllipsoidType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractDatumBaseType")) => Right(scalaxb.fromXML[opengis.gml.AbstractDatumBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractDatumType")) => Right(scalaxb.fromXML[opengis.gml.AbstractDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TemporalDatumBaseType")) => Right(scalaxb.fromXML[opengis.gml.TemporalDatumBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TemporalDatumType")) => Right(scalaxb.fromXML[opengis.gml.TemporalDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ImageDatumType")) => Right(scalaxb.fromXML[opengis.gml.ImageDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("EngineeringDatumType")) => Right(scalaxb.fromXML[opengis.gml.EngineeringDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("VerticalDatumType")) => Right(scalaxb.fromXML[opengis.gml.VerticalDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GeodeticDatumType")) => Right(scalaxb.fromXML[opengis.gml.GeodeticDatumType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PrimeMeridianBaseType")) => Right(scalaxb.fromXML[opengis.gml.PrimeMeridianBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PrimeMeridianType")) => Right(scalaxb.fromXML[opengis.gml.PrimeMeridianType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractGeneralOperationParameterType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGeneralOperationParameterType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OperationParameterBaseType")) => Right(scalaxb.fromXML[opengis.gml.OperationParameterBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OperationParameterType")) => Right(scalaxb.fromXML[opengis.gml.OperationParameterType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OperationParameterGroupBaseType")) => Right(scalaxb.fromXML[opengis.gml.OperationParameterGroupBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OperationParameterGroupType")) => Right(scalaxb.fromXML[opengis.gml.OperationParameterGroupType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractCoordinateOperationBaseType")) => Right(scalaxb.fromXML[opengis.gml.AbstractCoordinateOperationBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractCoordinateOperationType")) => Right(scalaxb.fromXML[opengis.gml.AbstractCoordinateOperationType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractGeneralTransformationType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGeneralTransformationType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TransformationType")) => Right(scalaxb.fromXML[opengis.gml.TransformationType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractGeneralConversionType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGeneralConversionType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ConversionType")) => Right(scalaxb.fromXML[opengis.gml.ConversionType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ConcatenatedOperationType")) => Right(scalaxb.fromXML[opengis.gml.ConcatenatedOperationType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PassThroughOperationType")) => Right(scalaxb.fromXML[opengis.gml.PassThroughOperationType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OperationMethodBaseType")) => Right(scalaxb.fromXML[opengis.gml.OperationMethodBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OperationMethodType")) => Right(scalaxb.fromXML[opengis.gml.OperationMethodType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CoordinateSystemAxisBaseType")) => Right(scalaxb.fromXML[opengis.gml.CoordinateSystemAxisBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CoordinateSystemAxisType")) => Right(scalaxb.fromXML[opengis.gml.CoordinateSystemAxisType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractCoordinateSystemBaseType")) => Right(scalaxb.fromXML[opengis.gml.AbstractCoordinateSystemBaseType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractCoordinateSystemType")) => Right(scalaxb.fromXML[opengis.gml.AbstractCoordinateSystemType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ObliqueCartesianCSType")) => Right(scalaxb.fromXML[opengis.gml.ObliqueCartesianCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CylindricalCSType")) => Right(scalaxb.fromXML[opengis.gml.CylindricalCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PolarCSType")) => Right(scalaxb.fromXML[opengis.gml.PolarCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("SphericalCSType")) => Right(scalaxb.fromXML[opengis.gml.SphericalCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("UserDefinedCSType")) => Right(scalaxb.fromXML[opengis.gml.UserDefinedCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("LinearCSType")) => Right(scalaxb.fromXML[opengis.gml.LinearCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TemporalCSType")) => Right(scalaxb.fromXML[opengis.gml.TemporalCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("VerticalCSType")) => Right(scalaxb.fromXML[opengis.gml.VerticalCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CartesianCSType")) => Right(scalaxb.fromXML[opengis.gml.CartesianCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("EllipsoidalCSType")) => Right(scalaxb.fromXML[opengis.gml.EllipsoidalCSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("UnitDefinitionType")) => Right(scalaxb.fromXML[opengis.gml.UnitDefinitionTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ConventionalUnitType")) => Right(scalaxb.fromXML[opengis.gml.ConventionalUnitType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("BaseUnitType")) => Right(scalaxb.fromXML[opengis.gml.BaseUnitType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DerivedUnitType")) => Right(scalaxb.fromXML[opengis.gml.DerivedUnitType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractStyleType")) => Right(scalaxb.fromXML[opengis.gml.AbstractStyleType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("StyleType")) => Right(scalaxb.fromXML[opengis.gml.StyleType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("FeatureStyleType")) => Right(scalaxb.fromXML[opengis.gml.FeatureStyleType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("BaseStyleDescriptorType")) => Right(scalaxb.fromXML[opengis.gml.BaseStyleDescriptorTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GeometryStyleType")) => Right(scalaxb.fromXML[opengis.gml.GeometryStyleType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TopologyStyleType")) => Right(scalaxb.fromXML[opengis.gml.TopologyStyleType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("LabelStyleType")) => Right(scalaxb.fromXML[opengis.gml.LabelStyleType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GraphStyleType")) => Right(scalaxb.fromXML[opengis.gml.GraphStyleType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractFeatureType")) => Right(scalaxb.fromXML[opengis.gml.AbstractFeatureType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DynamicFeatureType")) => Right(scalaxb.fromXML[opengis.gml.DynamicFeatureType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractCoverageType")) => Right(scalaxb.fromXML[opengis.gml.AbstractCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractContinuousCoverageType")) => Right(scalaxb.fromXML[opengis.gml.AbstractContinuousCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractDiscreteCoverageType")) => Right(scalaxb.fromXML[opengis.gml.AbstractDiscreteCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("RectifiedGridCoverageType")) => Right(scalaxb.fromXML[opengis.gml.RectifiedGridCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GridCoverageType")) => Right(scalaxb.fromXML[opengis.gml.GridCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiSolidCoverageType")) => Right(scalaxb.fromXML[opengis.gml.MultiSolidCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiSurfaceCoverageType")) => Right(scalaxb.fromXML[opengis.gml.MultiSurfaceCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiCurveCoverageType")) => Right(scalaxb.fromXML[opengis.gml.MultiCurveCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiPointCoverageType")) => Right(scalaxb.fromXML[opengis.gml.MultiPointCoverageType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractFeatureCollectionType")) => Right(scalaxb.fromXML[opengis.gml.AbstractFeatureCollectionType](node, stack))
          case (Some("http://www.opengis.net/wfs"), Some("FeatureCollectionType")) => Right(scalaxb.fromXML[opengis.wfs.FeatureCollectionType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("FeatureCollectionType")) => Right(scalaxb.fromXML[opengis.gml.FeatureCollectionTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DynamicFeatureCollectionType")) => Right(scalaxb.fromXML[opengis.gml.DynamicFeatureCollectionType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("BoundedFeatureType")) => Right(scalaxb.fromXML[opengis.gml.BoundedFeatureType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ObservationType")) => Right(scalaxb.fromXML[opengis.gml.ObservationTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DirectedObservationType")) => Right(scalaxb.fromXML[opengis.gml.DirectedObservationTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DirectedObservationAtDistanceType")) => Right(scalaxb.fromXML[opengis.gml.DirectedObservationAtDistanceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractGeometryType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGeometryType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractRingType")) => Right(scalaxb.fromXML[opengis.gml.AbstractRingType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("RingType")) => Right(scalaxb.fromXML[opengis.gml.RingType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("LinearRingType")) => Right(scalaxb.fromXML[opengis.gml.LinearRingType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractGeometricAggregateType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGeometricAggregateType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiPolygonType")) => Right(scalaxb.fromXML[opengis.gml.MultiPolygonType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiLineStringType")) => Right(scalaxb.fromXML[opengis.gml.MultiLineStringType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiSolidType")) => Right(scalaxb.fromXML[opengis.gml.MultiSolidType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.MultiSurfaceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiCurveType")) => Right(scalaxb.fromXML[opengis.gml.MultiCurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiPointType")) => Right(scalaxb.fromXML[opengis.gml.MultiPointType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("MultiGeometryType")) => Right(scalaxb.fromXML[opengis.gml.MultiGeometryType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractGeometricPrimitiveType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGeometricPrimitiveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractSolidType")) => Right(scalaxb.fromXML[opengis.gml.AbstractSolidTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("SolidType")) => Right(scalaxb.fromXML[opengis.gml.SolidType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CompositeSolidType")) => Right(scalaxb.fromXML[opengis.gml.CompositeSolidType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.AbstractSurfaceTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OrientableSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.OrientableSurfaceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("SurfaceType")) => Right(scalaxb.fromXML[opengis.gml.SurfaceTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TriangulatedSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.TriangulatedSurfaceTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TinType")) => Right(scalaxb.fromXML[opengis.gml.TinType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PolyhedralSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.PolyhedralSurfaceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PolygonType")) => Right(scalaxb.fromXML[opengis.gml.PolygonType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CompositeSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.CompositeSurfaceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractCurveType")) => Right(scalaxb.fromXML[opengis.gml.AbstractCurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("OrientableCurveType")) => Right(scalaxb.fromXML[opengis.gml.OrientableCurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CurveType")) => Right(scalaxb.fromXML[opengis.gml.CurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("LineStringType")) => Right(scalaxb.fromXML[opengis.gml.LineStringType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CompositeCurveType")) => Right(scalaxb.fromXML[opengis.gml.CompositeCurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("PointType")) => Right(scalaxb.fromXML[opengis.gml.PointType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GeometricComplexType")) => Right(scalaxb.fromXML[opengis.gml.GeometricComplexType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GridType")) => Right(scalaxb.fromXML[opengis.gml.GridTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("RectifiedGridType")) => Right(scalaxb.fromXML[opengis.gml.RectifiedGridType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractTimeObjectType")) => Right(scalaxb.fromXML[opengis.gml.AbstractTimeObjectType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractTimePrimitiveType")) => Right(scalaxb.fromXML[opengis.gml.AbstractTimePrimitiveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractTimeGeometricPrimitiveType")) => Right(scalaxb.fromXML[opengis.gml.AbstractTimeGeometricPrimitiveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimePeriodType")) => Right(scalaxb.fromXML[opengis.gml.TimePeriodType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeInstantType")) => Right(scalaxb.fromXML[opengis.gml.TimeInstantType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractTimeTopologyPrimitiveType")) => Right(scalaxb.fromXML[opengis.gml.AbstractTimeTopologyPrimitiveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeNodeType")) => Right(scalaxb.fromXML[opengis.gml.TimeNodeType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeEdgeType")) => Right(scalaxb.fromXML[opengis.gml.TimeEdgeType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractTimeComplexType")) => Right(scalaxb.fromXML[opengis.gml.AbstractTimeComplexType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeTopologyComplexType")) => Right(scalaxb.fromXML[opengis.gml.TimeTopologyComplexType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractGMLType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.CompositeValueTypable => scalaxb.toXML[opengis.gml.CompositeValueTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractTopologyType => scalaxb.toXML[opengis.gml.AbstractTopologyType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.ArrayType => scalaxb.toXML[opengis.gml.ArrayType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.BagType => scalaxb.toXML[opengis.gml.BagType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractTimeSliceType => scalaxb.toXML[opengis.gml.AbstractTimeSliceType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.DefinitionTypable => scalaxb.toXML[opengis.gml.DefinitionTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractStyleType => scalaxb.toXML[opengis.gml.AbstractStyleType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.FeatureStyleType => scalaxb.toXML[opengis.gml.FeatureStyleType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.BaseStyleDescriptorTypable => scalaxb.toXML[opengis.gml.BaseStyleDescriptorTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractFeatureType => scalaxb.toXML[opengis.gml.AbstractFeatureType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractGeometryType => scalaxb.toXML[opengis.gml.AbstractGeometryType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractTimeObjectType => scalaxb.toXML[opengis.gml.AbstractTimeObjectType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_BagTypeFormat extends scalaxb.ElemNameParser[opengis.gml.BagType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("BagType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.BagType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "member")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "members")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.BagType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.AssociationType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.ArrayAssociationType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.BagType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.BagType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.member flatMap { scalaxb.toXML[opengis.gml.AssociationType](_, Some("http://www.opengis.net/gml"), Some("member"), __scope, false) },
        __obj.members map { scalaxb.toXML[opengis.gml.ArrayAssociationType](_, Some("http://www.opengis.net/gml"), Some("members"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_ArrayTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ArrayType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ArrayType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ArrayType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "members")) ^^
      { case p1 ~ p2 =>
      opengis.gml.ArrayType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.ArrayAssociationType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ArrayType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ArrayType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.members map { scalaxb.toXML[opengis.gml.ArrayAssociationType](_, Some("http://www.opengis.net/gml"), Some("members"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_AbstractMetaDataTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractMetaDataType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractMetaDataType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("GenericMetaDataType")) => Right(scalaxb.fromXML[opengis.gml.GenericMetaDataType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractMetaDataType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.GenericMetaDataType => scalaxb.toXML[opengis.gml.GenericMetaDataType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_GenericMetaDataTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GenericMetaDataType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GenericMetaDataType")

    override def isMixed: Boolean = true

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GenericMetaDataType] =
      phrase(optTextRecord ~ 
      safeRep(((any(_ => true) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack))) ~
      optTextRecord) ^^ 
      { case p1 ~ p2 => Seq.concat(Seq(p1), p2.toList) }) ~ 
      optTextRecord ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.GenericMetaDataType(Seq.concat(p1.toList,
        p2.flatten,
        p3.toList),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GenericMetaDataType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GenericMetaDataType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      __obj.mixed.toSeq flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) }

  }

  trait DefaultOpengisgml_AssociationTypeFormat extends scalaxb.ElemNameParser[opengis.gml.AssociationType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("AssociationType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.AssociationType] =
      phrase(opt(((((any(_ => true) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.AssociationTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.AssociationType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.AssociationType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.AssociationType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.associationtypesequence1 map { scalaxb.toXML[opengis.gml.AssociationTypeSequence1](_, None, Some("associationtypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_AssociationTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.AssociationTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AssociationTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.AssociationTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._Object) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_ReferenceTypeFormat extends scalaxb.XMLFormat[opengis.gml.ReferenceType] with scalaxb.CanWriteChildNodes[opengis.gml.ReferenceType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.ReferenceType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.ReferenceType(scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.ReferenceType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ReferenceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisgml_ArrayAssociationTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ArrayAssociationType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ArrayAssociationType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ArrayAssociationType] =
      phrase(safeRep(((any(_ => true) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.ArrayAssociationType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.ArrayAssociationType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj._Object flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_MetaDataPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.MetaDataPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("MetaDataPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.MetaDataPropertyType] =
      phrase(opt(any(_ => true)) ^^
      { case p1 =>
      opengis.gml.MetaDataPropertyType(p1.headOption map { scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ },
        (node \ "@about").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@about" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.MetaDataPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case ("@about", _) => __obj.about foreach { x => attr = scala.xml.Attribute(null, "about", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.MetaDataPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.any map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, true) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_StringOrRefTypeFormat extends scalaxb.XMLFormat[opengis.gml.StringOrRefType] with scalaxb.CanWriteChildNodes[opengis.gml.StringOrRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.StringOrRefType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.StringOrRefType(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.StringOrRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.StringOrRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }


/** This content model group makes it easier to construct types that 
      derive from AbstractGMLType and its descendents "by restriction".  
      A reference to the group saves having to enumerate the standard object properties.
*/
  trait Opengisgml_StandardObjectPropertiesGroupFormat extends scalaxb.AnyElemNameParser {
    def parseStandardObjectPropertiesGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.StandardObjectPropertiesSequence] =
      ((safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "metaDataProperty")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "description")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "groupName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "parameterName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinateOperationName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "methodName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "meridianName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "datumName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ellipsoidName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "groupName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "parameterName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinateOperationName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "methodName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "meridianName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "datumName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ellipsoidName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "name")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 ~ p2 ~ p3 => opengis.gml.StandardObjectPropertiesSequence(p1 map { scalaxb.fromXML[opengis.gml.MetaDataPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p3) })
  
    def parseStandardObjectPropertiesGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[Any]] =
      ((safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "metaDataProperty")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "description")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "groupName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "parameterName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinateOperationName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "methodName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "meridianName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "datumName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ellipsoidName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "groupName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "parameterName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinateOperationName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "methodName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "meridianName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "datumName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ellipsoidName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "name")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 ~ p2 ~ p3 => scalaxb.DataRecord(opengis.gml.StandardObjectPropertiesSequence(p1 map { scalaxb.fromXML[opengis.gml.MetaDataPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p3)) })
    
    def parsemixedStandardObjectPropertiesGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      (((safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "metaDataProperty")) ^^ 
      (_.toSeq map { x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MetaDataPropertyType](x, scalaxb.ElemName(node) :: stack)) })) ~ 
      optTextRecord ~ 
      (opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "description")) ^^ 
      (_ map { x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.StringOrRefType](x, scalaxb.ElemName(node) :: stack)) })) ~ 
      optTextRecord ~ 
      safeRep(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "groupName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "parameterName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinateOperationName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "methodName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "meridianName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "datumName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ellipsoidName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "groupName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "parameterName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinateOperationName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "methodName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "meridianName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "datumName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ellipsoidName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "name")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) })) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 => Seq.concat(p1,
        p2.toList,
        p3.toList,
        p4.toList,
        p5.flatten,
        p6.toList) })
  }

  trait DefaultOpengisgml_StandardObjectPropertiesSequenceFormat extends scalaxb.XMLFormat[opengis.gml.StandardObjectPropertiesSequence] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.StandardObjectPropertiesSequence] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.StandardObjectPropertiesSequence, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      Seq.concat(__obj.metaDataProperty flatMap { scalaxb.toXML[opengis.gml.MetaDataPropertyType](_, Some("http://www.opengis.net/gml"), Some("metaDataProperty"), __scope, false) },
        __obj.description map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("description"), __scope, false) } getOrElse {Nil},
        __obj.name flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })


  }

  trait DefaultOpengisgml_AssociationAttributeGroupFormat extends scalaxb.AttributeGroupFormat[opengis.gml.AssociationAttributeGroup] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AssociationAttributeGroup] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.AssociationAttributeGroup(scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack),
      (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { scalaxb.fromXML[xlink.ShowType](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { scalaxb.fromXML[xlink.ActuateType](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.AssociationAttributeGroup, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
    __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
    __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
    __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
    __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
    __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
    __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
    __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
      attr
    }
  }

  trait DefaultOpengisgml_GridTypableFormat extends scalaxb.XMLFormat[opengis.gml.GridTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.GridTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("RectifiedGridType")) => Right(scalaxb.fromXML[opengis.gml.RectifiedGridType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.GridType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.GridTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.RectifiedGridType => scalaxb.toXML[opengis.gml.RectifiedGridType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.GridType => scalaxb.toXML[opengis.gml.GridType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_GridTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GridType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GridType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GridType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "limits")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "axisName")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.GridType(p1,
        scalaxb.fromXML[opengis.gml.GridLimitsType](p2, scalaxb.ElemName(node) :: stack),
        p3 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ },
        (node \ "@dimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@dimension" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.GridType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@dimension", _) => attr = scala.xml.Attribute(null, "dimension", __obj.dimension.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GridType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        scalaxb.toXML[opengis.gml.GridLimitsType](__obj.limits, Some("http://www.opengis.net/gml"), Some("limits"), __scope, false),
        __obj.axisName flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("axisName"), __scope, false) })

  }

  trait DefaultOpengisgml_GridLimitsTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GridLimitsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GridLimitsType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GridLimitsType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GridEnvelope")) ^^
      { case p1 =>
      opengis.gml.GridLimitsType(scalaxb.fromXML[opengis.gml.GridEnvelopeType](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.gml.GridLimitsType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.gml.GridEnvelopeType](__obj.GridEnvelope, Some("http://www.opengis.net/gml"), Some("GridEnvelope"), __scope, false))

  }

  trait DefaultOpengisgml_GridEnvelopeTypeFormat extends scalaxb.ElemNameParser[opengis.gml.GridEnvelopeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("GridEnvelopeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.GridEnvelopeType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "low")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "high")) ^^
      { case p1 ~ p2 =>
      opengis.gml.GridEnvelopeType(scalaxb.fromXML[Seq[BigInt]](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[Seq[BigInt]](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.gml.GridEnvelopeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[Seq[BigInt]](__obj.low, Some("http://www.opengis.net/gml"), Some("low"), __scope, false),
        scalaxb.toXML[Seq[BigInt]](__obj.high, Some("http://www.opengis.net/gml"), Some("high"), __scope, false))

  }

  trait DefaultOpengisgml_RectifiedGridTypeFormat extends scalaxb.ElemNameParser[opengis.gml.RectifiedGridType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("RectifiedGridType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.RectifiedGridType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "limits")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "axisName")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "origin")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "offsetVector")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.gml.RectifiedGridType(p1,
        scalaxb.fromXML[opengis.gml.GridLimitsType](p2, scalaxb.ElemName(node) :: stack),
        p3 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.PointPropertyType](p4, scalaxb.ElemName(node) :: stack),
        p5 map { scalaxb.fromXML[opengis.gml.VectorType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@gid").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@gid" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ },
        (node \ "@srsDimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@srsDimension" -> _ },
        (node \ "@axisLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@axisLabels" -> _ },
        (node \ "@uomLabels").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)) } map { "@uomLabels" -> _ },
        (node \ "@dimension").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@dimension" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.RectifiedGridType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@gid", _) => __obj.gid foreach { x => attr = scala.xml.Attribute(null, "gid", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case ("@srsDimension", _) => __obj.srsDimension foreach { x => attr = scala.xml.Attribute(null, "srsDimension", x.toString, attr) }
        case ("@axisLabels", _) => __obj.axisLabels foreach { x => attr = scala.xml.Attribute(null, "axisLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@uomLabels", _) => __obj.uomLabels foreach { x => attr = scala.xml.Attribute(null, "uomLabels", x.map(x => x.toString).mkString(" "), attr) }
        case ("@dimension", _) => attr = scala.xml.Attribute(null, "dimension", __obj.dimension.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.RectifiedGridType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        scalaxb.toXML[opengis.gml.GridLimitsType](__obj.limits, Some("http://www.opengis.net/gml"), Some("limits"), __scope, false),
        __obj.axisName flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("axisName"), __scope, false) },
        scalaxb.toXML[opengis.gml.PointPropertyType](__obj.origin, Some("http://www.opengis.net/gml"), Some("origin"), __scope, false),
        __obj.offsetVector flatMap { scalaxb.toXML[opengis.gml.VectorType](_, Some("http://www.opengis.net/gml"), Some("offsetVector"), __scope, false) })

  }

  trait DefaultOpengisgml_LengthTypeFormat extends scalaxb.XMLFormat[opengis.gml.LengthType] with scalaxb.CanWriteChildNodes[opengis.gml.LengthType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.LengthType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.LengthType(scalaxb.fromXML[Double](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.LengthType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@uom", _) => attr = scala.xml.Attribute(null, "uom", __obj.uom.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.LengthType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_ScaleTypeFormat extends scalaxb.XMLFormat[opengis.gml.ScaleType] with scalaxb.CanWriteChildNodes[opengis.gml.ScaleType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.ScaleType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.ScaleType(scalaxb.fromXML[Double](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.ScaleType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@uom", _) => attr = scala.xml.Attribute(null, "uom", __obj.uom.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ScaleType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_TimeTypeFormat extends scalaxb.XMLFormat[opengis.gml.TimeType] with scalaxb.CanWriteChildNodes[opengis.gml.TimeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TimeType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.TimeType(scalaxb.fromXML[Double](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.TimeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@uom", _) => attr = scala.xml.Attribute(null, "uom", __obj.uom.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_GridLengthTypeFormat extends scalaxb.XMLFormat[opengis.gml.GridLengthType] with scalaxb.CanWriteChildNodes[opengis.gml.GridLengthType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.GridLengthType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.GridLengthType(scalaxb.fromXML[Double](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.GridLengthType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@uom", _) => attr = scala.xml.Attribute(null, "uom", __obj.uom.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.GridLengthType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_AreaTypeFormat extends scalaxb.XMLFormat[opengis.gml.AreaType] with scalaxb.CanWriteChildNodes[opengis.gml.AreaType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AreaType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.AreaType(scalaxb.fromXML[Double](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.AreaType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@uom", _) => attr = scala.xml.Attribute(null, "uom", __obj.uom.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.AreaType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_VolumeTypeFormat extends scalaxb.XMLFormat[opengis.gml.VolumeType] with scalaxb.CanWriteChildNodes[opengis.gml.VolumeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.VolumeType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.VolumeType(scalaxb.fromXML[Double](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.VolumeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@uom", _) => attr = scala.xml.Attribute(null, "uom", __obj.uom.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.VolumeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_SpeedTypeFormat extends scalaxb.XMLFormat[opengis.gml.SpeedType] with scalaxb.CanWriteChildNodes[opengis.gml.SpeedType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.SpeedType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.SpeedType(scalaxb.fromXML[Double](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.SpeedType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@uom", _) => attr = scala.xml.Attribute(null, "uom", __obj.uom.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.SpeedType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_AngleChoiceTypeFormat extends scalaxb.ElemNameParser[opengis.gml.AngleChoiceType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("AngleChoiceType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.AngleChoiceType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "angle")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MeasureTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "dmsAngle")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DMSAngleType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.AngleChoiceType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.AngleChoiceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.anglechoicetypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.AngleChoiceTypeOption]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisgml_AngleTypeFormat extends scalaxb.XMLFormat[opengis.gml.AngleType] with scalaxb.CanWriteChildNodes[opengis.gml.AngleType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AngleType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.AngleType(scalaxb.fromXML[Double](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.AngleType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@uom", _) => attr = scala.xml.Attribute(null, "uom", __obj.uom.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.AngleType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_DMSAngleTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DMSAngleType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DMSAngleType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DMSAngleType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "degrees")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "decimalMinutes")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[BigDecimal](x, scalaxb.ElemName(node) :: stack)))) ||| 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "minutes")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "seconds"))) ^^ 
        { case p1 ~ p2 => scalaxb.DataRecord(opengis.gml.DMSAngleTypeSequence1(scalaxb.fromXML[BigInt](p1, scalaxb.ElemName(node) :: stack),
        p2.headOption map { scalaxb.fromXML[BigDecimal](_, scalaxb.ElemName(node) :: stack) })) })) ^^
      { case p1 ~ p2 =>
      opengis.gml.DMSAngleType(scalaxb.fromXML[opengis.gml.DegreesType](p1, scalaxb.ElemName(node) :: stack),
        p2) })
    
    def writesChildNodes(__obj: opengis.gml.DMSAngleType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.DegreesType](__obj.degrees, Some("http://www.opengis.net/gml"), Some("degrees"), __scope, false),
        __obj.dmsangletypeoption map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_DMSAngleTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.DMSAngleTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.DMSAngleTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.DMSAngleTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      Seq.concat(scalaxb.toXML[BigInt](__obj.minutes, Some("http://www.opengis.net/gml"), Some("minutes"), __scope, false),
        __obj.seconds map { scalaxb.toXML[BigDecimal](_, Some("http://www.opengis.net/gml"), Some("seconds"), __scope, false) } getOrElse {Nil})


  }

  trait DefaultOpengisgml_DegreesTypeFormat extends scalaxb.XMLFormat[opengis.gml.DegreesType] with scalaxb.CanWriteChildNodes[opengis.gml.DegreesType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.DegreesType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.DegreesType(scalaxb.fromXML[BigInt](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@direction").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@direction" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.DegreesType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@direction", _) => __obj.direction foreach { x => attr = scala.xml.Attribute(null, "direction", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DegreesType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_TargetPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TargetPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TargetPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TargetPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Observation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ObservationTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "FeatureCollection")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.FeatureCollectionTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "GeometricComplex")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.GeometricComplexType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.TargetPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TargetPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TargetPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.targetpropertytypeoption map { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.TargetPropertyTypeOption]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_ObservationTypableFormat extends scalaxb.XMLFormat[opengis.gml.ObservationTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.ObservationTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("DirectedObservationType")) => Right(scalaxb.fromXML[opengis.gml.DirectedObservationTypable](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DirectedObservationAtDistanceType")) => Right(scalaxb.fromXML[opengis.gml.DirectedObservationAtDistanceType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.ObservationType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.ObservationTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.DirectedObservationTypable => scalaxb.toXML[opengis.gml.DirectedObservationTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.ObservationType => scalaxb.toXML[opengis.gml.ObservationType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_ObservationTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ObservationType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ObservationType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ObservationType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "boundedBy")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "location")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LocationPropertyTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validTime")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "using")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "subject")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TargetPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "subject")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TargetPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "target")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TargetPropertyType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "resultOf")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 =>
      opengis.gml.ObservationType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.BoundingShapeType](_, scalaxb.ElemName(node) :: stack) },
        p3,
        scalaxb.fromXML[opengis.gml.TimePrimitivePropertyTypable](p4, scalaxb.ElemName(node) :: stack),
        p5.headOption map { scalaxb.fromXML[opengis.gml.FeaturePropertyType](_, scalaxb.ElemName(node) :: stack) },
        p6,
        scalaxb.fromXML[opengis.gml.AssociationType](p7, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ObservationType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ObservationType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.boundedBy map { scalaxb.toXML[opengis.gml.BoundingShapeType](_, Some("http://www.opengis.net/gml"), Some("boundedBy"), __scope, false) } getOrElse {Nil},
        __obj.location map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.TimePrimitivePropertyTypable](__obj.validTime, Some("http://www.opengis.net/gml"), Some("validTime"), __scope, false),
        __obj.using map { scalaxb.toXML[opengis.gml.FeaturePropertyType](_, Some("http://www.opengis.net/gml"), Some("using"), __scope, false) } getOrElse {Nil},
        __obj.target map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.AssociationType](__obj.resultOf, Some("http://www.opengis.net/gml"), Some("resultOf"), __scope, false))

  }

  trait DefaultOpengisgml_DirectedObservationTypableFormat extends scalaxb.XMLFormat[opengis.gml.DirectedObservationTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.DirectedObservationTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("DirectedObservationAtDistanceType")) => Right(scalaxb.fromXML[opengis.gml.DirectedObservationAtDistanceType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.DirectedObservationType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.DirectedObservationTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.DirectedObservationAtDistanceType => scalaxb.toXML[opengis.gml.DirectedObservationAtDistanceType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.DirectedObservationType => scalaxb.toXML[opengis.gml.DirectedObservationType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_DirectedObservationTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DirectedObservationType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DirectedObservationType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DirectedObservationType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "boundedBy")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "location")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LocationPropertyTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validTime")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "using")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "subject")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TargetPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "subject")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TargetPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "target")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TargetPropertyType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "resultOf")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "direction")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 =>
      opengis.gml.DirectedObservationType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.BoundingShapeType](_, scalaxb.ElemName(node) :: stack) },
        p3,
        scalaxb.fromXML[opengis.gml.TimePrimitivePropertyTypable](p4, scalaxb.ElemName(node) :: stack),
        p5.headOption map { scalaxb.fromXML[opengis.gml.FeaturePropertyType](_, scalaxb.ElemName(node) :: stack) },
        p6,
        scalaxb.fromXML[opengis.gml.AssociationType](p7, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.DirectionPropertyType](p8, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.DirectedObservationType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DirectedObservationType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.boundedBy map { scalaxb.toXML[opengis.gml.BoundingShapeType](_, Some("http://www.opengis.net/gml"), Some("boundedBy"), __scope, false) } getOrElse {Nil},
        __obj.location map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.TimePrimitivePropertyTypable](__obj.validTime, Some("http://www.opengis.net/gml"), Some("validTime"), __scope, false),
        __obj.using map { scalaxb.toXML[opengis.gml.FeaturePropertyType](_, Some("http://www.opengis.net/gml"), Some("using"), __scope, false) } getOrElse {Nil},
        __obj.target map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.AssociationType](__obj.resultOf, Some("http://www.opengis.net/gml"), Some("resultOf"), __scope, false),
        scalaxb.toXML[opengis.gml.DirectionPropertyType](__obj.direction, Some("http://www.opengis.net/gml"), Some("direction"), __scope, false))

  }

  trait DefaultOpengisgml_DirectedObservationAtDistanceTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DirectedObservationAtDistanceType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DirectedObservationAtDistanceType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DirectedObservationAtDistanceType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "boundedBy")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "location")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LocationPropertyTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "validTime")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "using")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "subject")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TargetPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "subject")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TargetPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "target")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TargetPropertyType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "resultOf")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "direction")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "distance")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 =>
      opengis.gml.DirectedObservationAtDistanceType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.BoundingShapeType](_, scalaxb.ElemName(node) :: stack) },
        p3,
        scalaxb.fromXML[opengis.gml.TimePrimitivePropertyTypable](p4, scalaxb.ElemName(node) :: stack),
        p5.headOption map { scalaxb.fromXML[opengis.gml.FeaturePropertyType](_, scalaxb.ElemName(node) :: stack) },
        p6,
        scalaxb.fromXML[opengis.gml.AssociationType](p7, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.DirectionPropertyType](p8, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.MeasureTypable](p9, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.DirectedObservationAtDistanceType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DirectedObservationAtDistanceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.boundedBy map { scalaxb.toXML[opengis.gml.BoundingShapeType](_, Some("http://www.opengis.net/gml"), Some("boundedBy"), __scope, false) } getOrElse {Nil},
        __obj.location map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.TimePrimitivePropertyTypable](__obj.validTime, Some("http://www.opengis.net/gml"), Some("validTime"), __scope, false),
        __obj.using map { scalaxb.toXML[opengis.gml.FeaturePropertyType](_, Some("http://www.opengis.net/gml"), Some("using"), __scope, false) } getOrElse {Nil},
        __obj.target map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.AssociationType](__obj.resultOf, Some("http://www.opengis.net/gml"), Some("resultOf"), __scope, false),
        scalaxb.toXML[opengis.gml.DirectionPropertyType](__obj.direction, Some("http://www.opengis.net/gml"), Some("direction"), __scope, false),
        scalaxb.toXML[opengis.gml.MeasureTypable](__obj.distance, Some("http://www.opengis.net/gml"), Some("distance"), __scope, false))

  }

  trait DefaultOpengisgml_AbstractReferenceSystemBaseTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractReferenceSystemBaseType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractReferenceSystemBaseType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("AbstractReferenceSystemType")) => Right(scalaxb.fromXML[opengis.gml.AbstractReferenceSystemType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TemporalCRSType")) => Right(scalaxb.fromXML[opengis.gml.TemporalCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ImageCRSType")) => Right(scalaxb.fromXML[opengis.gml.ImageCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("EngineeringCRSType")) => Right(scalaxb.fromXML[opengis.gml.EngineeringCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractGeneralDerivedCRSType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGeneralDerivedCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ProjectedCRSType")) => Right(scalaxb.fromXML[opengis.gml.ProjectedCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DerivedCRSType")) => Right(scalaxb.fromXML[opengis.gml.DerivedCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GeocentricCRSType")) => Right(scalaxb.fromXML[opengis.gml.GeocentricCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("VerticalCRSType")) => Right(scalaxb.fromXML[opengis.gml.VerticalCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GeographicCRSType")) => Right(scalaxb.fromXML[opengis.gml.GeographicCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CompoundCRSType")) => Right(scalaxb.fromXML[opengis.gml.CompoundCRSType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractReferenceSystemBaseType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.AbstractReferenceSystemType => scalaxb.toXML[opengis.gml.AbstractReferenceSystemType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_AbstractReferenceSystemTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractReferenceSystemType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractReferenceSystemType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("TemporalCRSType")) => Right(scalaxb.fromXML[opengis.gml.TemporalCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ImageCRSType")) => Right(scalaxb.fromXML[opengis.gml.ImageCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("EngineeringCRSType")) => Right(scalaxb.fromXML[opengis.gml.EngineeringCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractGeneralDerivedCRSType")) => Right(scalaxb.fromXML[opengis.gml.AbstractGeneralDerivedCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ProjectedCRSType")) => Right(scalaxb.fromXML[opengis.gml.ProjectedCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DerivedCRSType")) => Right(scalaxb.fromXML[opengis.gml.DerivedCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GeocentricCRSType")) => Right(scalaxb.fromXML[opengis.gml.GeocentricCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("VerticalCRSType")) => Right(scalaxb.fromXML[opengis.gml.VerticalCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("GeographicCRSType")) => Right(scalaxb.fromXML[opengis.gml.GeographicCRSType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CompoundCRSType")) => Right(scalaxb.fromXML[opengis.gml.CompoundCRSType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractReferenceSystemType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.TemporalCRSType => scalaxb.toXML[opengis.gml.TemporalCRSType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.ImageCRSType => scalaxb.toXML[opengis.gml.ImageCRSType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.EngineeringCRSType => scalaxb.toXML[opengis.gml.EngineeringCRSType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractGeneralDerivedCRSType => scalaxb.toXML[opengis.gml.AbstractGeneralDerivedCRSType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.GeocentricCRSType => scalaxb.toXML[opengis.gml.GeocentricCRSType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.VerticalCRSType => scalaxb.toXML[opengis.gml.VerticalCRSType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.GeographicCRSType => scalaxb.toXML[opengis.gml.GeographicCRSType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.CompoundCRSType => scalaxb.toXML[opengis.gml.CompoundCRSType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_ReferenceSystemRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ReferenceSystemRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ReferenceSystemRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ReferenceSystemRefType] =
      phrase(opt(((((any(_ => true) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.ReferenceSystemRefTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.ReferenceSystemRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ReferenceSystemRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ReferenceSystemRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.referencesystemreftypesequence1 map { scalaxb.toXML[opengis.gml.ReferenceSystemRefTypeSequence1](_, None, Some("referencesystemreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_ReferenceSystemRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.ReferenceSystemRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.ReferenceSystemRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.ReferenceSystemRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._ReferenceSystem) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_CRSRefTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CRSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CRSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CRSRefType] =
      phrase(opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompoundCRS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CompoundCRSType](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.CRSRefTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.CRSRefType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CRSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CRSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.crsreftypesequence1 map { scalaxb.toXML[opengis.gml.CRSRefTypeSequence1](_, None, Some("crsreftypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_CRSRefTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.CRSRefTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CRSRefTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.CRSRefTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._CRS) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_IdentifierTypeFormat extends scalaxb.ElemNameParser[opengis.gml.IdentifierType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("IdentifierType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.IdentifierType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "groupName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "parameterName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinateOperationName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "methodName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "meridianName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "datumName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ellipsoidName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "csName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "groupName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "parameterName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "coordinateOperationName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "methodName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "meridianName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "datumName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ellipsoidName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "name")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "version")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "remarks")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.IdentifierType(p1,
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.gml.IdentifierType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat((Some(__obj.name) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get,
        __obj.version map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("version"), __scope, false) } getOrElse {Nil},
        __obj.remarks map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("remarks"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_ExtentTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ExtentType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ExtentType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ExtentType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "description")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "boundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.EnvelopeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "boundingPolygon")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PolygonType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "verticalExtent")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "temporalExtent")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.ExtentType(p1.headOption map { scalaxb.fromXML[opengis.gml.StringOrRefType](_, scalaxb.ElemName(node) :: stack) },
        p2,
        p3 map { scalaxb.fromXML[opengis.gml.EnvelopeTypable](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.TimePeriodType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.gml.ExtentType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.description map { scalaxb.toXML[opengis.gml.StringOrRefType](_, Some("http://www.opengis.net/gml"), Some("description"), __scope, false) } getOrElse {Nil},
        __obj.extenttypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.ExtentTypeOption]](x, x.namespace, x.key, __scope, false) },
        __obj.verticalExtent flatMap { scalaxb.toXML[opengis.gml.EnvelopeTypable](_, Some("http://www.opengis.net/gml"), Some("verticalExtent"), __scope, false) },
        __obj.temporalExtent flatMap { scalaxb.toXML[opengis.gml.TimePeriodType](_, Some("http://www.opengis.net/gml"), Some("temporalExtent"), __scope, false) })

  }

  trait DefaultOpengisgml_AbstractTimeObjectTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractTimeObjectType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractTimeObjectType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("AbstractTimePrimitiveType")) => Right(scalaxb.fromXML[opengis.gml.AbstractTimePrimitiveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractTimeGeometricPrimitiveType")) => Right(scalaxb.fromXML[opengis.gml.AbstractTimeGeometricPrimitiveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimePeriodType")) => Right(scalaxb.fromXML[opengis.gml.TimePeriodType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeInstantType")) => Right(scalaxb.fromXML[opengis.gml.TimeInstantType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractTimeTopologyPrimitiveType")) => Right(scalaxb.fromXML[opengis.gml.AbstractTimeTopologyPrimitiveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeNodeType")) => Right(scalaxb.fromXML[opengis.gml.TimeNodeType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeEdgeType")) => Right(scalaxb.fromXML[opengis.gml.TimeEdgeType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractTimeComplexType")) => Right(scalaxb.fromXML[opengis.gml.AbstractTimeComplexType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeTopologyComplexType")) => Right(scalaxb.fromXML[opengis.gml.TimeTopologyComplexType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractTimeObjectType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.AbstractTimePrimitiveType => scalaxb.toXML[opengis.gml.AbstractTimePrimitiveType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractTimeComplexType => scalaxb.toXML[opengis.gml.AbstractTimeComplexType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_AbstractTimePrimitiveTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractTimePrimitiveType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractTimePrimitiveType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("AbstractTimeGeometricPrimitiveType")) => Right(scalaxb.fromXML[opengis.gml.AbstractTimeGeometricPrimitiveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimePeriodType")) => Right(scalaxb.fromXML[opengis.gml.TimePeriodType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeInstantType")) => Right(scalaxb.fromXML[opengis.gml.TimeInstantType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractTimeTopologyPrimitiveType")) => Right(scalaxb.fromXML[opengis.gml.AbstractTimeTopologyPrimitiveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeNodeType")) => Right(scalaxb.fromXML[opengis.gml.TimeNodeType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeEdgeType")) => Right(scalaxb.fromXML[opengis.gml.TimeEdgeType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractTimePrimitiveType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.AbstractTimeGeometricPrimitiveType => scalaxb.toXML[opengis.gml.AbstractTimeGeometricPrimitiveType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractTimeTopologyPrimitiveType => scalaxb.toXML[opengis.gml.AbstractTimeTopologyPrimitiveType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_TimePrimitivePropertyTypableFormat extends scalaxb.XMLFormat[opengis.gml.TimePrimitivePropertyTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TimePrimitivePropertyTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("RelatedTimeType")) => Right(scalaxb.fromXML[opengis.gml.RelatedTimeType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.TimePrimitivePropertyType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.TimePrimitivePropertyTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.RelatedTimeType => scalaxb.toXML[opengis.gml.RelatedTimeType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.TimePrimitivePropertyType => scalaxb.toXML[opengis.gml.TimePrimitivePropertyType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_TimePrimitivePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimePrimitivePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimePrimitivePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimePrimitivePropertyType] =
      phrase(opt(((((any(_ => true) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.TimePrimitivePropertyTypableSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.TimePrimitivePropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimePrimitivePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimePrimitivePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.timeprimitivepropertytypablesequence1 map { scalaxb.toXML[opengis.gml.TimePrimitivePropertyTypableSequence1](_, None, Some("timeprimitivepropertytypablesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TimePrimitivePropertyTypableSequence1Format extends scalaxb.XMLFormat[opengis.gml.TimePrimitivePropertyTypableSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TimePrimitivePropertyTypableSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.TimePrimitivePropertyTypableSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._TimePrimitive) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  def buildOpengisgml_RelativePositionFormat = new DefaultOpengisgml_RelativePositionFormat {}
  trait DefaultOpengisgml_RelativePositionFormat extends scalaxb.XMLFormat[opengis.gml.RelativePosition] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.RelativePosition =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.RelativePosition] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Before")) => opengis.gml.BeforeValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("After")) => opengis.gml.AfterValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Begins")) => opengis.gml.Begins
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Ends")) => opengis.gml.Ends
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("During")) => opengis.gml.During
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Equals")) => opengis.gml.Equals
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Contains")) => opengis.gml.Contains
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Overlaps")) => opengis.gml.Overlaps
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Meets")) => opengis.gml.Meets
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("OverlappedBy")) => opengis.gml.OverlappedBy
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("MetBy")) => opengis.gml.MetBy
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("BegunBy")) => opengis.gml.BegunBy
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("EndedBy")) => opengis.gml.EndedBy

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.RelativePosition] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.RelativePosition, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisgml_RelatedTimeTypeFormat extends scalaxb.ElemNameParser[opengis.gml.RelatedTimeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("RelatedTimeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.RelatedTimeType] =
      phrase(opt(((((any(_ => true) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.TimePrimitivePropertyTypableSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.RelatedTimeType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ },
        (node \ "@relativePosition").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.RelativePosition](x, scalaxb.ElemName(node) :: stack)) } map { "@relativePosition" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.RelatedTimeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case ("@relativePosition", _) => __obj.relativePosition foreach { x => attr = scala.xml.Attribute(null, "relativePosition", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.RelatedTimeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.timeprimitivepropertytypablesequence1 map { scalaxb.toXML[opengis.gml.TimePrimitivePropertyTypableSequence1](_, None, Some("timeprimitivepropertytypablesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_AbstractTimeComplexTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractTimeComplexType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractTimeComplexType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("TimeTopologyComplexType")) => Right(scalaxb.fromXML[opengis.gml.TimeTopologyComplexType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractTimeComplexType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.TimeTopologyComplexType => scalaxb.toXML[opengis.gml.TimeTopologyComplexType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_AbstractTimeGeometricPrimitiveTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractTimeGeometricPrimitiveType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractTimeGeometricPrimitiveType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("TimePeriodType")) => Right(scalaxb.fromXML[opengis.gml.TimePeriodType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeInstantType")) => Right(scalaxb.fromXML[opengis.gml.TimeInstantType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractTimeGeometricPrimitiveType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.TimePeriodType => scalaxb.toXML[opengis.gml.TimePeriodType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.TimeInstantType => scalaxb.toXML[opengis.gml.TimeInstantType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_TimeGeometricPrimitivePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeGeometricPrimitivePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeGeometricPrimitivePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeGeometricPrimitivePropertyType] =
      phrase(opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TimePeriod")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TimePeriodType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TimeInstant")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TimeInstantType](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.TimeGeometricPrimitivePropertyTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.TimeGeometricPrimitivePropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeGeometricPrimitivePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeGeometricPrimitivePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.timegeometricprimitivepropertytypesequence1 map { scalaxb.toXML[opengis.gml.TimeGeometricPrimitivePropertyTypeSequence1](_, None, Some("timegeometricprimitivepropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TimeGeometricPrimitivePropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.TimeGeometricPrimitivePropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TimeGeometricPrimitivePropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.TimeGeometricPrimitivePropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._TimeGeometricPrimitive) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_TimeInstantTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeInstantType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeInstantType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeInstantType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "relatedTime")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "timePosition")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.TimeInstantType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.RelatedTimeType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.TimePositionType](p3, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@frame").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[java.net.URI](scala.xml.Text("#ISO-8601"), scalaxb.ElemName(node) :: stack))) map { "@frame" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeInstantType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@frame", _) => if (__obj.frame.toString != "#ISO-8601") attr = scala.xml.Attribute(null, "frame", __obj.frame.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeInstantType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.relatedTime flatMap { scalaxb.toXML[opengis.gml.RelatedTimeType](_, Some("http://www.opengis.net/gml"), Some("relatedTime"), __scope, false) },
        scalaxb.toXML[opengis.gml.TimePositionType](__obj.timePosition, Some("http://www.opengis.net/gml"), Some("timePosition"), __scope, false))

  }

  trait DefaultOpengisgml_TimeInstantPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeInstantPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeInstantPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeInstantPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TimeInstant"))) ^^ 
        { case p1 => opengis.gml.TimeInstantPropertyTypeSequence1(scalaxb.fromXML[opengis.gml.TimeInstantType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.TimeInstantPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeInstantPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeInstantPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.timeinstantpropertytypesequence1 map { scalaxb.toXML[opengis.gml.TimeInstantPropertyTypeSequence1](_, None, Some("timeinstantpropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TimeInstantPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.TimeInstantPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TimeInstantPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.TimeInstantPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.TimeInstantType](__obj.TimeInstant, Some("http://www.opengis.net/gml"), Some("TimeInstant"), __scope, false)


  }

  trait DefaultOpengisgml_TimePeriodTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimePeriodType] with Opengisgml_StandardObjectPropertiesGroupFormat with Opengisgml_TimeLengthGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimePeriodType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimePeriodType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "relatedTime")) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "beginPosition")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TimePositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "begin")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TimeInstantPropertyType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "endPosition")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TimePositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "end")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TimeInstantPropertyType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(parseTimeLengthGroup(node, scalaxb.ElemName(node) :: stack)) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.gml.TimePeriodType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.RelatedTimeType](_, scalaxb.ElemName(node) :: stack) },
        p3,
        p4,
        p5,
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@frame").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[java.net.URI](scala.xml.Text("#ISO-8601"), scalaxb.ElemName(node) :: stack))) map { "@frame" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimePeriodType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@frame", _) => if (__obj.frame.toString != "#ISO-8601") attr = scala.xml.Attribute(null, "frame", __obj.frame.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimePeriodType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.relatedTime flatMap { scalaxb.toXML[opengis.gml.RelatedTimeType](_, Some("http://www.opengis.net/gml"), Some("relatedTime"), __scope, false) },
        (Some(__obj.timeperiodtypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.TimePeriodTypeOption]](x, x.namespace, x.key, __scope, false)}).get,
        (Some(__obj.timeperiodtypeoption2) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.TimePeriodTypeOption2]](x, x.namespace, x.key, __scope, false)}).get,
        __obj.timeLengthOption7 map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TimePeriodPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimePeriodPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimePeriodPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimePeriodPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TimePeriod"))) ^^ 
        { case p1 => opengis.gml.TimePeriodPropertyTypeSequence1(scalaxb.fromXML[opengis.gml.TimePeriodType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.TimePeriodPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimePeriodPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimePeriodPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.timeperiodpropertytypesequence1 map { scalaxb.toXML[opengis.gml.TimePeriodPropertyTypeSequence1](_, None, Some("timeperiodpropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TimePeriodPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.TimePeriodPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TimePeriodPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.TimePeriodPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.TimePeriodType](__obj.TimePeriod, Some("http://www.opengis.net/gml"), Some("TimePeriod"), __scope, false)


  }

  trait DefaultOpengisgml_TimeIntervalLengthTypeFormat extends scalaxb.XMLFormat[opengis.gml.TimeIntervalLengthType] with scalaxb.CanWriteChildNodes[opengis.gml.TimeIntervalLengthType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TimeIntervalLengthType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.TimeIntervalLengthType(scalaxb.fromXML[BigDecimal](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@unit").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@unit" -> _ },
        (node \ "@radix").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@radix" -> _ },
        (node \ "@factor").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@factor" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.TimeIntervalLengthType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@unit", _) => attr = scala.xml.Attribute(null, "unit", __obj.unit.toString, attr)
        case ("@radix", _) => __obj.radix foreach { x => attr = scala.xml.Attribute(null, "radix", x.toString, attr) }
        case ("@factor", _) => __obj.factor foreach { x => attr = scala.xml.Attribute(null, "factor", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeIntervalLengthType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_TimePositionTypeFormat extends scalaxb.XMLFormat[opengis.gml.TimePositionType] with scalaxb.CanWriteChildNodes[opengis.gml.TimePositionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TimePositionType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.TimePositionType(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@frame").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[java.net.URI](scala.xml.Text("#ISO-8601"), scalaxb.ElemName(node) :: stack))) map { "@frame" -> _ },
        (node \ "@calendarEraName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@calendarEraName" -> _ },
        (node \ "@indeterminatePosition").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.TimeIndeterminateValueType](x, scalaxb.ElemName(node) :: stack)) } map { "@indeterminatePosition" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.TimePositionType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@frame", _) => if (__obj.frame.toString != "#ISO-8601") attr = scala.xml.Attribute(null, "frame", __obj.frame.toString, attr)
        case ("@calendarEraName", _) => __obj.calendarEraName foreach { x => attr = scala.xml.Attribute(null, "calendarEraName", x.toString, attr) }
        case ("@indeterminatePosition", _) => __obj.indeterminatePosition foreach { x => attr = scala.xml.Attribute(null, "indeterminatePosition", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimePositionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  def buildOpengisgml_TimeIndeterminateValueTypeFormat = new DefaultOpengisgml_TimeIndeterminateValueTypeFormat {}
  trait DefaultOpengisgml_TimeIndeterminateValueTypeFormat extends scalaxb.XMLFormat[opengis.gml.TimeIndeterminateValueType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.TimeIndeterminateValueType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.TimeIndeterminateValueType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("after")) => opengis.gml.After
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("before")) => opengis.gml.Before
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("now")) => opengis.gml.Now
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("unknown")) => opengis.gml.Unknown

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TimeIndeterminateValueType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.TimeIndeterminateValueType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }


/** This model group is provided as an alternative to the abstract susbstitutionGroup head _timeLength.
		ISO 19136 comment 411
*/
  trait Opengisgml_TimeLengthGroupFormat extends scalaxb.AnyElemNameParser {
    def parseTimeLengthGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[scalaxb.DataRecord[Any]] =
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "duration")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[javax.xml.datatype.Duration](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "timeInterval")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TimeIntervalLengthType](x, scalaxb.ElemName(node) :: stack)))))
  
    def parseTimeLengthGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[Any]] =
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "duration")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[javax.xml.datatype.Duration](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "timeInterval")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TimeIntervalLengthType](x, scalaxb.ElemName(node) :: stack)))))
    
    def parsemixedTimeLengthGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      (((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "duration")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[javax.xml.datatype.Duration](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "timeInterval")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TimeIntervalLengthType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }))
  }

  trait DefaultOpengisgml_AbstractTimeReferenceSystemTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractTimeReferenceSystemType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractTimeReferenceSystemType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("TimeClockType")) => Right(scalaxb.fromXML[opengis.gml.TimeClockType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeCalendarType")) => Right(scalaxb.fromXML[opengis.gml.TimeCalendarType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeCoordinateSystemType")) => Right(scalaxb.fromXML[opengis.gml.TimeCoordinateSystemType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeOrdinalReferenceSystemType")) => Right(scalaxb.fromXML[opengis.gml.TimeOrdinalReferenceSystemType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractTimeReferenceSystemType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.TimeClockType => scalaxb.toXML[opengis.gml.TimeClockType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.TimeCalendarType => scalaxb.toXML[opengis.gml.TimeCalendarType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.TimeCoordinateSystemType => scalaxb.toXML[opengis.gml.TimeCoordinateSystemType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.TimeOrdinalReferenceSystemType => scalaxb.toXML[opengis.gml.TimeOrdinalReferenceSystemType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_TimeCoordinateSystemTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeCoordinateSystemType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeCoordinateSystemType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeCoordinateSystemType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "domainOfValidity")) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "originPosition")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TimePositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "origin")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TimeInstantPropertyType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "interval")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.TimeCoordinateSystemType(p1,
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p3,
        scalaxb.fromXML[opengis.gml.TimeIntervalLengthType](p4, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeCoordinateSystemType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeCoordinateSystemType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.domainOfValidity map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("domainOfValidity"), __scope, false) } getOrElse {Nil},
        (Some(__obj.timecoordinatesystemtypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.TimeCoordinateSystemTypeOption]](x, x.namespace, x.key, __scope, false)}).get,
        scalaxb.toXML[opengis.gml.TimeIntervalLengthType](__obj.interval, Some("http://www.opengis.net/gml"), Some("interval"), __scope, false))

  }

  trait DefaultOpengisgml_TimeOrdinalReferenceSystemTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeOrdinalReferenceSystemType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeOrdinalReferenceSystemType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeOrdinalReferenceSystemType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "domainOfValidity")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "component")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.TimeOrdinalReferenceSystemType(p1,
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.gml.TimeOrdinalEraPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeOrdinalReferenceSystemType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeOrdinalReferenceSystemType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.domainOfValidity map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("domainOfValidity"), __scope, false) } getOrElse {Nil},
        __obj.component flatMap { scalaxb.toXML[opengis.gml.TimeOrdinalEraPropertyType](_, Some("http://www.opengis.net/gml"), Some("component"), __scope, false) })

  }

  trait DefaultOpengisgml_TimeOrdinalEraTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeOrdinalEraType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeOrdinalEraType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeOrdinalEraType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "relatedTime")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "start")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "end")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "extent")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "member")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "group")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 =>
      opengis.gml.TimeOrdinalEraType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.RelatedTimeType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.TimeNodePropertyType](p3, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.TimeNodePropertyType](p4, scalaxb.ElemName(node) :: stack),
        p5.headOption map { scalaxb.fromXML[opengis.gml.TimePeriodPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p6 map { scalaxb.fromXML[opengis.gml.TimeOrdinalEraPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p7.headOption map { scalaxb.fromXML[opengis.gml.ReferenceType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeOrdinalEraType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeOrdinalEraType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.relatedTime flatMap { scalaxb.toXML[opengis.gml.RelatedTimeType](_, Some("http://www.opengis.net/gml"), Some("relatedTime"), __scope, false) },
        scalaxb.toXML[opengis.gml.TimeNodePropertyType](__obj.start, Some("http://www.opengis.net/gml"), Some("start"), __scope, false),
        scalaxb.toXML[opengis.gml.TimeNodePropertyType](__obj.end, Some("http://www.opengis.net/gml"), Some("end"), __scope, false),
        __obj.extent map { scalaxb.toXML[opengis.gml.TimePeriodPropertyType](_, Some("http://www.opengis.net/gml"), Some("extent"), __scope, false) } getOrElse {Nil},
        __obj.member flatMap { scalaxb.toXML[opengis.gml.TimeOrdinalEraPropertyType](_, Some("http://www.opengis.net/gml"), Some("member"), __scope, false) },
        __obj.group map { scalaxb.toXML[opengis.gml.ReferenceType](_, Some("http://www.opengis.net/gml"), Some("group"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TimeOrdinalEraPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeOrdinalEraPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeOrdinalEraPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeOrdinalEraPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TimeOrdinalEra"))) ^^ 
        { case p1 => opengis.gml.TimeOrdinalEraPropertyTypeSequence1(scalaxb.fromXML[opengis.gml.TimeOrdinalEraType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.TimeOrdinalEraPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeOrdinalEraPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeOrdinalEraPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.timeordinalerapropertytypesequence1 map { scalaxb.toXML[opengis.gml.TimeOrdinalEraPropertyTypeSequence1](_, None, Some("timeordinalerapropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TimeOrdinalEraPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.TimeOrdinalEraPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TimeOrdinalEraPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.TimeOrdinalEraPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.TimeOrdinalEraType](__obj.TimeOrdinalEra, Some("http://www.opengis.net/gml"), Some("TimeOrdinalEra"), __scope, false)


  }

  trait DefaultOpengisgml_TimeCalendarTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeCalendarType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeCalendarType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeCalendarType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "domainOfValidity")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "referenceFrame")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.TimeCalendarType(p1,
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.gml.TimeCalendarEraPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeCalendarType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeCalendarType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.domainOfValidity map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("domainOfValidity"), __scope, false) } getOrElse {Nil},
        __obj.referenceFrame flatMap { scalaxb.toXML[opengis.gml.TimeCalendarEraPropertyType](_, Some("http://www.opengis.net/gml"), Some("referenceFrame"), __scope, false) })

  }

  trait DefaultOpengisgml_TimeCalendarPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeCalendarPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeCalendarPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeCalendarPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TimeCalendar"))) ^^ 
        { case p1 => opengis.gml.TimeCalendarPropertyTypeSequence1(scalaxb.fromXML[opengis.gml.TimeCalendarType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.TimeCalendarPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeCalendarPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeCalendarPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.timecalendarpropertytypesequence1 map { scalaxb.toXML[opengis.gml.TimeCalendarPropertyTypeSequence1](_, None, Some("timecalendarpropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TimeCalendarPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.TimeCalendarPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TimeCalendarPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.TimeCalendarPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.TimeCalendarType](__obj.TimeCalendar, Some("http://www.opengis.net/gml"), Some("TimeCalendar"), __scope, false)


  }

  trait DefaultOpengisgml_TimeCalendarEraTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeCalendarEraType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeCalendarEraType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeCalendarEraType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "referenceEvent")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "referenceDate")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "julianReference")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "epochOfUse")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.gml.TimeCalendarEraType(p1,
        scalaxb.fromXML[opengis.gml.StringOrRefType](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[javax.xml.datatype.XMLGregorianCalendar](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[BigDecimal](p4, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.TimePeriodPropertyType](p5, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeCalendarEraType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeCalendarEraType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        scalaxb.toXML[opengis.gml.StringOrRefType](__obj.referenceEvent, Some("http://www.opengis.net/gml"), Some("referenceEvent"), __scope, false),
        __obj.referenceDate map { scalaxb.toXML[javax.xml.datatype.XMLGregorianCalendar](_, Some("http://www.opengis.net/gml"), Some("referenceDate"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[BigDecimal](__obj.julianReference, Some("http://www.opengis.net/gml"), Some("julianReference"), __scope, false),
        scalaxb.toXML[opengis.gml.TimePeriodPropertyType](__obj.epochOfUse, Some("http://www.opengis.net/gml"), Some("epochOfUse"), __scope, false))

  }

  trait DefaultOpengisgml_TimeCalendarEraPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeCalendarEraPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeCalendarEraPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeCalendarEraPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TimeCalendarEra"))) ^^ 
        { case p1 => opengis.gml.TimeCalendarEraPropertyTypeSequence1(scalaxb.fromXML[opengis.gml.TimeCalendarEraType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.TimeCalendarEraPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeCalendarEraPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeCalendarEraPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.timecalendarerapropertytypesequence1 map { scalaxb.toXML[opengis.gml.TimeCalendarEraPropertyTypeSequence1](_, None, Some("timecalendarerapropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TimeCalendarEraPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.TimeCalendarEraPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TimeCalendarEraPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.TimeCalendarEraPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.TimeCalendarEraType](__obj.TimeCalendarEra, Some("http://www.opengis.net/gml"), Some("TimeCalendarEra"), __scope, false)


  }

  trait DefaultOpengisgml_TimeClockTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeClockType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeClockType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeClockType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "domainOfValidity")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "referenceEvent")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "referenceTime")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "utcReference")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "dateBasis")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.gml.TimeClockType(p1,
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.StringOrRefType](p3, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[javax.xml.datatype.XMLGregorianCalendar](p4, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[javax.xml.datatype.XMLGregorianCalendar](p5, scalaxb.ElemName(node) :: stack),
        p6 map { scalaxb.fromXML[opengis.gml.TimeCalendarPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeClockType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeClockType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.domainOfValidity map { scalaxb.toXML[String](_, Some("http://www.opengis.net/gml"), Some("domainOfValidity"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.StringOrRefType](__obj.referenceEvent, Some("http://www.opengis.net/gml"), Some("referenceEvent"), __scope, false),
        scalaxb.toXML[javax.xml.datatype.XMLGregorianCalendar](__obj.referenceTime, Some("http://www.opengis.net/gml"), Some("referenceTime"), __scope, false),
        scalaxb.toXML[javax.xml.datatype.XMLGregorianCalendar](__obj.utcReference, Some("http://www.opengis.net/gml"), Some("utcReference"), __scope, false),
        __obj.dateBasis flatMap { scalaxb.toXML[opengis.gml.TimeCalendarPropertyType](_, Some("http://www.opengis.net/gml"), Some("dateBasis"), __scope, false) })

  }

  trait DefaultOpengisgml_TimeClockPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeClockPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeClockPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeClockPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TimeClock"))) ^^ 
        { case p1 => opengis.gml.TimeClockPropertyTypeSequence1(scalaxb.fromXML[opengis.gml.TimeClockType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.TimeClockPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeClockPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeClockPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.timeclockpropertytypesequence1 map { scalaxb.toXML[opengis.gml.TimeClockPropertyTypeSequence1](_, None, Some("timeclockpropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TimeClockPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.TimeClockPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TimeClockPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.TimeClockPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.TimeClockType](__obj.TimeClock, Some("http://www.opengis.net/gml"), Some("TimeClock"), __scope, false)


  }

  trait DefaultOpengisgml_TimeTopologyComplexTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeTopologyComplexType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeTopologyComplexType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeTopologyComplexType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "primitive")) ^^
      { case p1 ~ p2 =>
      opengis.gml.TimeTopologyComplexType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.TimeTopologyPrimitivePropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeTopologyComplexType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeTopologyComplexType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.primitive flatMap { scalaxb.toXML[opengis.gml.TimeTopologyPrimitivePropertyType](_, Some("http://www.opengis.net/gml"), Some("primitive"), __scope, false) })

  }

  trait DefaultOpengisgml_TimeTopologyComplexPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeTopologyComplexPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeTopologyComplexPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeTopologyComplexPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TimeTopologyComplex"))) ^^ 
        { case p1 => opengis.gml.TimeTopologyComplexPropertyTypeSequence1(scalaxb.fromXML[opengis.gml.TimeTopologyComplexType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.TimeTopologyComplexPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeTopologyComplexPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeTopologyComplexPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.timetopologycomplexpropertytypesequence1 map { scalaxb.toXML[opengis.gml.TimeTopologyComplexPropertyTypeSequence1](_, None, Some("timetopologycomplexpropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TimeTopologyComplexPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.TimeTopologyComplexPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TimeTopologyComplexPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.TimeTopologyComplexPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.TimeTopologyComplexType](__obj.TimeTopologyComplex, Some("http://www.opengis.net/gml"), Some("TimeTopologyComplex"), __scope, false)


  }

  trait DefaultOpengisgml_AbstractTimeTopologyPrimitiveTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractTimeTopologyPrimitiveType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractTimeTopologyPrimitiveType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("TimeNodeType")) => Right(scalaxb.fromXML[opengis.gml.TimeNodeType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TimeEdgeType")) => Right(scalaxb.fromXML[opengis.gml.TimeEdgeType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractTimeTopologyPrimitiveType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.TimeNodeType => scalaxb.toXML[opengis.gml.TimeNodeType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.TimeEdgeType => scalaxb.toXML[opengis.gml.TimeEdgeType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_TimeTopologyPrimitivePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeTopologyPrimitivePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeTopologyPrimitivePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeTopologyPrimitivePropertyType] =
      phrase(opt(((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TimeEdge")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TimeEdgeType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TimeNode")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TimeNodeType](x, scalaxb.ElemName(node) :: stack)))))) ^^ 
        { case p1 => opengis.gml.TimeTopologyPrimitivePropertyTypeSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.TimeTopologyPrimitivePropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeTopologyPrimitivePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeTopologyPrimitivePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.timetopologyprimitivepropertytypesequence1 map { scalaxb.toXML[opengis.gml.TimeTopologyPrimitivePropertyTypeSequence1](_, None, Some("timetopologyprimitivepropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TimeTopologyPrimitivePropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.TimeTopologyPrimitivePropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TimeTopologyPrimitivePropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.TimeTopologyPrimitivePropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj._TimeTopologyPrimitive) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_TimeNodeTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeNodeType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeNodeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeNodeType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "relatedTime")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "complex")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "previousEdge")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "nextEdge")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "position")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.gml.TimeNodeType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.RelatedTimeType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.ReferenceType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.TimeEdgePropertyType](_, scalaxb.ElemName(node) :: stack) },
        p5 map { scalaxb.fromXML[opengis.gml.TimeEdgePropertyType](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[opengis.gml.TimeInstantPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeNodeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeNodeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.relatedTime flatMap { scalaxb.toXML[opengis.gml.RelatedTimeType](_, Some("http://www.opengis.net/gml"), Some("relatedTime"), __scope, false) },
        __obj.complex map { scalaxb.toXML[opengis.gml.ReferenceType](_, Some("http://www.opengis.net/gml"), Some("complex"), __scope, false) } getOrElse {Nil},
        __obj.previousEdge flatMap { scalaxb.toXML[opengis.gml.TimeEdgePropertyType](_, Some("http://www.opengis.net/gml"), Some("previousEdge"), __scope, false) },
        __obj.nextEdge flatMap { scalaxb.toXML[opengis.gml.TimeEdgePropertyType](_, Some("http://www.opengis.net/gml"), Some("nextEdge"), __scope, false) },
        __obj.position map { scalaxb.toXML[opengis.gml.TimeInstantPropertyType](_, Some("http://www.opengis.net/gml"), Some("position"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TimeNodePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeNodePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeNodePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeNodePropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TimeNode"))) ^^ 
        { case p1 => opengis.gml.TimeNodePropertyTypeSequence1(scalaxb.fromXML[opengis.gml.TimeNodeType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.TimeNodePropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeNodePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeNodePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.timenodepropertytypesequence1 map { scalaxb.toXML[opengis.gml.TimeNodePropertyTypeSequence1](_, None, Some("timenodepropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TimeNodePropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.TimeNodePropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TimeNodePropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.TimeNodePropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.TimeNodeType](__obj.TimeNode, Some("http://www.opengis.net/gml"), Some("TimeNode"), __scope, false)


  }

  trait DefaultOpengisgml_TimeEdgeTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeEdgeType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeEdgeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeEdgeType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "relatedTime")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "complex")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "start")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "end")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "extent")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.gml.TimeEdgeType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.RelatedTimeType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.ReferenceType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.TimeNodePropertyType](p4, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.TimeNodePropertyType](p5, scalaxb.ElemName(node) :: stack),
        p6.headOption map { scalaxb.fromXML[opengis.gml.TimePeriodPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeEdgeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeEdgeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.relatedTime flatMap { scalaxb.toXML[opengis.gml.RelatedTimeType](_, Some("http://www.opengis.net/gml"), Some("relatedTime"), __scope, false) },
        __obj.complex map { scalaxb.toXML[opengis.gml.ReferenceType](_, Some("http://www.opengis.net/gml"), Some("complex"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.TimeNodePropertyType](__obj.start, Some("http://www.opengis.net/gml"), Some("start"), __scope, false),
        scalaxb.toXML[opengis.gml.TimeNodePropertyType](__obj.end, Some("http://www.opengis.net/gml"), Some("end"), __scope, false),
        __obj.extent map { scalaxb.toXML[opengis.gml.TimePeriodPropertyType](_, Some("http://www.opengis.net/gml"), Some("extent"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TimeEdgePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TimeEdgePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TimeEdgePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TimeEdgePropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TimeEdge"))) ^^ 
        { case p1 => opengis.gml.TimeEdgePropertyTypeSequence1(scalaxb.fromXML[opengis.gml.TimeEdgeType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.TimeEdgePropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TimeEdgePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TimeEdgePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.timeedgepropertytypesequence1 map { scalaxb.toXML[opengis.gml.TimeEdgePropertyTypeSequence1](_, None, Some("timeedgepropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TimeEdgePropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.TimeEdgePropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.TimeEdgePropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.TimeEdgePropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.TimeEdgeType](__obj.TimeEdge, Some("http://www.opengis.net/gml"), Some("TimeEdge"), __scope, false)


  }

  def buildOpengisgml_SuccessionTypeFormat = new DefaultOpengisgml_SuccessionTypeFormat {}
  trait DefaultOpengisgml_SuccessionTypeFormat extends scalaxb.XMLFormat[opengis.gml.SuccessionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.SuccessionType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.SuccessionType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("substitution")) => opengis.gml.Substitution
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("division")) => opengis.gml.Division
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("fusion")) => opengis.gml.Fusion
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("initiation")) => opengis.gml.Initiation

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.SuccessionType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.SuccessionType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisgml_AbstractTopologyTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractTopologyType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractTopologyType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("TopoComplexType")) => Right(scalaxb.fromXML[opengis.gml.TopoComplexType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TopoVolumeType")) => Right(scalaxb.fromXML[opengis.gml.TopoVolumeType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TopoSurfaceType")) => Right(scalaxb.fromXML[opengis.gml.TopoSurfaceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TopoCurveType")) => Right(scalaxb.fromXML[opengis.gml.TopoCurveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TopoPointType")) => Right(scalaxb.fromXML[opengis.gml.TopoPointType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("AbstractTopoPrimitiveType")) => Right(scalaxb.fromXML[opengis.gml.AbstractTopoPrimitiveType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("TopoSolidType")) => Right(scalaxb.fromXML[opengis.gml.TopoSolidType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("FaceType")) => Right(scalaxb.fromXML[opengis.gml.FaceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("EdgeType")) => Right(scalaxb.fromXML[opengis.gml.EdgeType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("NodeType")) => Right(scalaxb.fromXML[opengis.gml.NodeType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractTopologyType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.TopoComplexType => scalaxb.toXML[opengis.gml.TopoComplexType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.TopoVolumeType => scalaxb.toXML[opengis.gml.TopoVolumeType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.TopoSurfaceType => scalaxb.toXML[opengis.gml.TopoSurfaceType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.TopoCurveType => scalaxb.toXML[opengis.gml.TopoCurveType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.TopoPointType => scalaxb.toXML[opengis.gml.TopoPointType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.AbstractTopoPrimitiveType => scalaxb.toXML[opengis.gml.AbstractTopoPrimitiveType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_AbstractTopoPrimitiveTypeFormat extends scalaxb.XMLFormat[opengis.gml.AbstractTopoPrimitiveType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.AbstractTopoPrimitiveType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("TopoSolidType")) => Right(scalaxb.fromXML[opengis.gml.TopoSolidType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("FaceType")) => Right(scalaxb.fromXML[opengis.gml.FaceType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("EdgeType")) => Right(scalaxb.fromXML[opengis.gml.EdgeType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("NodeType")) => Right(scalaxb.fromXML[opengis.gml.NodeType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.AbstractTopoPrimitiveType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.TopoSolidType => scalaxb.toXML[opengis.gml.TopoSolidType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.FaceType => scalaxb.toXML[opengis.gml.FaceType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.EdgeType => scalaxb.toXML[opengis.gml.EdgeType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.NodeType => scalaxb.toXML[opengis.gml.NodeType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisgml_IsolatedPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.IsolatedPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("IsolatedPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.IsolatedPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Node")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.NodeType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Edge")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.EdgeType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.IsolatedPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.IsolatedPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.IsolatedPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.isolatedpropertytypeoption map { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.IsolatedPropertyTypeOption]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_ContainerPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ContainerPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ContainerPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ContainerPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Face")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.FaceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TopoSolid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TopoSolidType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.ContainerPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ContainerPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ContainerPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.containerpropertytypeoption map { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.ContainerPropertyTypeOption]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_NodeTypeFormat extends scalaxb.ElemNameParser[opengis.gml.NodeType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("NodeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.NodeType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "isolated")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "container")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "directedEdge")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "pointProperty")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.gml.NodeType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IsolatedPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.ContainerPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.DirectedEdgePropertyType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[opengis.gml.PointPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.NodeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.NodeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.isolated flatMap { scalaxb.toXML[opengis.gml.IsolatedPropertyType](_, Some("http://www.opengis.net/gml"), Some("isolated"), __scope, false) },
        __obj.container map { scalaxb.toXML[opengis.gml.ContainerPropertyType](_, Some("http://www.opengis.net/gml"), Some("container"), __scope, false) } getOrElse {Nil},
        __obj.directedEdge flatMap { scalaxb.toXML[opengis.gml.DirectedEdgePropertyType](_, Some("http://www.opengis.net/gml"), Some("directedEdge"), __scope, false) },
        __obj.pointProperty map { scalaxb.toXML[opengis.gml.PointPropertyType](_, Some("http://www.opengis.net/gml"), Some("pointProperty"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_DirectedNodePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DirectedNodePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DirectedNodePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DirectedNodePropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Node"))) ^^ 
        { case p1 => opengis.gml.DirectedNodePropertyTypeSequence1(scalaxb.fromXML[opengis.gml.NodeType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.DirectedNodePropertyType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@orientation").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.SignType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.SignType](scala.xml.Text("+"), scalaxb.ElemName(node) :: stack))) map { "@orientation" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.DirectedNodePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@orientation", _) => if (__obj.orientation.toString != "+") attr = scala.xml.Attribute(null, "orientation", __obj.orientation.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DirectedNodePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.directednodepropertytypesequence1 map { scalaxb.toXML[opengis.gml.DirectedNodePropertyTypeSequence1](_, None, Some("directednodepropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_DirectedNodePropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.DirectedNodePropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.DirectedNodePropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.DirectedNodePropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.NodeType](__obj.Node, Some("http://www.opengis.net/gml"), Some("Node"), __scope, false)


  }

  trait DefaultOpengisgml_EdgeTypeFormat extends scalaxb.ElemNameParser[opengis.gml.EdgeType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("EdgeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.EdgeType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "isolated")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "container")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "directedNode")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "directedFace")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "curveProperty")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.gml.EdgeType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IsolatedPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.ContainerPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.DirectedNodePropertyType](_, scalaxb.ElemName(node) :: stack) },
        p5 map { scalaxb.fromXML[opengis.gml.DirectedFacePropertyType](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[opengis.gml.CurvePropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.EdgeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.EdgeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.isolated flatMap { scalaxb.toXML[opengis.gml.IsolatedPropertyType](_, Some("http://www.opengis.net/gml"), Some("isolated"), __scope, false) },
        __obj.container map { scalaxb.toXML[opengis.gml.ContainerPropertyType](_, Some("http://www.opengis.net/gml"), Some("container"), __scope, false) } getOrElse {Nil},
        __obj.directedNode flatMap { scalaxb.toXML[opengis.gml.DirectedNodePropertyType](_, Some("http://www.opengis.net/gml"), Some("directedNode"), __scope, false) },
        __obj.directedFace flatMap { scalaxb.toXML[opengis.gml.DirectedFacePropertyType](_, Some("http://www.opengis.net/gml"), Some("directedFace"), __scope, false) },
        __obj.curveProperty map { scalaxb.toXML[opengis.gml.CurvePropertyType](_, Some("http://www.opengis.net/gml"), Some("curveProperty"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_DirectedEdgePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DirectedEdgePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DirectedEdgePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DirectedEdgePropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Edge"))) ^^ 
        { case p1 => opengis.gml.DirectedEdgePropertyTypeSequence1(scalaxb.fromXML[opengis.gml.EdgeType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.DirectedEdgePropertyType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@orientation").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.SignType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.SignType](scala.xml.Text("+"), scalaxb.ElemName(node) :: stack))) map { "@orientation" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.DirectedEdgePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@orientation", _) => if (__obj.orientation.toString != "+") attr = scala.xml.Attribute(null, "orientation", __obj.orientation.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DirectedEdgePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.directededgepropertytypesequence1 map { scalaxb.toXML[opengis.gml.DirectedEdgePropertyTypeSequence1](_, None, Some("directededgepropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_DirectedEdgePropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.DirectedEdgePropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.DirectedEdgePropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.DirectedEdgePropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.EdgeType](__obj.Edge, Some("http://www.opengis.net/gml"), Some("Edge"), __scope, false)


  }

  trait DefaultOpengisgml_FaceTypeFormat extends scalaxb.ElemNameParser[opengis.gml.FaceType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("FaceType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.FaceType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "isolated")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "container")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "directedEdge")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "directedTopoSolid")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "surfaceProperty")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.gml.FaceType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IsolatedPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.ContainerPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.DirectedEdgePropertyType](_, scalaxb.ElemName(node) :: stack) },
        p5 map { scalaxb.fromXML[opengis.gml.DirectedTopoSolidPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[opengis.gml.SurfacePropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.FaceType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.FaceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.isolated flatMap { scalaxb.toXML[opengis.gml.IsolatedPropertyType](_, Some("http://www.opengis.net/gml"), Some("isolated"), __scope, false) },
        __obj.container map { scalaxb.toXML[opengis.gml.ContainerPropertyType](_, Some("http://www.opengis.net/gml"), Some("container"), __scope, false) } getOrElse {Nil},
        __obj.directedEdge flatMap { scalaxb.toXML[opengis.gml.DirectedEdgePropertyType](_, Some("http://www.opengis.net/gml"), Some("directedEdge"), __scope, false) },
        __obj.directedTopoSolid flatMap { scalaxb.toXML[opengis.gml.DirectedTopoSolidPropertyType](_, Some("http://www.opengis.net/gml"), Some("directedTopoSolid"), __scope, false) },
        __obj.surfaceProperty map { scalaxb.toXML[opengis.gml.SurfacePropertyType](_, Some("http://www.opengis.net/gml"), Some("surfaceProperty"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_DirectedFacePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DirectedFacePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DirectedFacePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DirectedFacePropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Face"))) ^^ 
        { case p1 => opengis.gml.DirectedFacePropertyTypeSequence1(scalaxb.fromXML[opengis.gml.FaceType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.DirectedFacePropertyType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@orientation").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.SignType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.SignType](scala.xml.Text("+"), scalaxb.ElemName(node) :: stack))) map { "@orientation" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.DirectedFacePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@orientation", _) => if (__obj.orientation.toString != "+") attr = scala.xml.Attribute(null, "orientation", __obj.orientation.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DirectedFacePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.directedfacepropertytypesequence1 map { scalaxb.toXML[opengis.gml.DirectedFacePropertyTypeSequence1](_, None, Some("directedfacepropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_DirectedFacePropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.DirectedFacePropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.DirectedFacePropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.DirectedFacePropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.FaceType](__obj.Face, Some("http://www.opengis.net/gml"), Some("Face"), __scope, false)


  }

  trait DefaultOpengisgml_TopoSolidTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TopoSolidType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TopoSolidType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TopoSolidType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "isolated")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "container")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "directedFace")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.TopoSolidType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.IsolatedPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.ContainerPropertyType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.DirectedFacePropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TopoSolidType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TopoSolidType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.isolated flatMap { scalaxb.toXML[opengis.gml.IsolatedPropertyType](_, Some("http://www.opengis.net/gml"), Some("isolated"), __scope, false) },
        __obj.container map { scalaxb.toXML[opengis.gml.ContainerPropertyType](_, Some("http://www.opengis.net/gml"), Some("container"), __scope, false) } getOrElse {Nil},
        __obj.directedFace flatMap { scalaxb.toXML[opengis.gml.DirectedFacePropertyType](_, Some("http://www.opengis.net/gml"), Some("directedFace"), __scope, false) })

  }

  trait DefaultOpengisgml_DirectedTopoSolidPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DirectedTopoSolidPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DirectedTopoSolidPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DirectedTopoSolidPropertyType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TopoSolid"))) ^^ 
        { case p1 => opengis.gml.DirectedTopoSolidPropertyTypeSequence1(scalaxb.fromXML[opengis.gml.TopoSolidType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.gml.DirectedTopoSolidPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@orientation").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.SignType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.SignType](scala.xml.Text("+"), scalaxb.ElemName(node) :: stack))) map { "@orientation" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.DirectedTopoSolidPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@orientation", _) => if (__obj.orientation.toString != "+") attr = scala.xml.Attribute(null, "orientation", __obj.orientation.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DirectedTopoSolidPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.directedtoposolidpropertytypesequence1 map { scalaxb.toXML[opengis.gml.DirectedTopoSolidPropertyTypeSequence1](_, None, Some("directedtoposolidpropertytypesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_DirectedTopoSolidPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.DirectedTopoSolidPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.DirectedTopoSolidPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.DirectedTopoSolidPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.TopoSolidType](__obj.TopoSolid, Some("http://www.opengis.net/gml"), Some("TopoSolid"), __scope, false)


  }

  trait DefaultOpengisgml_TopoPointTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TopoPointType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TopoPointType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TopoPointType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "directedNode")) ^^
      { case p1 ~ p2 =>
      opengis.gml.TopoPointType(p1,
        scalaxb.fromXML[opengis.gml.DirectedNodePropertyType](p2, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TopoPointType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TopoPointType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        scalaxb.toXML[opengis.gml.DirectedNodePropertyType](__obj.directedNode, Some("http://www.opengis.net/gml"), Some("directedNode"), __scope, false))

  }

  trait DefaultOpengisgml_TopoPointPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TopoPointPropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TopoPointPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TopoPointPropertyType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TopoPoint")) ^^
      { case p1 =>
      opengis.gml.TopoPointPropertyType(scalaxb.fromXML[opengis.gml.TopoPointType](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.gml.TopoPointPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.gml.TopoPointType](__obj.TopoPoint, Some("http://www.opengis.net/gml"), Some("TopoPoint"), __scope, false))

  }

  trait DefaultOpengisgml_TopoCurveTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TopoCurveType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TopoCurveType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TopoCurveType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "directedEdge")) ^^
      { case p1 ~ p2 =>
      opengis.gml.TopoCurveType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.DirectedEdgePropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TopoCurveType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TopoCurveType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.directedEdge flatMap { scalaxb.toXML[opengis.gml.DirectedEdgePropertyType](_, Some("http://www.opengis.net/gml"), Some("directedEdge"), __scope, false) })

  }

  trait DefaultOpengisgml_TopoCurvePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TopoCurvePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TopoCurvePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TopoCurvePropertyType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TopoCurve")) ^^
      { case p1 =>
      opengis.gml.TopoCurvePropertyType(scalaxb.fromXML[opengis.gml.TopoCurveType](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.gml.TopoCurvePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.gml.TopoCurveType](__obj.TopoCurve, Some("http://www.opengis.net/gml"), Some("TopoCurve"), __scope, false))

  }

  trait DefaultOpengisgml_TopoSurfaceTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TopoSurfaceType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TopoSurfaceType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TopoSurfaceType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "directedFace")) ^^
      { case p1 ~ p2 =>
      opengis.gml.TopoSurfaceType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.DirectedFacePropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TopoSurfaceType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TopoSurfaceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.directedFace flatMap { scalaxb.toXML[opengis.gml.DirectedFacePropertyType](_, Some("http://www.opengis.net/gml"), Some("directedFace"), __scope, false) })

  }

  trait DefaultOpengisgml_TopoSurfacePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TopoSurfacePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TopoSurfacePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TopoSurfacePropertyType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TopoSurface")) ^^
      { case p1 =>
      opengis.gml.TopoSurfacePropertyType(scalaxb.fromXML[opengis.gml.TopoSurfaceType](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.gml.TopoSurfacePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.gml.TopoSurfaceType](__obj.TopoSurface, Some("http://www.opengis.net/gml"), Some("TopoSurface"), __scope, false))

  }

  trait DefaultOpengisgml_TopoVolumeTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TopoVolumeType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TopoVolumeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TopoVolumeType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "directedTopoSolid")) ^^
      { case p1 ~ p2 =>
      opengis.gml.TopoVolumeType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.DirectedTopoSolidPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TopoVolumeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TopoVolumeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.directedTopoSolid flatMap { scalaxb.toXML[opengis.gml.DirectedTopoSolidPropertyType](_, Some("http://www.opengis.net/gml"), Some("directedTopoSolid"), __scope, false) })

  }

  trait DefaultOpengisgml_TopoVolumePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TopoVolumePropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TopoVolumePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TopoVolumePropertyType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TopoVolume")) ^^
      { case p1 =>
      opengis.gml.TopoVolumePropertyType(scalaxb.fromXML[opengis.gml.TopoVolumeType](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.gml.TopoVolumePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.gml.TopoVolumeType](__obj.TopoVolume, Some("http://www.opengis.net/gml"), Some("TopoVolume"), __scope, false))

  }

  trait DefaultOpengisgml_TopoComplexTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TopoComplexType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TopoComplexType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TopoComplexType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "maximalComplex")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "superComplex")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "subComplex")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "topoPrimitiveMember")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "topoPrimitiveMembers")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.gml.TopoComplexType(p1,
        scalaxb.fromXML[opengis.gml.TopoComplexMemberType](p2, scalaxb.ElemName(node) :: stack),
        p3 map { scalaxb.fromXML[opengis.gml.TopoComplexMemberType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.TopoComplexMemberType](_, scalaxb.ElemName(node) :: stack) },
        p5 map { scalaxb.fromXML[opengis.gml.TopoPrimitiveMemberType](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[opengis.gml.TopoPrimitiveArrayAssociationType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@isMaximal").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[Boolean](scala.xml.Text("false"), scalaxb.ElemName(node) :: stack))) map { "@isMaximal" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TopoComplexType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@isMaximal", _) => if (__obj.isMaximal.toString != "false") attr = scala.xml.Attribute(null, "isMaximal", __obj.isMaximal.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TopoComplexType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        scalaxb.toXML[opengis.gml.TopoComplexMemberType](__obj.maximalComplex, Some("http://www.opengis.net/gml"), Some("maximalComplex"), __scope, false),
        __obj.superComplex flatMap { scalaxb.toXML[opengis.gml.TopoComplexMemberType](_, Some("http://www.opengis.net/gml"), Some("superComplex"), __scope, false) },
        __obj.subComplex flatMap { scalaxb.toXML[opengis.gml.TopoComplexMemberType](_, Some("http://www.opengis.net/gml"), Some("subComplex"), __scope, false) },
        __obj.topoPrimitiveMember flatMap { scalaxb.toXML[opengis.gml.TopoPrimitiveMemberType](_, Some("http://www.opengis.net/gml"), Some("topoPrimitiveMember"), __scope, false) },
        __obj.topoPrimitiveMembers map { scalaxb.toXML[opengis.gml.TopoPrimitiveArrayAssociationType](_, Some("http://www.opengis.net/gml"), Some("topoPrimitiveMembers"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TopoComplexMemberTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TopoComplexMemberType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TopoComplexMemberType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TopoComplexMemberType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TopoComplex")) ^^
      { case p1 =>
      opengis.gml.TopoComplexMemberType(p1.headOption map { scalaxb.fromXML[opengis.gml.TopoComplexType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TopoComplexMemberType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TopoComplexMemberType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.TopoComplex map { scalaxb.toXML[opengis.gml.TopoComplexType](_, Some("http://www.opengis.net/gml"), Some("TopoComplex"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TopoPrimitiveMemberTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TopoPrimitiveMemberType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TopoPrimitiveMemberType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TopoPrimitiveMemberType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TopoSolid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TopoSolidType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Face")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.FaceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Edge")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.EdgeType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Node")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.NodeType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.TopoPrimitiveMemberType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.TopoPrimitiveMemberType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.TopoPrimitiveMemberType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj._TopoPrimitive map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_TopoPrimitiveArrayAssociationTypeFormat extends scalaxb.ElemNameParser[opengis.gml.TopoPrimitiveArrayAssociationType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("TopoPrimitiveArrayAssociationType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.TopoPrimitiveArrayAssociationType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "TopoSolid")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TopoSolidType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Face")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.FaceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Edge")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.EdgeType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Node")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.NodeType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.TopoPrimitiveArrayAssociationType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.TopoPrimitiveArrayAssociationType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.topoprimitivearrayassociationtypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.AbstractTopoPrimitiveType]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_UnitOfMeasureTypableFormat extends scalaxb.XMLFormat[opengis.gml.UnitOfMeasureTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.UnitOfMeasureTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("ConversionToPreferredUnitType")) => Right(scalaxb.fromXML[opengis.gml.ConversionToPreferredUnitType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DerivationUnitTermType")) => Right(scalaxb.fromXML[opengis.gml.DerivationUnitTermType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.UnitOfMeasureType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.UnitOfMeasureTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.ConversionToPreferredUnitType => scalaxb.toXML[opengis.gml.ConversionToPreferredUnitType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.DerivationUnitTermType => scalaxb.toXML[opengis.gml.DerivationUnitTermType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.UnitOfMeasureType => scalaxb.toXML[opengis.gml.UnitOfMeasureType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_UnitOfMeasureTypeFormat extends scalaxb.XMLFormat[opengis.gml.UnitOfMeasureType] with scalaxb.CanWriteChildNodes[opengis.gml.UnitOfMeasureType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.UnitOfMeasureType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.UnitOfMeasureType(scala.collection.immutable.ListMap(List(
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.UnitOfMeasureType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@uom", _) => attr = scala.xml.Attribute(null, "uom", __obj.uom.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.UnitOfMeasureType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisgml_UnitDefinitionTypableFormat extends scalaxb.XMLFormat[opengis.gml.UnitDefinitionTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.UnitDefinitionTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("ConventionalUnitType")) => Right(scalaxb.fromXML[opengis.gml.ConventionalUnitType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("BaseUnitType")) => Right(scalaxb.fromXML[opengis.gml.BaseUnitType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("DerivedUnitType")) => Right(scalaxb.fromXML[opengis.gml.DerivedUnitType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.UnitDefinitionType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.UnitDefinitionTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.ConventionalUnitType => scalaxb.toXML[opengis.gml.ConventionalUnitType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.BaseUnitType => scalaxb.toXML[opengis.gml.BaseUnitType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.DerivedUnitType => scalaxb.toXML[opengis.gml.DerivedUnitType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.UnitDefinitionType => scalaxb.toXML[opengis.gml.UnitDefinitionType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_UnitDefinitionTypeFormat extends scalaxb.ElemNameParser[opengis.gml.UnitDefinitionType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("UnitDefinitionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.UnitDefinitionType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "quantityType")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "catalogSymbol")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.UnitDefinitionType(p1,
        scalaxb.fromXML[opengis.gml.StringOrRefType](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[opengis.gml.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.UnitDefinitionType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.UnitDefinitionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        scalaxb.toXML[opengis.gml.StringOrRefType](__obj.quantityType, Some("http://www.opengis.net/gml"), Some("quantityType"), __scope, false),
        __obj.catalogSymbol map { scalaxb.toXML[opengis.gml.CodeTypable](_, Some("http://www.opengis.net/gml"), Some("catalogSymbol"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_BaseUnitTypeFormat extends scalaxb.ElemNameParser[opengis.gml.BaseUnitType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("BaseUnitType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.BaseUnitType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "quantityType")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "catalogSymbol")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "unitsSystem")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.BaseUnitType(p1,
        scalaxb.fromXML[opengis.gml.StringOrRefType](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[opengis.gml.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.gml.ReferenceType](p4, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.BaseUnitType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.BaseUnitType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        scalaxb.toXML[opengis.gml.StringOrRefType](__obj.quantityType, Some("http://www.opengis.net/gml"), Some("quantityType"), __scope, false),
        __obj.catalogSymbol map { scalaxb.toXML[opengis.gml.CodeTypable](_, Some("http://www.opengis.net/gml"), Some("catalogSymbol"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.gml.ReferenceType](__obj.unitsSystem, Some("http://www.opengis.net/gml"), Some("unitsSystem"), __scope, false))

  }

  trait DefaultOpengisgml_DerivedUnitTypeFormat extends scalaxb.ElemNameParser[opengis.gml.DerivedUnitType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("DerivedUnitType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.DerivedUnitType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "quantityType")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "catalogSymbol")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "derivationUnitTerm")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.DerivedUnitType(p1,
        scalaxb.fromXML[opengis.gml.StringOrRefType](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[opengis.gml.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.gml.DerivationUnitTermType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.DerivedUnitType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DerivedUnitType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        scalaxb.toXML[opengis.gml.StringOrRefType](__obj.quantityType, Some("http://www.opengis.net/gml"), Some("quantityType"), __scope, false),
        __obj.catalogSymbol map { scalaxb.toXML[opengis.gml.CodeTypable](_, Some("http://www.opengis.net/gml"), Some("catalogSymbol"), __scope, false) } getOrElse {Nil},
        __obj.derivationUnitTerm flatMap { scalaxb.toXML[opengis.gml.DerivationUnitTermType](_, Some("http://www.opengis.net/gml"), Some("derivationUnitTerm"), __scope, false) })

  }

  trait DefaultOpengisgml_ConventionalUnitTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ConventionalUnitType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ConventionalUnitType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ConventionalUnitType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "quantityType")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "catalogSymbol")) ~ 
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "conversionToPreferredUnit")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ConversionToPreferredUnitType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "roughConversionToPreferredUnit")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ConversionToPreferredUnitType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "derivationUnitTerm")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.gml.ConventionalUnitType(p1,
        scalaxb.fromXML[opengis.gml.StringOrRefType](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[opengis.gml.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        p4,
        p5 map { scalaxb.fromXML[opengis.gml.DerivationUnitTermType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ConventionalUnitType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ConventionalUnitType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        scalaxb.toXML[opengis.gml.StringOrRefType](__obj.quantityType, Some("http://www.opengis.net/gml"), Some("quantityType"), __scope, false),
        __obj.catalogSymbol map { scalaxb.toXML[opengis.gml.CodeTypable](_, Some("http://www.opengis.net/gml"), Some("catalogSymbol"), __scope, false) } getOrElse {Nil},
        (Some(__obj.conventionalunittypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.gml.ConventionalUnitTypeOption]](x, x.namespace, x.key, __scope, false)}).get,
        __obj.derivationUnitTerm flatMap { scalaxb.toXML[opengis.gml.DerivationUnitTermType](_, Some("http://www.opengis.net/gml"), Some("derivationUnitTerm"), __scope, false) })

  }

  trait DefaultOpengisgml_DerivationUnitTermTypeFormat extends scalaxb.XMLFormat[opengis.gml.DerivationUnitTermType] with scalaxb.CanWriteChildNodes[opengis.gml.DerivationUnitTermType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.DerivationUnitTermType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.DerivationUnitTermType(scala.collection.immutable.ListMap(List(
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ },
        (node \ "@exponent").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@exponent" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.DerivationUnitTermType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@uom", _) => attr = scala.xml.Attribute(null, "uom", __obj.uom.toString, attr)
        case ("@exponent", _) => __obj.exponent foreach { x => attr = scala.xml.Attribute(null, "exponent", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.DerivationUnitTermType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisgml_ConversionToPreferredUnitTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ConversionToPreferredUnitType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ConversionToPreferredUnitType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ConversionToPreferredUnitType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "factor")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[Double](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "formula")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.FormulaType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.ConversionToPreferredUnitType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ConversionToPreferredUnitType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@uom", _) => attr = scala.xml.Attribute(null, "uom", __obj.uom.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ConversionToPreferredUnitType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.conversiontopreferredunittypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisgml_FormulaTypeFormat extends scalaxb.ElemNameParser[opengis.gml.FormulaType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("FormulaType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.FormulaType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "a")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "b")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/gml"), "c")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "d")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.gml.FormulaType(p1.headOption map { scalaxb.fromXML[Double](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[Double](p2, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[Double](p3, scalaxb.ElemName(node) :: stack),
        p4.headOption map { scalaxb.fromXML[Double](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.gml.FormulaType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.a map { scalaxb.toXML[Double](_, Some("http://www.opengis.net/gml"), Some("a"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[Double](__obj.b, Some("http://www.opengis.net/gml"), Some("b"), __scope, false),
        scalaxb.toXML[Double](__obj.c, Some("http://www.opengis.net/gml"), Some("c"), __scope, false),
        __obj.d map { scalaxb.toXML[Double](_, Some("http://www.opengis.net/gml"), Some("d"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_CompositeValueTypableFormat extends scalaxb.XMLFormat[opengis.gml.CompositeValueTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CompositeValueTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("ValueArrayType")) => Right(scalaxb.fromXML[opengis.gml.ValueArrayType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.CompositeValueType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.CompositeValueTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.ValueArrayType => scalaxb.toXML[opengis.gml.ValueArrayType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.CompositeValueType => scalaxb.toXML[opengis.gml.CompositeValueType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_CompositeValueTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CompositeValueType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CompositeValueType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CompositeValueType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "valueComponent")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "valueComponents")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.CompositeValueType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.ValuePropertyTypable](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.ValueArrayPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CompositeValueType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CompositeValueType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.valueComponent flatMap { scalaxb.toXML[opengis.gml.ValuePropertyTypable](_, Some("http://www.opengis.net/gml"), Some("valueComponent"), __scope, false) },
        __obj.valueComponents map { scalaxb.toXML[opengis.gml.ValueArrayPropertyType](_, Some("http://www.opengis.net/gml"), Some("valueComponents"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_ValueArrayTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ValueArrayType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ValueArrayType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ValueArrayType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "valueComponent")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "valueComponents")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.gml.ValueArrayType(p1,
        p2 map { scalaxb.fromXML[opengis.gml.ValuePropertyTypable](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.ValueArrayPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@codeSpace").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@codeSpace" -> _ },
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ValueArrayType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@codeSpace", _) => __obj.codeSpace foreach { x => attr = scala.xml.Attribute(null, "codeSpace", x.toString, attr) }
        case ("@uom", _) => __obj.uom foreach { x => attr = scala.xml.Attribute(null, "uom", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ValueArrayType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.valueComponent flatMap { scalaxb.toXML[opengis.gml.ValuePropertyTypable](_, Some("http://www.opengis.net/gml"), Some("valueComponent"), __scope, false) },
        __obj.valueComponents map { scalaxb.toXML[opengis.gml.ValueArrayPropertyType](_, Some("http://www.opengis.net/gml"), Some("valueComponents"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_QuantityExtentTypeFormat extends scalaxb.XMLFormat[opengis.gml.QuantityExtentType] with scalaxb.CanWriteChildNodes[opengis.gml.QuantityExtentType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.QuantityExtentType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.QuantityExtentType(scalaxb.fromXML[Seq[String]](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.QuantityExtentType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@uom", _) => attr = scala.xml.Attribute(null, "uom", __obj.uom.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.QuantityExtentType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_CategoryExtentTypeFormat extends scalaxb.XMLFormat[opengis.gml.CategoryExtentType] with scalaxb.CanWriteChildNodes[opengis.gml.CategoryExtentType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CategoryExtentType] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.CategoryExtentType(scalaxb.fromXML[Seq[String]](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@codeSpace").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@codeSpace" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.CategoryExtentType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@codeSpace", _) => __obj.codeSpace foreach { x => attr = scala.xml.Attribute(null, "codeSpace", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CategoryExtentType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisgml_ValuePropertyTypableFormat extends scalaxb.XMLFormat[opengis.gml.ValuePropertyTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.ValuePropertyTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/gml"), Some("QuantityPropertyType")) => Right(scalaxb.fromXML[opengis.gml.QuantityPropertyType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("BooleanPropertyType")) => Right(scalaxb.fromXML[opengis.gml.BooleanPropertyType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("ScalarValuePropertyType")) => Right(scalaxb.fromXML[opengis.gml.ScalarValuePropertyType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CategoryPropertyType")) => Right(scalaxb.fromXML[opengis.gml.CategoryPropertyType](node, stack))
          case (Some("http://www.opengis.net/gml"), Some("CountPropertyType")) => Right(scalaxb.fromXML[opengis.gml.CountPropertyType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.ValuePropertyType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.ValuePropertyTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.QuantityPropertyType => scalaxb.toXML[opengis.gml.QuantityPropertyType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.BooleanPropertyType => scalaxb.toXML[opengis.gml.BooleanPropertyType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.ScalarValuePropertyType => scalaxb.toXML[opengis.gml.ScalarValuePropertyType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.CategoryPropertyType => scalaxb.toXML[opengis.gml.CategoryPropertyType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.CountPropertyType => scalaxb.toXML[opengis.gml.CountPropertyType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.ValuePropertyType => scalaxb.toXML[opengis.gml.ValuePropertyType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgml_ValuePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ValuePropertyType] with Opengisgml_ValueGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ValuePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ValuePropertyType] =
      phrase(opt(((parseValueGroup(node, scalaxb.ElemName(node) :: stack))) ^^ 
        { case p1 => opengis.gml.ValuePropertyTypableSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.ValuePropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ValuePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ValuePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.valuepropertytypablesequence1 map { scalaxb.toXML[opengis.gml.ValuePropertyTypableSequence1](_, None, Some("valuepropertytypablesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_ValuePropertyTypableSequence1Format extends scalaxb.XMLFormat[opengis.gml.ValuePropertyTypableSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.ValuePropertyTypableSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.ValuePropertyTypableSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj.valueOption1) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_ValueArrayPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ValueArrayPropertyType] with Opengisgml_ValueGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ValueArrayPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ValueArrayPropertyType] =
      phrase(safeRep(parseValueGroup(node, scalaxb.ElemName(node) :: stack)) ^^
      { case p1 =>
      opengis.gml.ValueArrayPropertyType(p1) })
    
    def writesChildNodes(__obj: opengis.gml.ValueArrayPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.valueOption1 flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgml_ScalarValuePropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.ScalarValuePropertyType] with Opengisgml_ValueGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("ScalarValuePropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.ScalarValuePropertyType] =
      phrase(opt(((parseValueGroup(node, scalaxb.ElemName(node) :: stack))) ^^ 
        { case p1 => opengis.gml.ValuePropertyTypableSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.ScalarValuePropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.ScalarValuePropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.ScalarValuePropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.valuepropertytypablesequence1 map { scalaxb.toXML[opengis.gml.ValuePropertyTypableSequence1](_, None, Some("valuepropertytypablesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_ScalarValuePropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.ScalarValuePropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.ScalarValuePropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.ScalarValuePropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj.scalarValueOption1) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisgml_BooleanPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.BooleanPropertyType] with Opengisgml_ValueGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("BooleanPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.BooleanPropertyType] =
      phrase(opt(((parseValueGroup(node, scalaxb.ElemName(node) :: stack))) ^^ 
        { case p1 => opengis.gml.ValuePropertyTypableSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.BooleanPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.BooleanPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.BooleanPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.valuepropertytypablesequence1 map { scalaxb.toXML[opengis.gml.ValuePropertyTypableSequence1](_, None, Some("valuepropertytypablesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_BooleanPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.BooleanPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.BooleanPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.BooleanPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[Boolean](__obj.BooleanValue, Some("http://www.opengis.net/gml"), Some("Boolean"), __scope, false)


  }

  trait DefaultOpengisgml_CategoryPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CategoryPropertyType] with Opengisgml_ValueGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CategoryPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CategoryPropertyType] =
      phrase(opt(((parseValueGroup(node, scalaxb.ElemName(node) :: stack))) ^^ 
        { case p1 => opengis.gml.ValuePropertyTypableSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.CategoryPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CategoryPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CategoryPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.valuepropertytypablesequence1 map { scalaxb.toXML[opengis.gml.ValuePropertyTypableSequence1](_, None, Some("valuepropertytypablesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_CategoryPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.CategoryPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CategoryPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.CategoryPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.CodeTypable](__obj.Category, Some("http://www.opengis.net/gml"), Some("Category"), __scope, false)


  }

  trait DefaultOpengisgml_QuantityPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.QuantityPropertyType] with Opengisgml_ValueGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("QuantityPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.QuantityPropertyType] =
      phrase(opt(((parseValueGroup(node, scalaxb.ElemName(node) :: stack))) ^^ 
        { case p1 => opengis.gml.ValuePropertyTypableSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.QuantityPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.QuantityPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.QuantityPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.valuepropertytypablesequence1 map { scalaxb.toXML[opengis.gml.ValuePropertyTypableSequence1](_, None, Some("valuepropertytypablesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_QuantityPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.QuantityPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.QuantityPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.QuantityPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.gml.MeasureTypable](__obj.Quantity, Some("http://www.opengis.net/gml"), Some("Quantity"), __scope, false)


  }

  trait DefaultOpengisgml_CountPropertyTypeFormat extends scalaxb.ElemNameParser[opengis.gml.CountPropertyType] with Opengisgml_ValueGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    override def typeName: Option[String] = Some("CountPropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.CountPropertyType] =
      phrase(opt(((parseValueGroup(node, scalaxb.ElemName(node) :: stack))) ^^ 
        { case p1 => opengis.gml.ValuePropertyTypableSequence1(p1) }) ^^
      { case p1 =>
      opengis.gml.CountPropertyType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.gml.CountPropertyType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.CountPropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.valuepropertytypablesequence1 map { scalaxb.toXML[opengis.gml.ValuePropertyTypableSequence1](_, None, Some("valuepropertytypablesequence1"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisgml_CountPropertyTypeSequence1Format extends scalaxb.XMLFormat[opengis.gml.CountPropertyTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.CountPropertyTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.gml.CountPropertyTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[BigInt](__obj.Count, Some("http://www.opengis.net/gml"), Some("Count"), __scope, false)


  }


  trait Opengisgml_ValueExtentGroupFormat extends scalaxb.AnyElemNameParser {
    def parseValueExtentGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[scalaxb.DataRecord[Any]] =
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CategoryExtent")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CategoryExtentType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "QuantityExtent")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.QuantityExtentType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CountExtent")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)))))
  
    def parseValueExtentGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[Any]] =
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CategoryExtent")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CategoryExtentType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "QuantityExtent")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.QuantityExtentType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CountExtent")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)))))
    
    def parsemixedValueExtentGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      (((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CategoryExtent")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CategoryExtentType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "QuantityExtent")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.QuantityExtentType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CountExtent")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[Seq[String]](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }))
  }


  trait Opengisgml_ScalarValueGroupFormat extends scalaxb.AnyElemNameParser {
    def parseScalarValueGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[scalaxb.DataRecord[Any]] =
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Boolean")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Category")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Quantity")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MeasureTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Count")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)))))
  
    def parseScalarValueGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[Any]] =
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Boolean")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Category")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Quantity")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MeasureTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Count")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)))))
    
    def parsemixedScalarValueGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      (((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Boolean")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Category")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Quantity")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MeasureTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Count")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }))
  }


/** Utility choice group which unifies generic Values defined in this schema document with 
			Geometry and Temporal objects and the Measures described above, 
			so that any of these may be used within aggregate Values.
*/
  trait Opengisgml_ValueGroupFormat extends Opengisgml_ValueObjectGroupFormat {
    def parseValueGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[scalaxb.DataRecord[Any]] =
      ((parseValueObjectGroup(node, scalaxb.ElemName(node) :: stack, true)) ||| 
      ((any(_ => true) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Null")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)))))
  
    def parseValueGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[Any]] =
      ((parseValueObjectGroup(node, scalaxb.ElemName(node) :: stack, true)) ||| 
      ((any(_ => true) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Null")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)))))
    
    def parsemixedValueGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      ((parsemixedValueObjectGroup(node, scalaxb.ElemName(node) :: stack)) ||| 
      (((((any(_ => true) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack))) ~
      optTextRecord) ^^ 
      { case p1 ~ p2 => Seq.concat(Seq(p1), p2.toList) }) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(p1,
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Null")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }))
  }


  trait Opengisgml_ValueObjectGroupFormat extends Opengisgml_ScalarValueGroupFormat with Opengisgml_ScalarValueListGroupFormat with Opengisgml_ValueExtentGroupFormat {
    def parseValueObjectGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[scalaxb.DataRecord[Any]] =
      ((parseScalarValueGroup(node, scalaxb.ElemName(node) :: stack, true)) ||| 
      (parseScalarValueListGroup(node, scalaxb.ElemName(node) :: stack, true)) ||| 
      (parseValueExtentGroup(node, scalaxb.ElemName(node) :: stack, true)) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ValueArray")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ValueArrayType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeValue")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CompositeValueTypable](x, scalaxb.ElemName(node) :: stack)))))
  
    def parseValueObjectGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[Any]] =
      ((parseScalarValueGroup(node, scalaxb.ElemName(node) :: stack, true)) ||| 
      (parseScalarValueListGroup(node, scalaxb.ElemName(node) :: stack, true)) ||| 
      (parseValueExtentGroup(node, scalaxb.ElemName(node) :: stack, true)) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ValueArray")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ValueArrayType](x, scalaxb.ElemName(node) :: stack)))) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeValue")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CompositeValueTypable](x, scalaxb.ElemName(node) :: stack)))))
    
    def parsemixedValueObjectGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      ((parsemixedScalarValueGroup(node, scalaxb.ElemName(node) :: stack)) ||| 
      (parsemixedScalarValueListGroup(node, scalaxb.ElemName(node) :: stack)) ||| 
      (parsemixedValueExtentGroup(node, scalaxb.ElemName(node) :: stack)) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ValueArray")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ValueArrayType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CompositeValue")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CompositeValueTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }))
  }


  trait Opengisgml_ScalarValueListGroupFormat extends scalaxb.AnyElemNameParser {
    def parseScalarValueListGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[scalaxb.DataRecord[Any]] =
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "BooleanList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CategoryList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeOrNullListTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "QuantityList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MeasureOrNullListTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CountList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)))))
  
    def parseScalarValueListGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[Any]] =
      (((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "BooleanList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CategoryList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeOrNullListTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "QuantityList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MeasureOrNullListTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CountList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)))))
    
    def parsemixedScalarValueListGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      (((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "BooleanList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CategoryList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.CodeOrNullListTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "QuantityList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.MeasureOrNullListTypable](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "CountList")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }))
  }

  trait DefaultOpengisgml_ReferenceSystemFormat extends scalaxb.AttributeGroupFormat[opengis.gml.ReferenceSystem] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/gml")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.ReferenceSystem] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.ReferenceSystem((node \ "@codeSpace").headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@uom").headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.ReferenceSystem, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      __obj.codeSpace foreach { x => attr = scala.xml.Attribute(null, "codeSpace", x.toString, attr) }
    __obj.uom foreach { x => attr = scala.xml.Attribute(null, "uom", x.toString, attr) }
      attr
    }
  }

  trait DefaultOpengisgmlsmil_AnimateTypeFormat extends scalaxb.ElemNameParser[opengis.gml.smil.AnimateType] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/Language")
    
    override def typeName: Option[String] = Some("animateType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.smil.AnimateType] =
      phrase(safeRep(((any(_.namespace != Some("http://www.w3.org/2001/SMIL20/Language")) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.smil.AnimateType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@attributeName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@attributeName" -> _ },
        (node \ "@attributeType").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.AttributeType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.AttributeType](scala.xml.Text("auto"), scalaxb.ElemName(node) :: stack))) map { "@attributeType" -> _ },
        (node \ "@additive").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.Additive](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.Additive](scala.xml.Text("replace"), scalaxb.ElemName(node) :: stack))) map { "@additive" -> _ },
        (node \ "@accumulate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.Accumulate](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.Accumulate](scala.xml.Text("none"), scalaxb.ElemName(node) :: stack))) map { "@accumulate" -> _ },
        (node \ "@to").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@to" -> _ },
        (node \ "@from").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@from" -> _ },
        (node \ "@by").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@by" -> _ },
        (node \ "@values").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@values" -> _ },
        (node \ "@id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@id" -> _ },
        (node \ "@class").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@class" -> _ },
        (node \ "@{http://www.w3.org/XML/1998/namespace}lang").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/XML/1998/namespace}lang" -> _ },
        (node \ "@alt").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@alt" -> _ },
        (node \ "@longdesc").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@longdesc" -> _ },
        (node \ "@begin").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@begin" -> _ },
        (node \ "@end").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@end" -> _ },
        (node \ "@dur").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@dur" -> _ },
        (node \ "@repeatDur").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@repeatDur" -> _ },
        (node \ "@repeatCount").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigDecimal](x, scalaxb.ElemName(node) :: stack)) } map { "@repeatCount" -> _ },
        (node \ "@repeat").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@repeat" -> _ },
        (node \ "@min").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@min" -> _ },
        (node \ "@max").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@max" -> _ },
        (node \ "@syncBehavior").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.SyncBehaviorType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.SyncBehaviorType](scala.xml.Text("default"), scalaxb.ElemName(node) :: stack))) map { "@syncBehavior" -> _ },
        (node \ "@syncTolerance").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@syncTolerance" -> _ },
        (node \ "@syncBehaviorDefault").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.SyncBehaviorDefaultType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.SyncBehaviorDefaultType](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack))) map { "@syncBehaviorDefault" -> _ },
        (node \ "@syncToleranceDefault").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack))) map { "@syncToleranceDefault" -> _ },
        (node \ "@restart").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.RestartTimingType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.RestartTimingType](scala.xml.Text("default"), scalaxb.ElemName(node) :: stack))) map { "@restart" -> _ },
        (node \ "@restartDefault").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.RestartDefaultType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.RestartDefaultType](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack))) map { "@restartDefault" -> _ },
        (node \ "@fill").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.FillTimingAttrsType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.FillTimingAttrsType](scala.xml.Text("default"), scalaxb.ElemName(node) :: stack))) map { "@fill" -> _ },
        (node \ "@fillDefault").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.FillDefaultType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.FillDefaultType](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack))) map { "@fillDefault" -> _ },
        (node \ "@targetElement").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@targetElement" -> _ },
        (node \ "@calcMode").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.CalcMode](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.CalcMode](scala.xml.Text("linear"), scalaxb.ElemName(node) :: stack))) map { "@calcMode" -> _ },
        (node \ "@skip-content").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[Boolean](scala.xml.Text("true"), scalaxb.ElemName(node) :: stack))) map { "@skip-content" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])] ::: (node match {
          case elem: scala.xml.Elem =>
            elem.attributes.toList flatMap {
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "attributeName" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "attributeType" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "additive" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "accumulate" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "to" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "from" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "by" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "values" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "id" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "class" => Nil
              case scala.xml.PrefixedAttribute(pre, key, value, _) if pre == elem.scope.getPrefix("http://www.w3.org/XML/1998/namespace") &&
                key == "lang" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "alt" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "longdesc" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "begin" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "end" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "dur" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "repeatDur" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "repeatCount" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "repeat" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "min" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "max" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "syncBehavior" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "syncTolerance" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "syncBehaviorDefault" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "syncToleranceDefault" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "restart" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "restartDefault" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "fill" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "fillDefault" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "targetElement" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "calcMode" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "skip-content" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) =>
                List(("@" + key, scalaxb.DataRecord(None, Some(key), value.text)))
              case scala.xml.PrefixedAttribute(pre, key, value, _) =>
                val ns = elem.scope.getURI(pre)
                List(("@{" + ns + "}" + key, scalaxb.DataRecord(Option[String](ns), Some(key), value.text)))
              case _ => Nil
            }
          case _ => Nil
        }): _*)) })
    
    override def writesAttribute(__obj: opengis.gml.smil.AnimateType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@attributeName", _) => attr = scala.xml.Attribute(null, "attributeName", __obj.attributeName.toString, attr)
        case ("@attributeType", _) => if (__obj.attributeType.toString != "auto") attr = scala.xml.Attribute(null, "attributeType", __obj.attributeType.toString, attr)
        case ("@additive", _) => if (__obj.additive.toString != "replace") attr = scala.xml.Attribute(null, "additive", __obj.additive.toString, attr)
        case ("@accumulate", _) => if (__obj.accumulate.toString != "none") attr = scala.xml.Attribute(null, "accumulate", __obj.accumulate.toString, attr)
        case ("@to", _) => __obj.to foreach { x => attr = scala.xml.Attribute(null, "to", x.toString, attr) }
        case ("@from", _) => __obj.from foreach { x => attr = scala.xml.Attribute(null, "from", x.toString, attr) }
        case ("@by", _) => __obj.by foreach { x => attr = scala.xml.Attribute(null, "by", x.toString, attr) }
        case ("@values", _) => __obj.values foreach { x => attr = scala.xml.Attribute(null, "values", x.toString, attr) }
        case ("@id", _) => __obj.id foreach { x => attr = scala.xml.Attribute(null, "id", x.toString, attr) }
        case ("@class", _) => __obj.classValue foreach { x => attr = scala.xml.Attribute(null, "class", x.toString, attr) }
        case ("@{http://www.w3.org/XML/1998/namespace}lang", _) => __obj.xmllang foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/XML/1998/namespace"), "lang", x.toString, attr) }
        case ("@alt", _) => __obj.alt foreach { x => attr = scala.xml.Attribute(null, "alt", x.toString, attr) }
        case ("@longdesc", _) => __obj.longdesc foreach { x => attr = scala.xml.Attribute(null, "longdesc", x.toString, attr) }
        case ("@begin", _) => __obj.begin foreach { x => attr = scala.xml.Attribute(null, "begin", x.toString, attr) }
        case ("@end", _) => __obj.end foreach { x => attr = scala.xml.Attribute(null, "end", x.toString, attr) }
        case ("@dur", _) => __obj.dur foreach { x => attr = scala.xml.Attribute(null, "dur", x.toString, attr) }
        case ("@repeatDur", _) => __obj.repeatDur foreach { x => attr = scala.xml.Attribute(null, "repeatDur", x.toString, attr) }
        case ("@repeatCount", _) => __obj.repeatCount foreach { x => attr = scala.xml.Attribute(null, "repeatCount", x.bigDecimal.toPlainString, attr) }
        case ("@repeat", _) => __obj.repeat foreach { x => attr = scala.xml.Attribute(null, "repeat", x.toString, attr) }
        case ("@min", _) => __obj.min foreach { x => attr = scala.xml.Attribute(null, "min", x.toString, attr) }
        case ("@max", _) => __obj.max foreach { x => attr = scala.xml.Attribute(null, "max", x.toString, attr) }
        case ("@syncBehavior", _) => if (__obj.syncBehavior.toString != "default") attr = scala.xml.Attribute(null, "syncBehavior", __obj.syncBehavior.toString, attr)
        case ("@syncTolerance", _) => __obj.syncTolerance foreach { x => attr = scala.xml.Attribute(null, "syncTolerance", x.toString, attr) }
        case ("@syncBehaviorDefault", _) => if (__obj.syncBehaviorDefault.toString != "inherit") attr = scala.xml.Attribute(null, "syncBehaviorDefault", __obj.syncBehaviorDefault.toString, attr)
        case ("@syncToleranceDefault", _) => if (__obj.syncToleranceDefault.toString != "inherit") attr = scala.xml.Attribute(null, "syncToleranceDefault", __obj.syncToleranceDefault.toString, attr)
        case ("@restart", _) => if (__obj.restart.toString != "default") attr = scala.xml.Attribute(null, "restart", __obj.restart.toString, attr)
        case ("@restartDefault", _) => if (__obj.restartDefault.toString != "inherit") attr = scala.xml.Attribute(null, "restartDefault", __obj.restartDefault.toString, attr)
        case ("@fill", _) => if (__obj.fill.toString != "default") attr = scala.xml.Attribute(null, "fill", __obj.fill.toString, attr)
        case ("@fillDefault", _) => if (__obj.fillDefault.toString != "inherit") attr = scala.xml.Attribute(null, "fillDefault", __obj.fillDefault.toString, attr)
        case ("@targetElement", _) => __obj.targetElement foreach { x => attr = scala.xml.Attribute(null, "targetElement", x.toString, attr) }
        case ("@calcMode", _) => if (__obj.calcMode.toString != "linear") attr = scala.xml.Attribute(null, "calcMode", __obj.calcMode.toString, attr)
        case ("@skip-content", _) => if (__obj.skipu45content.toString != "true") attr = scala.xml.Attribute(null, "skip-content", __obj.skipu45content.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.smil.AnimateType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.animatetypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgmlsmil_AnimateMotionTypeFormat extends scalaxb.ElemNameParser[opengis.gml.smil.AnimateMotionType] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/Language")
    
    override def typeName: Option[String] = Some("animateMotionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.smil.AnimateMotionType] =
      phrase(safeRep(((any(_.namespace != Some("http://www.w3.org/2001/SMIL20/Language")) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.smil.AnimateMotionType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@additive").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.Additive](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.Additive](scala.xml.Text("replace"), scalaxb.ElemName(node) :: stack))) map { "@additive" -> _ },
        (node \ "@accumulate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.Accumulate](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.Accumulate](scala.xml.Text("none"), scalaxb.ElemName(node) :: stack))) map { "@accumulate" -> _ },
        (node \ "@to").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@to" -> _ },
        (node \ "@from").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@from" -> _ },
        (node \ "@by").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@by" -> _ },
        (node \ "@values").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@values" -> _ },
        (node \ "@origin").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@origin" -> _ },
        (node \ "@id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@id" -> _ },
        (node \ "@class").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@class" -> _ },
        (node \ "@{http://www.w3.org/XML/1998/namespace}lang").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/XML/1998/namespace}lang" -> _ },
        (node \ "@alt").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@alt" -> _ },
        (node \ "@longdesc").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@longdesc" -> _ },
        (node \ "@begin").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@begin" -> _ },
        (node \ "@end").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@end" -> _ },
        (node \ "@dur").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@dur" -> _ },
        (node \ "@repeatDur").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@repeatDur" -> _ },
        (node \ "@repeatCount").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigDecimal](x, scalaxb.ElemName(node) :: stack)) } map { "@repeatCount" -> _ },
        (node \ "@repeat").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@repeat" -> _ },
        (node \ "@min").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@min" -> _ },
        (node \ "@max").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@max" -> _ },
        (node \ "@syncBehavior").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.SyncBehaviorType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.SyncBehaviorType](scala.xml.Text("default"), scalaxb.ElemName(node) :: stack))) map { "@syncBehavior" -> _ },
        (node \ "@syncTolerance").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@syncTolerance" -> _ },
        (node \ "@syncBehaviorDefault").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.SyncBehaviorDefaultType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.SyncBehaviorDefaultType](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack))) map { "@syncBehaviorDefault" -> _ },
        (node \ "@syncToleranceDefault").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack))) map { "@syncToleranceDefault" -> _ },
        (node \ "@restart").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.RestartTimingType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.RestartTimingType](scala.xml.Text("default"), scalaxb.ElemName(node) :: stack))) map { "@restart" -> _ },
        (node \ "@restartDefault").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.RestartDefaultType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.RestartDefaultType](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack))) map { "@restartDefault" -> _ },
        (node \ "@fill").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.FillTimingAttrsType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.FillTimingAttrsType](scala.xml.Text("default"), scalaxb.ElemName(node) :: stack))) map { "@fill" -> _ },
        (node \ "@fillDefault").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.FillDefaultType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.FillDefaultType](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack))) map { "@fillDefault" -> _ },
        (node \ "@targetElement").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@targetElement" -> _ },
        (node \ "@calcMode").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.CalcMode](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.CalcMode](scala.xml.Text("linear"), scalaxb.ElemName(node) :: stack))) map { "@calcMode" -> _ },
        (node \ "@skip-content").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[Boolean](scala.xml.Text("true"), scalaxb.ElemName(node) :: stack))) map { "@skip-content" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])] ::: (node match {
          case elem: scala.xml.Elem =>
            elem.attributes.toList flatMap {
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "additive" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "accumulate" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "to" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "from" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "by" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "values" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "origin" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "id" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "class" => Nil
              case scala.xml.PrefixedAttribute(pre, key, value, _) if pre == elem.scope.getPrefix("http://www.w3.org/XML/1998/namespace") &&
                key == "lang" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "alt" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "longdesc" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "begin" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "end" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "dur" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "repeatDur" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "repeatCount" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "repeat" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "min" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "max" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "syncBehavior" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "syncTolerance" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "syncBehaviorDefault" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "syncToleranceDefault" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "restart" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "restartDefault" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "fill" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "fillDefault" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "targetElement" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "calcMode" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "skip-content" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) =>
                List(("@" + key, scalaxb.DataRecord(None, Some(key), value.text)))
              case scala.xml.PrefixedAttribute(pre, key, value, _) =>
                val ns = elem.scope.getURI(pre)
                List(("@{" + ns + "}" + key, scalaxb.DataRecord(Option[String](ns), Some(key), value.text)))
              case _ => Nil
            }
          case _ => Nil
        }): _*)) })
    
    override def writesAttribute(__obj: opengis.gml.smil.AnimateMotionType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@additive", _) => if (__obj.additive.toString != "replace") attr = scala.xml.Attribute(null, "additive", __obj.additive.toString, attr)
        case ("@accumulate", _) => if (__obj.accumulate.toString != "none") attr = scala.xml.Attribute(null, "accumulate", __obj.accumulate.toString, attr)
        case ("@to", _) => __obj.to foreach { x => attr = scala.xml.Attribute(null, "to", x.toString, attr) }
        case ("@from", _) => __obj.from foreach { x => attr = scala.xml.Attribute(null, "from", x.toString, attr) }
        case ("@by", _) => __obj.by foreach { x => attr = scala.xml.Attribute(null, "by", x.toString, attr) }
        case ("@values", _) => __obj.values foreach { x => attr = scala.xml.Attribute(null, "values", x.toString, attr) }
        case ("@origin", _) => __obj.origin foreach { x => attr = scala.xml.Attribute(null, "origin", x.toString, attr) }
        case ("@id", _) => __obj.id foreach { x => attr = scala.xml.Attribute(null, "id", x.toString, attr) }
        case ("@class", _) => __obj.classValue foreach { x => attr = scala.xml.Attribute(null, "class", x.toString, attr) }
        case ("@{http://www.w3.org/XML/1998/namespace}lang", _) => __obj.xmllang foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/XML/1998/namespace"), "lang", x.toString, attr) }
        case ("@alt", _) => __obj.alt foreach { x => attr = scala.xml.Attribute(null, "alt", x.toString, attr) }
        case ("@longdesc", _) => __obj.longdesc foreach { x => attr = scala.xml.Attribute(null, "longdesc", x.toString, attr) }
        case ("@begin", _) => __obj.begin foreach { x => attr = scala.xml.Attribute(null, "begin", x.toString, attr) }
        case ("@end", _) => __obj.end foreach { x => attr = scala.xml.Attribute(null, "end", x.toString, attr) }
        case ("@dur", _) => __obj.dur foreach { x => attr = scala.xml.Attribute(null, "dur", x.toString, attr) }
        case ("@repeatDur", _) => __obj.repeatDur foreach { x => attr = scala.xml.Attribute(null, "repeatDur", x.toString, attr) }
        case ("@repeatCount", _) => __obj.repeatCount foreach { x => attr = scala.xml.Attribute(null, "repeatCount", x.bigDecimal.toPlainString, attr) }
        case ("@repeat", _) => __obj.repeat foreach { x => attr = scala.xml.Attribute(null, "repeat", x.toString, attr) }
        case ("@min", _) => __obj.min foreach { x => attr = scala.xml.Attribute(null, "min", x.toString, attr) }
        case ("@max", _) => __obj.max foreach { x => attr = scala.xml.Attribute(null, "max", x.toString, attr) }
        case ("@syncBehavior", _) => if (__obj.syncBehavior.toString != "default") attr = scala.xml.Attribute(null, "syncBehavior", __obj.syncBehavior.toString, attr)
        case ("@syncTolerance", _) => __obj.syncTolerance foreach { x => attr = scala.xml.Attribute(null, "syncTolerance", x.toString, attr) }
        case ("@syncBehaviorDefault", _) => if (__obj.syncBehaviorDefault.toString != "inherit") attr = scala.xml.Attribute(null, "syncBehaviorDefault", __obj.syncBehaviorDefault.toString, attr)
        case ("@syncToleranceDefault", _) => if (__obj.syncToleranceDefault.toString != "inherit") attr = scala.xml.Attribute(null, "syncToleranceDefault", __obj.syncToleranceDefault.toString, attr)
        case ("@restart", _) => if (__obj.restart.toString != "default") attr = scala.xml.Attribute(null, "restart", __obj.restart.toString, attr)
        case ("@restartDefault", _) => if (__obj.restartDefault.toString != "inherit") attr = scala.xml.Attribute(null, "restartDefault", __obj.restartDefault.toString, attr)
        case ("@fill", _) => if (__obj.fill.toString != "default") attr = scala.xml.Attribute(null, "fill", __obj.fill.toString, attr)
        case ("@fillDefault", _) => if (__obj.fillDefault.toString != "inherit") attr = scala.xml.Attribute(null, "fillDefault", __obj.fillDefault.toString, attr)
        case ("@targetElement", _) => __obj.targetElement foreach { x => attr = scala.xml.Attribute(null, "targetElement", x.toString, attr) }
        case ("@calcMode", _) => if (__obj.calcMode.toString != "linear") attr = scala.xml.Attribute(null, "calcMode", __obj.calcMode.toString, attr)
        case ("@skip-content", _) => if (__obj.skipu45content.toString != "true") attr = scala.xml.Attribute(null, "skip-content", __obj.skipu45content.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.smil.AnimateMotionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.animatemotiontypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgmlsmil_AnimateColorTypeFormat extends scalaxb.ElemNameParser[opengis.gml.smil.AnimateColorType] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/Language")
    
    override def typeName: Option[String] = Some("animateColorType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.smil.AnimateColorType] =
      phrase(safeRep(((any(_.namespace != Some("http://www.w3.org/2001/SMIL20/Language")) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.smil.AnimateColorType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@attributeName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@attributeName" -> _ },
        (node \ "@attributeType").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.AttributeType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.AttributeType](scala.xml.Text("auto"), scalaxb.ElemName(node) :: stack))) map { "@attributeType" -> _ },
        (node \ "@additive").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.Additive](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.Additive](scala.xml.Text("replace"), scalaxb.ElemName(node) :: stack))) map { "@additive" -> _ },
        (node \ "@accumulate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.Accumulate](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.Accumulate](scala.xml.Text("none"), scalaxb.ElemName(node) :: stack))) map { "@accumulate" -> _ },
        (node \ "@to").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@to" -> _ },
        (node \ "@from").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@from" -> _ },
        (node \ "@by").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@by" -> _ },
        (node \ "@values").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@values" -> _ },
        (node \ "@id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@id" -> _ },
        (node \ "@class").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@class" -> _ },
        (node \ "@{http://www.w3.org/XML/1998/namespace}lang").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/XML/1998/namespace}lang" -> _ },
        (node \ "@alt").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@alt" -> _ },
        (node \ "@longdesc").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@longdesc" -> _ },
        (node \ "@begin").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@begin" -> _ },
        (node \ "@end").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@end" -> _ },
        (node \ "@dur").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@dur" -> _ },
        (node \ "@repeatDur").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@repeatDur" -> _ },
        (node \ "@repeatCount").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigDecimal](x, scalaxb.ElemName(node) :: stack)) } map { "@repeatCount" -> _ },
        (node \ "@repeat").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@repeat" -> _ },
        (node \ "@min").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@min" -> _ },
        (node \ "@max").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@max" -> _ },
        (node \ "@syncBehavior").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.SyncBehaviorType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.SyncBehaviorType](scala.xml.Text("default"), scalaxb.ElemName(node) :: stack))) map { "@syncBehavior" -> _ },
        (node \ "@syncTolerance").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@syncTolerance" -> _ },
        (node \ "@syncBehaviorDefault").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.SyncBehaviorDefaultType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.SyncBehaviorDefaultType](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack))) map { "@syncBehaviorDefault" -> _ },
        (node \ "@syncToleranceDefault").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack))) map { "@syncToleranceDefault" -> _ },
        (node \ "@restart").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.RestartTimingType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.RestartTimingType](scala.xml.Text("default"), scalaxb.ElemName(node) :: stack))) map { "@restart" -> _ },
        (node \ "@restartDefault").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.RestartDefaultType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.RestartDefaultType](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack))) map { "@restartDefault" -> _ },
        (node \ "@fill").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.FillTimingAttrsType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.FillTimingAttrsType](scala.xml.Text("default"), scalaxb.ElemName(node) :: stack))) map { "@fill" -> _ },
        (node \ "@fillDefault").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.FillDefaultType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.FillDefaultType](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack))) map { "@fillDefault" -> _ },
        (node \ "@targetElement").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@targetElement" -> _ },
        (node \ "@calcMode").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.CalcMode](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.CalcMode](scala.xml.Text("linear"), scalaxb.ElemName(node) :: stack))) map { "@calcMode" -> _ },
        (node \ "@skip-content").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[Boolean](scala.xml.Text("true"), scalaxb.ElemName(node) :: stack))) map { "@skip-content" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])] ::: (node match {
          case elem: scala.xml.Elem =>
            elem.attributes.toList flatMap {
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "attributeName" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "attributeType" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "additive" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "accumulate" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "to" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "from" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "by" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "values" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "id" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "class" => Nil
              case scala.xml.PrefixedAttribute(pre, key, value, _) if pre == elem.scope.getPrefix("http://www.w3.org/XML/1998/namespace") &&
                key == "lang" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "alt" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "longdesc" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "begin" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "end" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "dur" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "repeatDur" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "repeatCount" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "repeat" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "min" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "max" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "syncBehavior" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "syncTolerance" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "syncBehaviorDefault" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "syncToleranceDefault" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "restart" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "restartDefault" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "fill" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "fillDefault" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "targetElement" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "calcMode" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "skip-content" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) =>
                List(("@" + key, scalaxb.DataRecord(None, Some(key), value.text)))
              case scala.xml.PrefixedAttribute(pre, key, value, _) =>
                val ns = elem.scope.getURI(pre)
                List(("@{" + ns + "}" + key, scalaxb.DataRecord(Option[String](ns), Some(key), value.text)))
              case _ => Nil
            }
          case _ => Nil
        }): _*)) })
    
    override def writesAttribute(__obj: opengis.gml.smil.AnimateColorType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@attributeName", _) => attr = scala.xml.Attribute(null, "attributeName", __obj.attributeName.toString, attr)
        case ("@attributeType", _) => if (__obj.attributeType.toString != "auto") attr = scala.xml.Attribute(null, "attributeType", __obj.attributeType.toString, attr)
        case ("@additive", _) => if (__obj.additive.toString != "replace") attr = scala.xml.Attribute(null, "additive", __obj.additive.toString, attr)
        case ("@accumulate", _) => if (__obj.accumulate.toString != "none") attr = scala.xml.Attribute(null, "accumulate", __obj.accumulate.toString, attr)
        case ("@to", _) => __obj.to foreach { x => attr = scala.xml.Attribute(null, "to", x.toString, attr) }
        case ("@from", _) => __obj.from foreach { x => attr = scala.xml.Attribute(null, "from", x.toString, attr) }
        case ("@by", _) => __obj.by foreach { x => attr = scala.xml.Attribute(null, "by", x.toString, attr) }
        case ("@values", _) => __obj.values foreach { x => attr = scala.xml.Attribute(null, "values", x.toString, attr) }
        case ("@id", _) => __obj.id foreach { x => attr = scala.xml.Attribute(null, "id", x.toString, attr) }
        case ("@class", _) => __obj.classValue foreach { x => attr = scala.xml.Attribute(null, "class", x.toString, attr) }
        case ("@{http://www.w3.org/XML/1998/namespace}lang", _) => __obj.xmllang foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/XML/1998/namespace"), "lang", x.toString, attr) }
        case ("@alt", _) => __obj.alt foreach { x => attr = scala.xml.Attribute(null, "alt", x.toString, attr) }
        case ("@longdesc", _) => __obj.longdesc foreach { x => attr = scala.xml.Attribute(null, "longdesc", x.toString, attr) }
        case ("@begin", _) => __obj.begin foreach { x => attr = scala.xml.Attribute(null, "begin", x.toString, attr) }
        case ("@end", _) => __obj.end foreach { x => attr = scala.xml.Attribute(null, "end", x.toString, attr) }
        case ("@dur", _) => __obj.dur foreach { x => attr = scala.xml.Attribute(null, "dur", x.toString, attr) }
        case ("@repeatDur", _) => __obj.repeatDur foreach { x => attr = scala.xml.Attribute(null, "repeatDur", x.toString, attr) }
        case ("@repeatCount", _) => __obj.repeatCount foreach { x => attr = scala.xml.Attribute(null, "repeatCount", x.bigDecimal.toPlainString, attr) }
        case ("@repeat", _) => __obj.repeat foreach { x => attr = scala.xml.Attribute(null, "repeat", x.toString, attr) }
        case ("@min", _) => __obj.min foreach { x => attr = scala.xml.Attribute(null, "min", x.toString, attr) }
        case ("@max", _) => __obj.max foreach { x => attr = scala.xml.Attribute(null, "max", x.toString, attr) }
        case ("@syncBehavior", _) => if (__obj.syncBehavior.toString != "default") attr = scala.xml.Attribute(null, "syncBehavior", __obj.syncBehavior.toString, attr)
        case ("@syncTolerance", _) => __obj.syncTolerance foreach { x => attr = scala.xml.Attribute(null, "syncTolerance", x.toString, attr) }
        case ("@syncBehaviorDefault", _) => if (__obj.syncBehaviorDefault.toString != "inherit") attr = scala.xml.Attribute(null, "syncBehaviorDefault", __obj.syncBehaviorDefault.toString, attr)
        case ("@syncToleranceDefault", _) => if (__obj.syncToleranceDefault.toString != "inherit") attr = scala.xml.Attribute(null, "syncToleranceDefault", __obj.syncToleranceDefault.toString, attr)
        case ("@restart", _) => if (__obj.restart.toString != "default") attr = scala.xml.Attribute(null, "restart", __obj.restart.toString, attr)
        case ("@restartDefault", _) => if (__obj.restartDefault.toString != "inherit") attr = scala.xml.Attribute(null, "restartDefault", __obj.restartDefault.toString, attr)
        case ("@fill", _) => if (__obj.fill.toString != "default") attr = scala.xml.Attribute(null, "fill", __obj.fill.toString, attr)
        case ("@fillDefault", _) => if (__obj.fillDefault.toString != "inherit") attr = scala.xml.Attribute(null, "fillDefault", __obj.fillDefault.toString, attr)
        case ("@targetElement", _) => __obj.targetElement foreach { x => attr = scala.xml.Attribute(null, "targetElement", x.toString, attr) }
        case ("@calcMode", _) => if (__obj.calcMode.toString != "linear") attr = scala.xml.Attribute(null, "calcMode", __obj.calcMode.toString, attr)
        case ("@skip-content", _) => if (__obj.skipu45content.toString != "true") attr = scala.xml.Attribute(null, "skip-content", __obj.skipu45content.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.smil.AnimateColorType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.animatecolortypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgmlsmil_SetTypeFormat extends scalaxb.ElemNameParser[opengis.gml.smil.SetType] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/Language")
    
    override def typeName: Option[String] = Some("setType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.gml.smil.SetType] =
      phrase(safeRep(((any(_.namespace != Some("http://www.w3.org/2001/SMIL20/Language")) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.gml.smil.SetType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@attributeName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@attributeName" -> _ },
        (node \ "@attributeType").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.AttributeType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.AttributeType](scala.xml.Text("auto"), scalaxb.ElemName(node) :: stack))) map { "@attributeType" -> _ },
        (node \ "@to").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@to" -> _ },
        (node \ "@id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@id" -> _ },
        (node \ "@class").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@class" -> _ },
        (node \ "@{http://www.w3.org/XML/1998/namespace}lang").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/XML/1998/namespace}lang" -> _ },
        (node \ "@alt").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@alt" -> _ },
        (node \ "@longdesc").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@longdesc" -> _ },
        (node \ "@begin").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@begin" -> _ },
        (node \ "@end").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@end" -> _ },
        (node \ "@dur").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@dur" -> _ },
        (node \ "@repeatDur").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@repeatDur" -> _ },
        (node \ "@repeatCount").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigDecimal](x, scalaxb.ElemName(node) :: stack)) } map { "@repeatCount" -> _ },
        (node \ "@repeat").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@repeat" -> _ },
        (node \ "@min").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@min" -> _ },
        (node \ "@max").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@max" -> _ },
        (node \ "@syncBehavior").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.SyncBehaviorType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.SyncBehaviorType](scala.xml.Text("default"), scalaxb.ElemName(node) :: stack))) map { "@syncBehavior" -> _ },
        (node \ "@syncTolerance").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@syncTolerance" -> _ },
        (node \ "@syncBehaviorDefault").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.SyncBehaviorDefaultType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.SyncBehaviorDefaultType](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack))) map { "@syncBehaviorDefault" -> _ },
        (node \ "@syncToleranceDefault").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack))) map { "@syncToleranceDefault" -> _ },
        (node \ "@restart").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.RestartTimingType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.RestartTimingType](scala.xml.Text("default"), scalaxb.ElemName(node) :: stack))) map { "@restart" -> _ },
        (node \ "@restartDefault").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.RestartDefaultType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.RestartDefaultType](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack))) map { "@restartDefault" -> _ },
        (node \ "@fill").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.FillTimingAttrsType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.FillTimingAttrsType](scala.xml.Text("default"), scalaxb.ElemName(node) :: stack))) map { "@fill" -> _ },
        (node \ "@fillDefault").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.FillDefaultType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.FillDefaultType](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack))) map { "@fillDefault" -> _ },
        (node \ "@targetElement").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@targetElement" -> _ },
        (node \ "@skip-content").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[Boolean](scala.xml.Text("true"), scalaxb.ElemName(node) :: stack))) map { "@skip-content" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])] ::: (node match {
          case elem: scala.xml.Elem =>
            elem.attributes.toList flatMap {
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "attributeName" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "attributeType" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "to" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "id" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "class" => Nil
              case scala.xml.PrefixedAttribute(pre, key, value, _) if pre == elem.scope.getPrefix("http://www.w3.org/XML/1998/namespace") &&
                key == "lang" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "alt" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "longdesc" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "begin" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "end" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "dur" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "repeatDur" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "repeatCount" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "repeat" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "min" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "max" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "syncBehavior" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "syncTolerance" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "syncBehaviorDefault" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "syncToleranceDefault" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "restart" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "restartDefault" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "fill" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "fillDefault" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "targetElement" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) if key == "skip-content" => Nil
              case scala.xml.UnprefixedAttribute(key, value, _) =>
                List(("@" + key, scalaxb.DataRecord(None, Some(key), value.text)))
              case scala.xml.PrefixedAttribute(pre, key, value, _) =>
                val ns = elem.scope.getURI(pre)
                List(("@{" + ns + "}" + key, scalaxb.DataRecord(Option[String](ns), Some(key), value.text)))
              case _ => Nil
            }
          case _ => Nil
        }): _*)) })
    
    override def writesAttribute(__obj: opengis.gml.smil.SetType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@attributeName", _) => attr = scala.xml.Attribute(null, "attributeName", __obj.attributeName.toString, attr)
        case ("@attributeType", _) => if (__obj.attributeType.toString != "auto") attr = scala.xml.Attribute(null, "attributeType", __obj.attributeType.toString, attr)
        case ("@to", _) => __obj.to foreach { x => attr = scala.xml.Attribute(null, "to", x.toString, attr) }
        case ("@id", _) => __obj.id foreach { x => attr = scala.xml.Attribute(null, "id", x.toString, attr) }
        case ("@class", _) => __obj.classValue foreach { x => attr = scala.xml.Attribute(null, "class", x.toString, attr) }
        case ("@{http://www.w3.org/XML/1998/namespace}lang", _) => __obj.xmllang foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/XML/1998/namespace"), "lang", x.toString, attr) }
        case ("@alt", _) => __obj.alt foreach { x => attr = scala.xml.Attribute(null, "alt", x.toString, attr) }
        case ("@longdesc", _) => __obj.longdesc foreach { x => attr = scala.xml.Attribute(null, "longdesc", x.toString, attr) }
        case ("@begin", _) => __obj.begin foreach { x => attr = scala.xml.Attribute(null, "begin", x.toString, attr) }
        case ("@end", _) => __obj.end foreach { x => attr = scala.xml.Attribute(null, "end", x.toString, attr) }
        case ("@dur", _) => __obj.dur foreach { x => attr = scala.xml.Attribute(null, "dur", x.toString, attr) }
        case ("@repeatDur", _) => __obj.repeatDur foreach { x => attr = scala.xml.Attribute(null, "repeatDur", x.toString, attr) }
        case ("@repeatCount", _) => __obj.repeatCount foreach { x => attr = scala.xml.Attribute(null, "repeatCount", x.bigDecimal.toPlainString, attr) }
        case ("@repeat", _) => __obj.repeat foreach { x => attr = scala.xml.Attribute(null, "repeat", x.toString, attr) }
        case ("@min", _) => __obj.min foreach { x => attr = scala.xml.Attribute(null, "min", x.toString, attr) }
        case ("@max", _) => __obj.max foreach { x => attr = scala.xml.Attribute(null, "max", x.toString, attr) }
        case ("@syncBehavior", _) => if (__obj.syncBehavior.toString != "default") attr = scala.xml.Attribute(null, "syncBehavior", __obj.syncBehavior.toString, attr)
        case ("@syncTolerance", _) => __obj.syncTolerance foreach { x => attr = scala.xml.Attribute(null, "syncTolerance", x.toString, attr) }
        case ("@syncBehaviorDefault", _) => if (__obj.syncBehaviorDefault.toString != "inherit") attr = scala.xml.Attribute(null, "syncBehaviorDefault", __obj.syncBehaviorDefault.toString, attr)
        case ("@syncToleranceDefault", _) => if (__obj.syncToleranceDefault.toString != "inherit") attr = scala.xml.Attribute(null, "syncToleranceDefault", __obj.syncToleranceDefault.toString, attr)
        case ("@restart", _) => if (__obj.restart.toString != "default") attr = scala.xml.Attribute(null, "restart", __obj.restart.toString, attr)
        case ("@restartDefault", _) => if (__obj.restartDefault.toString != "inherit") attr = scala.xml.Attribute(null, "restartDefault", __obj.restartDefault.toString, attr)
        case ("@fill", _) => if (__obj.fill.toString != "default") attr = scala.xml.Attribute(null, "fill", __obj.fill.toString, attr)
        case ("@fillDefault", _) => if (__obj.fillDefault.toString != "inherit") attr = scala.xml.Attribute(null, "fillDefault", __obj.fillDefault.toString, attr)
        case ("@targetElement", _) => __obj.targetElement foreach { x => attr = scala.xml.Attribute(null, "targetElement", x.toString, attr) }
        case ("@skip-content", _) => if (__obj.skipu45content.toString != "true") attr = scala.xml.Attribute(null, "skip-content", __obj.skipu45content.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.smil.SetType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.settypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisgmlsmil_BasicTimingAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.BasicTimingAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/Language")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.BasicTimingAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.BasicTimingAttrs((node \ "@begin").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@end").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@dur").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@repeatDur").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@repeatCount").headOption map { scalaxb.fromXML[BigDecimal](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@repeat").headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@min").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@max").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.BasicTimingAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      __obj.begin foreach { x => attr = scala.xml.Attribute(null, "begin", x.toString, attr) }
    __obj.end foreach { x => attr = scala.xml.Attribute(null, "end", x.toString, attr) }
    __obj.dur foreach { x => attr = scala.xml.Attribute(null, "dur", x.toString, attr) }
    __obj.repeatDur foreach { x => attr = scala.xml.Attribute(null, "repeatDur", x.toString, attr) }
    __obj.repeatCount foreach { x => attr = scala.xml.Attribute(null, "repeatCount", x.bigDecimal.toPlainString, attr) }
    __obj.repeat foreach { x => attr = scala.xml.Attribute(null, "repeat", x.toString, attr) }
    __obj.min foreach { x => attr = scala.xml.Attribute(null, "min", x.toString, attr) }
    __obj.max foreach { x => attr = scala.xml.Attribute(null, "max", x.toString, attr) }
      attr
    }
  }

  trait DefaultOpengisgmlsmil_CoreAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.CoreAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/Language")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.CoreAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.CoreAttrs((node \ "@id").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@class").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/XML/1998/namespace}lang").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@alt").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@longdesc").headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.CoreAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      __obj.id foreach { x => attr = scala.xml.Attribute(null, "id", x.toString, attr) }
    __obj.classValue foreach { x => attr = scala.xml.Attribute(null, "class", x.toString, attr) }
    __obj.xmllang foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/XML/1998/namespace"), "lang", x.toString, attr) }
    __obj.alt foreach { x => attr = scala.xml.Attribute(null, "alt", x.toString, attr) }
    __obj.longdesc foreach { x => attr = scala.xml.Attribute(null, "longdesc", x.toString, attr) }
      attr
    }
  }

  trait DefaultOpengisgmlsmil_TimingAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.TimingAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/Language")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.TimingAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.TimingAttrs((node \ "@begin").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@end").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@dur").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@repeatDur").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@repeatCount").headOption map { scalaxb.fromXML[BigDecimal](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@repeat").headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@min").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@max").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@syncBehavior").headOption map { scalaxb.fromXML[opengis.gml.smil.SyncBehaviorType](_, scalaxb.ElemName(node) :: stack) } getOrElse { scalaxb.fromXML[opengis.gml.smil.SyncBehaviorType](scala.xml.Text("default"), scalaxb.ElemName(node) :: stack) },
      (node \ "@syncTolerance").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@syncBehaviorDefault").headOption map { scalaxb.fromXML[opengis.gml.smil.SyncBehaviorDefaultType](_, scalaxb.ElemName(node) :: stack) } getOrElse { scalaxb.fromXML[opengis.gml.smil.SyncBehaviorDefaultType](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack) },
      (node \ "@syncToleranceDefault").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) } getOrElse { scalaxb.fromXML[String](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack) },
      (node \ "@restart").headOption map { scalaxb.fromXML[opengis.gml.smil.RestartTimingType](_, scalaxb.ElemName(node) :: stack) } getOrElse { scalaxb.fromXML[opengis.gml.smil.RestartTimingType](scala.xml.Text("default"), scalaxb.ElemName(node) :: stack) },
      (node \ "@restartDefault").headOption map { scalaxb.fromXML[opengis.gml.smil.RestartDefaultType](_, scalaxb.ElemName(node) :: stack) } getOrElse { scalaxb.fromXML[opengis.gml.smil.RestartDefaultType](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack) },
      (node \ "@fill").headOption map { scalaxb.fromXML[opengis.gml.smil.FillTimingAttrsType](_, scalaxb.ElemName(node) :: stack) } getOrElse { scalaxb.fromXML[opengis.gml.smil.FillTimingAttrsType](scala.xml.Text("default"), scalaxb.ElemName(node) :: stack) },
      (node \ "@fillDefault").headOption map { scalaxb.fromXML[opengis.gml.smil.FillDefaultType](_, scalaxb.ElemName(node) :: stack) } getOrElse { scalaxb.fromXML[opengis.gml.smil.FillDefaultType](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.TimingAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      __obj.begin foreach { x => attr = scala.xml.Attribute(null, "begin", x.toString, attr) }
    __obj.end foreach { x => attr = scala.xml.Attribute(null, "end", x.toString, attr) }
    __obj.dur foreach { x => attr = scala.xml.Attribute(null, "dur", x.toString, attr) }
    __obj.repeatDur foreach { x => attr = scala.xml.Attribute(null, "repeatDur", x.toString, attr) }
    __obj.repeatCount foreach { x => attr = scala.xml.Attribute(null, "repeatCount", x.bigDecimal.toPlainString, attr) }
    __obj.repeat foreach { x => attr = scala.xml.Attribute(null, "repeat", x.toString, attr) }
    __obj.min foreach { x => attr = scala.xml.Attribute(null, "min", x.toString, attr) }
    __obj.max foreach { x => attr = scala.xml.Attribute(null, "max", x.toString, attr) }
    if (__obj.syncBehavior.toString != "default") attr = scala.xml.Attribute(null, "syncBehavior", __obj.syncBehavior.toString, attr)
    __obj.syncTolerance foreach { x => attr = scala.xml.Attribute(null, "syncTolerance", x.toString, attr) }
    if (__obj.syncBehaviorDefault.toString != "inherit") attr = scala.xml.Attribute(null, "syncBehaviorDefault", __obj.syncBehaviorDefault.toString, attr)
    if (__obj.syncToleranceDefault.toString != "inherit") attr = scala.xml.Attribute(null, "syncToleranceDefault", __obj.syncToleranceDefault.toString, attr)
    if (__obj.restart.toString != "default") attr = scala.xml.Attribute(null, "restart", __obj.restart.toString, attr)
    if (__obj.restartDefault.toString != "inherit") attr = scala.xml.Attribute(null, "restartDefault", __obj.restartDefault.toString, attr)
    if (__obj.fill.toString != "default") attr = scala.xml.Attribute(null, "fill", __obj.fill.toString, attr)
    if (__obj.fillDefault.toString != "inherit") attr = scala.xml.Attribute(null, "fillDefault", __obj.fillDefault.toString, attr)
      attr
    }
  }

  trait DefaultOpengisgmlsmil_AnimatePrototypableFormat extends scalaxb.XMLFormat[opengis.gml.smil.AnimatePrototypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.AnimatePrototypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.w3.org/2001/SMIL20/Language"), Some("animateType")) => Right(scalaxb.fromXML[opengis.gml.smil.AnimateType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.smil.AnimatePrototype](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.smil.AnimatePrototypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.smil.AnimateType => scalaxb.toXML[opengis.gml.smil.AnimateType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.smil.AnimatePrototype => scalaxb.toXML[opengis.gml.smil.AnimatePrototype](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgmlsmil_AnimatePrototypeFormat extends scalaxb.XMLFormat[opengis.gml.smil.AnimatePrototype] with scalaxb.CanWriteChildNodes[opengis.gml.smil.AnimatePrototype] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.AnimatePrototype] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.AnimatePrototype(scala.collection.immutable.ListMap(List(
        (node \ "@attributeName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@attributeName" -> _ },
        (node \ "@attributeType").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.AttributeType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.AttributeType](scala.xml.Text("auto"), scalaxb.ElemName(node) :: stack))) map { "@attributeType" -> _ },
        (node \ "@additive").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.Additive](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.Additive](scala.xml.Text("replace"), scalaxb.ElemName(node) :: stack))) map { "@additive" -> _ },
        (node \ "@accumulate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.Accumulate](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.Accumulate](scala.xml.Text("none"), scalaxb.ElemName(node) :: stack))) map { "@accumulate" -> _ },
        (node \ "@to").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@to" -> _ },
        (node \ "@from").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@from" -> _ },
        (node \ "@by").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@by" -> _ },
        (node \ "@values").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@values" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.smil.AnimatePrototype, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@attributeName", _) => attr = scala.xml.Attribute(null, "attributeName", __obj.attributeName.toString, attr)
        case ("@attributeType", _) => if (__obj.attributeType.toString != "auto") attr = scala.xml.Attribute(null, "attributeType", __obj.attributeType.toString, attr)
        case ("@additive", _) => if (__obj.additive.toString != "replace") attr = scala.xml.Attribute(null, "additive", __obj.additive.toString, attr)
        case ("@accumulate", _) => if (__obj.accumulate.toString != "none") attr = scala.xml.Attribute(null, "accumulate", __obj.accumulate.toString, attr)
        case ("@to", _) => __obj.to foreach { x => attr = scala.xml.Attribute(null, "to", x.toString, attr) }
        case ("@from", _) => __obj.from foreach { x => attr = scala.xml.Attribute(null, "from", x.toString, attr) }
        case ("@by", _) => __obj.by foreach { x => attr = scala.xml.Attribute(null, "by", x.toString, attr) }
        case ("@values", _) => __obj.values foreach { x => attr = scala.xml.Attribute(null, "values", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.smil.AnimatePrototype, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  def buildOpengisgmlsmil_AttributeTypeFormat = new DefaultOpengisgmlsmil_AttributeTypeFormat {}
  trait DefaultOpengisgmlsmil_AttributeTypeFormat extends scalaxb.XMLFormat[opengis.gml.smil.AttributeType] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.smil.AttributeType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.smil.AttributeType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("XML")) => opengis.gml.smil.XML
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("CSS")) => opengis.gml.smil.CSS
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("auto")) => opengis.gml.smil.AutoValue2

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.AttributeType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.smil.AttributeType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengisgmlsmil_AdditiveFormat = new DefaultOpengisgmlsmil_AdditiveFormat {}
  trait DefaultOpengisgmlsmil_AdditiveFormat extends scalaxb.XMLFormat[opengis.gml.smil.Additive] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.smil.Additive =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.smil.Additive] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("replace")) => opengis.gml.smil.Replace
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("sum")) => opengis.gml.smil.Sum

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.Additive] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.smil.Additive, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengisgmlsmil_AccumulateFormat = new DefaultOpengisgmlsmil_AccumulateFormat {}
  trait DefaultOpengisgmlsmil_AccumulateFormat extends scalaxb.XMLFormat[opengis.gml.smil.Accumulate] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.smil.Accumulate =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.smil.Accumulate] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("none")) => opengis.gml.smil.NoneType
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("sum")) => opengis.gml.smil.SumValue

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.Accumulate] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.smil.Accumulate, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengisgmlsmil_CalcModeFormat = new DefaultOpengisgmlsmil_CalcModeFormat {}
  trait DefaultOpengisgmlsmil_CalcModeFormat extends scalaxb.XMLFormat[opengis.gml.smil.CalcMode] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.smil.CalcMode =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.smil.CalcMode] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("discrete")) => opengis.gml.smil.Discrete
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("linear")) => opengis.gml.smil.Linear
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("paced")) => opengis.gml.smil.Paced

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.CalcMode] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.smil.CalcMode, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisgmlsmil_AnimateMotionPrototypableFormat extends scalaxb.XMLFormat[opengis.gml.smil.AnimateMotionPrototypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.AnimateMotionPrototypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.w3.org/2001/SMIL20/Language"), Some("animateMotionType")) => Right(scalaxb.fromXML[opengis.gml.smil.AnimateMotionType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.smil.AnimateMotionPrototype](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.smil.AnimateMotionPrototypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.smil.AnimateMotionType => scalaxb.toXML[opengis.gml.smil.AnimateMotionType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.smil.AnimateMotionPrototype => scalaxb.toXML[opengis.gml.smil.AnimateMotionPrototype](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgmlsmil_AnimateMotionPrototypeFormat extends scalaxb.XMLFormat[opengis.gml.smil.AnimateMotionPrototype] with scalaxb.CanWriteChildNodes[opengis.gml.smil.AnimateMotionPrototype] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.AnimateMotionPrototype] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.AnimateMotionPrototype(scala.collection.immutable.ListMap(List(
        (node \ "@additive").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.Additive](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.Additive](scala.xml.Text("replace"), scalaxb.ElemName(node) :: stack))) map { "@additive" -> _ },
        (node \ "@accumulate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.Accumulate](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.Accumulate](scala.xml.Text("none"), scalaxb.ElemName(node) :: stack))) map { "@accumulate" -> _ },
        (node \ "@to").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@to" -> _ },
        (node \ "@from").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@from" -> _ },
        (node \ "@by").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@by" -> _ },
        (node \ "@values").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@values" -> _ },
        (node \ "@origin").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@origin" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.smil.AnimateMotionPrototype, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@additive", _) => if (__obj.additive.toString != "replace") attr = scala.xml.Attribute(null, "additive", __obj.additive.toString, attr)
        case ("@accumulate", _) => if (__obj.accumulate.toString != "none") attr = scala.xml.Attribute(null, "accumulate", __obj.accumulate.toString, attr)
        case ("@to", _) => __obj.to foreach { x => attr = scala.xml.Attribute(null, "to", x.toString, attr) }
        case ("@from", _) => __obj.from foreach { x => attr = scala.xml.Attribute(null, "from", x.toString, attr) }
        case ("@by", _) => __obj.by foreach { x => attr = scala.xml.Attribute(null, "by", x.toString, attr) }
        case ("@values", _) => __obj.values foreach { x => attr = scala.xml.Attribute(null, "values", x.toString, attr) }
        case ("@origin", _) => __obj.origin foreach { x => attr = scala.xml.Attribute(null, "origin", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.smil.AnimateMotionPrototype, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisgmlsmil_AnimateColorPrototypableFormat extends scalaxb.XMLFormat[opengis.gml.smil.AnimateColorPrototypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.AnimateColorPrototypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.w3.org/2001/SMIL20/Language"), Some("animateColorType")) => Right(scalaxb.fromXML[opengis.gml.smil.AnimateColorType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.smil.AnimateColorPrototype](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.smil.AnimateColorPrototypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.smil.AnimateColorType => scalaxb.toXML[opengis.gml.smil.AnimateColorType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.smil.AnimateColorPrototype => scalaxb.toXML[opengis.gml.smil.AnimateColorPrototype](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgmlsmil_AnimateColorPrototypeFormat extends scalaxb.XMLFormat[opengis.gml.smil.AnimateColorPrototype] with scalaxb.CanWriteChildNodes[opengis.gml.smil.AnimateColorPrototype] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.AnimateColorPrototype] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.AnimateColorPrototype(scala.collection.immutable.ListMap(List(
        (node \ "@attributeName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@attributeName" -> _ },
        (node \ "@attributeType").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.AttributeType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.AttributeType](scala.xml.Text("auto"), scalaxb.ElemName(node) :: stack))) map { "@attributeType" -> _ },
        (node \ "@additive").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.Additive](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.Additive](scala.xml.Text("replace"), scalaxb.ElemName(node) :: stack))) map { "@additive" -> _ },
        (node \ "@accumulate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.Accumulate](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.Accumulate](scala.xml.Text("none"), scalaxb.ElemName(node) :: stack))) map { "@accumulate" -> _ },
        (node \ "@to").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@to" -> _ },
        (node \ "@from").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@from" -> _ },
        (node \ "@by").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@by" -> _ },
        (node \ "@values").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@values" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.smil.AnimateColorPrototype, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@attributeName", _) => attr = scala.xml.Attribute(null, "attributeName", __obj.attributeName.toString, attr)
        case ("@attributeType", _) => if (__obj.attributeType.toString != "auto") attr = scala.xml.Attribute(null, "attributeType", __obj.attributeType.toString, attr)
        case ("@additive", _) => if (__obj.additive.toString != "replace") attr = scala.xml.Attribute(null, "additive", __obj.additive.toString, attr)
        case ("@accumulate", _) => if (__obj.accumulate.toString != "none") attr = scala.xml.Attribute(null, "accumulate", __obj.accumulate.toString, attr)
        case ("@to", _) => __obj.to foreach { x => attr = scala.xml.Attribute(null, "to", x.toString, attr) }
        case ("@from", _) => __obj.from foreach { x => attr = scala.xml.Attribute(null, "from", x.toString, attr) }
        case ("@by", _) => __obj.by foreach { x => attr = scala.xml.Attribute(null, "by", x.toString, attr) }
        case ("@values", _) => __obj.values foreach { x => attr = scala.xml.Attribute(null, "values", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.smil.AnimateColorPrototype, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisgmlsmil_SetPrototypableFormat extends scalaxb.XMLFormat[opengis.gml.smil.SetPrototypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.SetPrototypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.w3.org/2001/SMIL20/Language"), Some("setType")) => Right(scalaxb.fromXML[opengis.gml.smil.SetType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.gml.smil.SetPrototype](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.gml.smil.SetPrototypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.gml.smil.SetType => scalaxb.toXML[opengis.gml.smil.SetType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.gml.smil.SetPrototype => scalaxb.toXML[opengis.gml.smil.SetPrototype](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisgmlsmil_SetPrototypeFormat extends scalaxb.XMLFormat[opengis.gml.smil.SetPrototype] with scalaxb.CanWriteChildNodes[opengis.gml.smil.SetPrototype] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.SetPrototype] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.SetPrototype(scala.collection.immutable.ListMap(List(
        (node \ "@attributeName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@attributeName" -> _ },
        (node \ "@attributeType").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.gml.smil.AttributeType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.gml.smil.AttributeType](scala.xml.Text("auto"), scalaxb.ElemName(node) :: stack))) map { "@attributeType" -> _ },
        (node \ "@to").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@to" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.gml.smil.SetPrototype, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@attributeName", _) => attr = scala.xml.Attribute(null, "attributeName", __obj.attributeName.toString, attr)
        case ("@attributeType", _) => if (__obj.attributeType.toString != "auto") attr = scala.xml.Attribute(null, "attributeType", __obj.attributeType.toString, attr)
        case ("@to", _) => __obj.to foreach { x => attr = scala.xml.Attribute(null, "to", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.gml.smil.SetPrototype, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  def buildOpengisgmlsmil_SyncBehaviorTypeFormat = new DefaultOpengisgmlsmil_SyncBehaviorTypeFormat {}
  trait DefaultOpengisgmlsmil_SyncBehaviorTypeFormat extends scalaxb.XMLFormat[opengis.gml.smil.SyncBehaviorType] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.smil.SyncBehaviorType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.smil.SyncBehaviorType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("canSlip")) => opengis.gml.smil.CanSlipValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("locked")) => opengis.gml.smil.LockedValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("independent")) => opengis.gml.smil.IndependentValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("default")) => opengis.gml.smil.Default

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.SyncBehaviorType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.smil.SyncBehaviorType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengisgmlsmil_SyncBehaviorDefaultTypeFormat = new DefaultOpengisgmlsmil_SyncBehaviorDefaultTypeFormat {}
  trait DefaultOpengisgmlsmil_SyncBehaviorDefaultTypeFormat extends scalaxb.XMLFormat[opengis.gml.smil.SyncBehaviorDefaultType] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.smil.SyncBehaviorDefaultType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.smil.SyncBehaviorDefaultType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("canSlip")) => opengis.gml.smil.CanSlip
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("locked")) => opengis.gml.smil.Locked
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("independent")) => opengis.gml.smil.Independent
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("inherit")) => opengis.gml.smil.InheritValue2

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.SyncBehaviorDefaultType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.smil.SyncBehaviorDefaultType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengisgmlsmil_RestartTimingTypeFormat = new DefaultOpengisgmlsmil_RestartTimingTypeFormat {}
  trait DefaultOpengisgmlsmil_RestartTimingTypeFormat extends scalaxb.XMLFormat[opengis.gml.smil.RestartTimingType] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.smil.RestartTimingType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.smil.RestartTimingType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("never")) => opengis.gml.smil.NeverValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("always")) => opengis.gml.smil.AlwaysValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("whenNotActive")) => opengis.gml.smil.WhenNotActiveValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("default")) => opengis.gml.smil.DefaultValue

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.RestartTimingType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.smil.RestartTimingType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengisgmlsmil_RestartDefaultTypeFormat = new DefaultOpengisgmlsmil_RestartDefaultTypeFormat {}
  trait DefaultOpengisgmlsmil_RestartDefaultTypeFormat extends scalaxb.XMLFormat[opengis.gml.smil.RestartDefaultType] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.smil.RestartDefaultType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.smil.RestartDefaultType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("never")) => opengis.gml.smil.Never
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("always")) => opengis.gml.smil.Always
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("whenNotActive")) => opengis.gml.smil.WhenNotActive
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("inherit")) => opengis.gml.smil.InheritValue

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.RestartDefaultType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.smil.RestartDefaultType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengisgmlsmil_FillTimingAttrsTypeFormat = new DefaultOpengisgmlsmil_FillTimingAttrsTypeFormat {}
  trait DefaultOpengisgmlsmil_FillTimingAttrsTypeFormat extends scalaxb.XMLFormat[opengis.gml.smil.FillTimingAttrsType] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.smil.FillTimingAttrsType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.smil.FillTimingAttrsType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("remove")) => opengis.gml.smil.RemoveValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("freeze")) => opengis.gml.smil.FreezeValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("hold")) => opengis.gml.smil.HoldValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("auto")) => opengis.gml.smil.AutoValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("default")) => opengis.gml.smil.DefaultValue2
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("transition")) => opengis.gml.smil.TransitionValue

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.FillTimingAttrsType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.smil.FillTimingAttrsType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengisgmlsmil_FillDefaultTypeFormat = new DefaultOpengisgmlsmil_FillDefaultTypeFormat {}
  trait DefaultOpengisgmlsmil_FillDefaultTypeFormat extends scalaxb.XMLFormat[opengis.gml.smil.FillDefaultType] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.gml.smil.FillDefaultType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.gml.smil.FillDefaultType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("remove")) => opengis.gml.smil.Remove
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("freeze")) => opengis.gml.smil.Freeze
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("hold")) => opengis.gml.smil.Hold
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("auto")) => opengis.gml.smil.Auto
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("inherit")) => opengis.gml.smil.Inherit
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("transition")) => opengis.gml.smil.Transition

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.FillDefaultType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.gml.smil.FillDefaultType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisgmlsmil_MinMaxTimingAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.MinMaxTimingAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.MinMaxTimingAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.MinMaxTimingAttrs((node \ "@min").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@max").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.MinMaxTimingAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      __obj.min foreach { x => attr = scala.xml.Attribute(null, "min", x.toString, attr) }
    __obj.max foreach { x => attr = scala.xml.Attribute(null, "max", x.toString, attr) }
      attr
    }
  }

  trait DefaultOpengisgmlsmil_RepeatTimingAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.RepeatTimingAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.RepeatTimingAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.RepeatTimingAttrs((node \ "@repeatDur").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@repeatCount").headOption map { scalaxb.fromXML[BigDecimal](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.RepeatTimingAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      __obj.repeatDur foreach { x => attr = scala.xml.Attribute(null, "repeatDur", x.toString, attr) }
    __obj.repeatCount foreach { x => attr = scala.xml.Attribute(null, "repeatCount", x.bigDecimal.toPlainString, attr) }
      attr
    }
  }

  trait DefaultOpengisgmlsmil_BeginEndTimingAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.BeginEndTimingAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.BeginEndTimingAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.BeginEndTimingAttrs((node \ "@begin").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@end").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.BeginEndTimingAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      __obj.begin foreach { x => attr = scala.xml.Attribute(null, "begin", x.toString, attr) }
    __obj.end foreach { x => attr = scala.xml.Attribute(null, "end", x.toString, attr) }
      attr
    }
  }

  trait DefaultOpengisgmlsmil_FillTimingAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.FillTimingAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.FillTimingAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.FillTimingAttrs((node \ "@fill").headOption map { scalaxb.fromXML[opengis.gml.smil.FillTimingAttrsType](_, scalaxb.ElemName(node) :: stack) } getOrElse { scalaxb.fromXML[opengis.gml.smil.FillTimingAttrsType](scala.xml.Text("default"), scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.FillTimingAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      if (__obj.fill.toString != "default") attr = scala.xml.Attribute(null, "fill", __obj.fill.toString, attr)
      attr
    }
  }

  trait DefaultOpengisgmlsmil_RestartTimingAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.RestartTimingAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.RestartTimingAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.RestartTimingAttrs((node \ "@restart").headOption map { scalaxb.fromXML[opengis.gml.smil.RestartTimingType](_, scalaxb.ElemName(node) :: stack) } getOrElse { scalaxb.fromXML[opengis.gml.smil.RestartTimingType](scala.xml.Text("default"), scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.RestartTimingAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      if (__obj.restart.toString != "default") attr = scala.xml.Attribute(null, "restart", __obj.restart.toString, attr)
      attr
    }
  }

  trait DefaultOpengisgmlsmil_SyncBehaviorAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.SyncBehaviorAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.SyncBehaviorAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.SyncBehaviorAttrs((node \ "@syncBehavior").headOption map { scalaxb.fromXML[opengis.gml.smil.SyncBehaviorType](_, scalaxb.ElemName(node) :: stack) } getOrElse { scalaxb.fromXML[opengis.gml.smil.SyncBehaviorType](scala.xml.Text("default"), scalaxb.ElemName(node) :: stack) },
      (node \ "@syncTolerance").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.SyncBehaviorAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      if (__obj.syncBehavior.toString != "default") attr = scala.xml.Attribute(null, "syncBehavior", __obj.syncBehavior.toString, attr)
    __obj.syncTolerance foreach { x => attr = scala.xml.Attribute(null, "syncTolerance", x.toString, attr) }
      attr
    }
  }

  trait DefaultOpengisgmlsmil_AnimTargetAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.AnimTargetAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.AnimTargetAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.AnimTargetAttrs((node \ "@targetElement").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.AnimTargetAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      __obj.targetElement foreach { x => attr = scala.xml.Attribute(null, "targetElement", x.toString, attr) }
      attr
    }
  }

  trait DefaultOpengisgmlsmil_AnimValuesAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.AnimValuesAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.AnimValuesAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.AnimValuesAttrs((node \ "@to").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@from").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@by").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@values").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.AnimValuesAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      __obj.to foreach { x => attr = scala.xml.Attribute(null, "to", x.toString, attr) }
    __obj.from foreach { x => attr = scala.xml.Attribute(null, "from", x.toString, attr) }
    __obj.by foreach { x => attr = scala.xml.Attribute(null, "by", x.toString, attr) }
    __obj.values foreach { x => attr = scala.xml.Attribute(null, "values", x.toString, attr) }
      attr
    }
  }

  trait DefaultOpengisgmlsmil_AnimNamedTargetAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.AnimNamedTargetAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.AnimNamedTargetAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.AnimNamedTargetAttrs(scalaxb.fromXML[String]((node \ "@attributeName"), scalaxb.ElemName(node) :: stack),
      (node \ "@attributeType").headOption map { scalaxb.fromXML[opengis.gml.smil.AttributeType](_, scalaxb.ElemName(node) :: stack) } getOrElse { scalaxb.fromXML[opengis.gml.smil.AttributeType](scala.xml.Text("auto"), scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.AnimNamedTargetAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      attr = scala.xml.Attribute(null, "attributeName", __obj.attributeName.toString, attr)
    if (__obj.attributeType.toString != "auto") attr = scala.xml.Attribute(null, "attributeType", __obj.attributeType.toString, attr)
      attr
    }
  }

  trait DefaultOpengisgmlsmil_SkipContentAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.SkipContentAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.SkipContentAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.SkipContentAttrs((node \ "@skip-content").headOption map { scalaxb.fromXML[Boolean](_, scalaxb.ElemName(node) :: stack) } getOrElse { scalaxb.fromXML[Boolean](scala.xml.Text("true"), scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.SkipContentAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      if (__obj.skipu45content.toString != "true") attr = scala.xml.Attribute(null, "skip-content", __obj.skipu45content.toString, attr)
      attr
    }
  }

  trait DefaultOpengisgmlsmil_StructureModuleAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.StructureModuleAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.StructureModuleAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.StructureModuleAttrs((node \ "@id").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@class").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/XML/1998/namespace}lang").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.StructureModuleAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      __obj.id foreach { x => attr = scala.xml.Attribute(null, "id", x.toString, attr) }
    __obj.classValue foreach { x => attr = scala.xml.Attribute(null, "class", x.toString, attr) }
    __obj.xmllang foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/XML/1998/namespace"), "lang", x.toString, attr) }
      attr
    }
  }

  trait DefaultOpengisgmlsmil_AlternateContentAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.AlternateContentAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.AlternateContentAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.AlternateContentAttrs((node \ "@alt").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@longdesc").headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.AlternateContentAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      __obj.alt foreach { x => attr = scala.xml.Attribute(null, "alt", x.toString, attr) }
    __obj.longdesc foreach { x => attr = scala.xml.Attribute(null, "longdesc", x.toString, attr) }
      attr
    }
  }

  trait DefaultOpengisgmlsmil_AnimAddAccumAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.AnimAddAccumAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.AnimAddAccumAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.AnimAddAccumAttrs((node \ "@additive").headOption map { scalaxb.fromXML[opengis.gml.smil.Additive](_, scalaxb.ElemName(node) :: stack) } getOrElse { scalaxb.fromXML[opengis.gml.smil.Additive](scala.xml.Text("replace"), scalaxb.ElemName(node) :: stack) },
      (node \ "@accumulate").headOption map { scalaxb.fromXML[opengis.gml.smil.Accumulate](_, scalaxb.ElemName(node) :: stack) } getOrElse { scalaxb.fromXML[opengis.gml.smil.Accumulate](scala.xml.Text("none"), scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.AnimAddAccumAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      if (__obj.additive.toString != "replace") attr = scala.xml.Attribute(null, "additive", __obj.additive.toString, attr)
    if (__obj.accumulate.toString != "none") attr = scala.xml.Attribute(null, "accumulate", __obj.accumulate.toString, attr)
      attr
    }
  }

  trait DefaultOpengisgmlsmil_AnimSetValuesAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.AnimSetValuesAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.AnimSetValuesAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.AnimSetValuesAttrs((node \ "@to").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.AnimSetValuesAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      __obj.to foreach { x => attr = scala.xml.Attribute(null, "to", x.toString, attr) }
      attr
    }
  }

  trait DefaultOpengisgmlsmil_AnimModeAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.AnimModeAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.AnimModeAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.AnimModeAttrs((node \ "@calcMode").headOption map { scalaxb.fromXML[opengis.gml.smil.CalcMode](_, scalaxb.ElemName(node) :: stack) } getOrElse { scalaxb.fromXML[opengis.gml.smil.CalcMode](scala.xml.Text("linear"), scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.AnimModeAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      if (__obj.calcMode.toString != "linear") attr = scala.xml.Attribute(null, "calcMode", __obj.calcMode.toString, attr)
      attr
    }
  }

  trait DefaultOpengisgmlsmil_SyncBehaviorDefaultAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.SyncBehaviorDefaultAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.SyncBehaviorDefaultAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.SyncBehaviorDefaultAttrs((node \ "@syncBehaviorDefault").headOption map { scalaxb.fromXML[opengis.gml.smil.SyncBehaviorDefaultType](_, scalaxb.ElemName(node) :: stack) } getOrElse { scalaxb.fromXML[opengis.gml.smil.SyncBehaviorDefaultType](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack) },
      (node \ "@syncToleranceDefault").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) } getOrElse { scalaxb.fromXML[String](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.SyncBehaviorDefaultAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      if (__obj.syncBehaviorDefault.toString != "inherit") attr = scala.xml.Attribute(null, "syncBehaviorDefault", __obj.syncBehaviorDefault.toString, attr)
    if (__obj.syncToleranceDefault.toString != "inherit") attr = scala.xml.Attribute(null, "syncToleranceDefault", __obj.syncToleranceDefault.toString, attr)
      attr
    }
  }

  trait DefaultOpengisgmlsmil_RestartDefaultAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.RestartDefaultAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.RestartDefaultAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.RestartDefaultAttrs((node \ "@restartDefault").headOption map { scalaxb.fromXML[opengis.gml.smil.RestartDefaultType](_, scalaxb.ElemName(node) :: stack) } getOrElse { scalaxb.fromXML[opengis.gml.smil.RestartDefaultType](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.RestartDefaultAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      if (__obj.restartDefault.toString != "inherit") attr = scala.xml.Attribute(null, "restartDefault", __obj.restartDefault.toString, attr)
      attr
    }
  }

  trait DefaultOpengisgmlsmil_FillDefaultAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.FillDefaultAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.FillDefaultAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.FillDefaultAttrs((node \ "@fillDefault").headOption map { scalaxb.fromXML[opengis.gml.smil.FillDefaultType](_, scalaxb.ElemName(node) :: stack) } getOrElse { scalaxb.fromXML[opengis.gml.smil.FillDefaultType](scala.xml.Text("inherit"), scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.FillDefaultAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      if (__obj.fillDefault.toString != "inherit") attr = scala.xml.Attribute(null, "fillDefault", __obj.fillDefault.toString, attr)
      attr
    }
  }

  trait DefaultOpengisgmlsmil_DurTimingAttrsFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.DurTimingAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.DurTimingAttrs] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.DurTimingAttrs((node \ "@dur").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.DurTimingAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      __obj.dur foreach { x => attr = scala.xml.Attribute(null, "dur", x.toString, attr) }
      attr
    }
  }

  trait DefaultOpengisgmlsmil_DeprecatedRepeatTimingFormat extends scalaxb.AttributeGroupFormat[opengis.gml.smil.DeprecatedRepeatTiming] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/2001/SMIL20/")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.gml.smil.DeprecatedRepeatTiming] = seq match {
      case node: scala.xml.Node => Right(opengis.gml.smil.DeprecatedRepeatTiming((node \ "@repeat").headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: opengis.gml.smil.DeprecatedRepeatTiming, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      __obj.repeat foreach { x => attr = scala.xml.Attribute(null, "repeat", x.toString, attr) }
      attr
    }
  }

  trait DefaultOpengissldows_KeywordsTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ows.KeywordsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    override def typeName: Option[String] = Some("KeywordsType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.KeywordsType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Keyword")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Type")) ^^
      { case p1 ~ p2 =>
      opengis.sld.ows.KeywordsType(p1 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.sld.ows.CodeType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.ows.KeywordsType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Keyword flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("Keyword"), __scope, false) },
        __obj.TypeValue map { scalaxb.toXML[opengis.sld.ows.CodeType](_, Some("http://www.opengis.net/ows"), Some("Type"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengissldows_CodeTypeFormat extends scalaxb.XMLFormat[opengis.sld.ows.CodeType] with scalaxb.CanWriteChildNodes[opengis.sld.ows.CodeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.sld.ows.CodeType] = seq match {
      case node: scala.xml.Node => Right(opengis.sld.ows.CodeType(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@codeSpace").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@codeSpace" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.sld.ows.CodeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@codeSpace", _) => __obj.codeSpace foreach { x => attr = scala.xml.Attribute(null, "codeSpace", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.sld.ows.CodeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengissldows_ResponsiblePartyTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ows.ResponsiblePartyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    override def typeName: Option[String] = Some("ResponsiblePartyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.ResponsiblePartyType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "IndividualName")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "OrganisationName")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "PositionName")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "ContactInfo")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Role")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.sld.ows.ResponsiblePartyType(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.sld.ows.ContactType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.sld.ows.CodeType](p5, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.sld.ows.ResponsiblePartyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.IndividualName map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("IndividualName"), __scope, false) } getOrElse {Nil},
        __obj.OrganisationName map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("OrganisationName"), __scope, false) } getOrElse {Nil},
        __obj.PositionName map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("PositionName"), __scope, false) } getOrElse {Nil},
        __obj.ContactInfo map { scalaxb.toXML[opengis.sld.ows.ContactType](_, Some("http://www.opengis.net/ows"), Some("ContactInfo"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.sld.ows.CodeType](__obj.Role, Some("http://www.opengis.net/ows"), Some("Role"), __scope, false))

  }

  trait DefaultOpengissldows_ResponsiblePartySubsetTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ows.ResponsiblePartySubsetType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    override def typeName: Option[String] = Some("ResponsiblePartySubsetType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.ResponsiblePartySubsetType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "IndividualName")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "PositionName")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "ContactInfo")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Role")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.sld.ows.ResponsiblePartySubsetType(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.sld.ows.ContactType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.sld.ows.CodeType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.ows.ResponsiblePartySubsetType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.IndividualName map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("IndividualName"), __scope, false) } getOrElse {Nil},
        __obj.PositionName map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("PositionName"), __scope, false) } getOrElse {Nil},
        __obj.ContactInfo map { scalaxb.toXML[opengis.sld.ows.ContactType](_, Some("http://www.opengis.net/ows"), Some("ContactInfo"), __scope, false) } getOrElse {Nil},
        __obj.Role map { scalaxb.toXML[opengis.sld.ows.CodeType](_, Some("http://www.opengis.net/ows"), Some("Role"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengissldows_ContactTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ows.ContactType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    override def typeName: Option[String] = Some("ContactType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.ContactType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Phone")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Address")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "OnlineResource")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "HoursOfService")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "ContactInstructions")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.sld.ows.ContactType(p1.headOption map { scalaxb.fromXML[opengis.sld.ows.TelephoneType](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.sld.ows.AddressType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.sld.ows.OnlineResourceTypable](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.ows.ContactType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Phone map { scalaxb.toXML[opengis.sld.ows.TelephoneType](_, Some("http://www.opengis.net/ows"), Some("Phone"), __scope, false) } getOrElse {Nil},
        __obj.Address map { scalaxb.toXML[opengis.sld.ows.AddressType](_, Some("http://www.opengis.net/ows"), Some("Address"), __scope, false) } getOrElse {Nil},
        __obj.OnlineResource map { scalaxb.toXML[opengis.sld.ows.OnlineResourceTypable](_, Some("http://www.opengis.net/ows"), Some("OnlineResource"), __scope, false) } getOrElse {Nil},
        __obj.HoursOfService map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("HoursOfService"), __scope, false) } getOrElse {Nil},
        __obj.ContactInstructions map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("ContactInstructions"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengissldows_OnlineResourceTypableFormat extends scalaxb.XMLFormat[opengis.sld.ows.OnlineResourceTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.sld.ows.OnlineResourceTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/ows"), Some("RequestMethodType")) => Right(scalaxb.fromXML[opengis.sld.ows.RequestMethodType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.sld.ows.OnlineResourceType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.sld.ows.OnlineResourceTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.sld.ows.RequestMethodType => scalaxb.toXML[opengis.sld.ows.RequestMethodType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.sld.ows.OnlineResourceType => scalaxb.toXML[opengis.sld.ows.OnlineResourceType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengissldows_OnlineResourceTypeFormat extends scalaxb.XMLFormat[opengis.sld.ows.OnlineResourceType] with scalaxb.CanWriteChildNodes[opengis.sld.ows.OnlineResourceType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.sld.ows.OnlineResourceType] = seq match {
      case node: scala.xml.Node => Right(opengis.sld.ows.OnlineResourceType(scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.sld.ows.OnlineResourceType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.sld.ows.OnlineResourceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengissldows_TelephoneTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ows.TelephoneType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    override def typeName: Option[String] = Some("TelephoneType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.TelephoneType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Voice")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Facsimile")) ^^
      { case p1 ~ p2 =>
      opengis.sld.ows.TelephoneType(p1 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.ows.TelephoneType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Voice flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("Voice"), __scope, false) },
        __obj.Facsimile flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("Facsimile"), __scope, false) })

  }

  trait DefaultOpengissldows_AddressTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ows.AddressType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    override def typeName: Option[String] = Some("AddressType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.AddressType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "DeliveryPoint")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "City")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "AdministrativeArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "PostalCode")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Country")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "ElectronicMailAddress")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.sld.ows.AddressType(p1 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p6 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.ows.AddressType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.DeliveryPoint flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("DeliveryPoint"), __scope, false) },
        __obj.City map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("City"), __scope, false) } getOrElse {Nil},
        __obj.AdministrativeArea map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("AdministrativeArea"), __scope, false) } getOrElse {Nil},
        __obj.PostalCode map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("PostalCode"), __scope, false) } getOrElse {Nil},
        __obj.Country map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("Country"), __scope, false) } getOrElse {Nil},
        __obj.ElectronicMailAddress flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("ElectronicMailAddress"), __scope, false) })

  }

  trait DefaultOpengissldows_MetadataTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ows.MetadataType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    override def typeName: Option[String] = Some("MetadataType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.MetadataType] =
      phrase(opt(any(_ => true)) ^^
      { case p1 =>
      opengis.sld.ows.MetadataType(p1.headOption map { scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@about").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@about" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.sld.ows.MetadataType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@about", _) => __obj.about foreach { x => attr = scala.xml.Attribute(null, "about", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.sld.ows.MetadataType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.AbstractMetaData map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, true) } getOrElse {Nil})

  }

  trait DefaultOpengissldows_BoundingBoxTypableFormat extends scalaxb.XMLFormat[opengis.sld.ows.BoundingBoxTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.sld.ows.BoundingBoxTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/ows"), Some("WGS84BoundingBoxType")) => Right(scalaxb.fromXML[opengis.sld.ows.WGS84BoundingBoxType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.sld.ows.BoundingBoxType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.sld.ows.BoundingBoxTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.sld.ows.WGS84BoundingBoxType => scalaxb.toXML[opengis.sld.ows.WGS84BoundingBoxType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.sld.ows.BoundingBoxType => scalaxb.toXML[opengis.sld.ows.BoundingBoxType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengissldows_BoundingBoxTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ows.BoundingBoxType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    override def typeName: Option[String] = Some("BoundingBoxType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.BoundingBoxType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/ows"), "LowerCorner")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ows"), "UpperCorner")) ^^
      { case p1 ~ p2 =>
      opengis.sld.ows.BoundingBoxType(scalaxb.fromXML[Seq[Double]](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[Seq[Double]](p2, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@crs").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@crs" -> _ },
        (node \ "@dimensions").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@dimensions" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.sld.ows.BoundingBoxType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@crs", _) => __obj.crs foreach { x => attr = scala.xml.Attribute(null, "crs", x.toString, attr) }
        case ("@dimensions", _) => __obj.dimensions foreach { x => attr = scala.xml.Attribute(null, "dimensions", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.sld.ows.BoundingBoxType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[Seq[Double]](__obj.LowerCorner, Some("http://www.opengis.net/ows"), Some("LowerCorner"), __scope, false),
        scalaxb.toXML[Seq[Double]](__obj.UpperCorner, Some("http://www.opengis.net/ows"), Some("UpperCorner"), __scope, false))

  }

  trait DefaultOpengissldows_WGS84BoundingBoxTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ows.WGS84BoundingBoxType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    override def typeName: Option[String] = Some("WGS84BoundingBoxType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.WGS84BoundingBoxType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/ows"), "LowerCorner")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ows"), "UpperCorner")) ^^
      { case p1 ~ p2 =>
      opengis.sld.ows.WGS84BoundingBoxType(scalaxb.fromXML[Seq[Double]](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[Seq[Double]](p2, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@crs").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@crs" -> _ },
        (node \ "@dimensions").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@dimensions" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.sld.ows.WGS84BoundingBoxType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@crs", _) => __obj.crs foreach { x => attr = scala.xml.Attribute(null, "crs", x.toString, attr) }
        case ("@dimensions", _) => __obj.dimensions foreach { x => attr = scala.xml.Attribute(null, "dimensions", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.sld.ows.WGS84BoundingBoxType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[Seq[Double]](__obj.LowerCorner, Some("http://www.opengis.net/ows"), Some("LowerCorner"), __scope, false),
        scalaxb.toXML[Seq[Double]](__obj.UpperCorner, Some("http://www.opengis.net/ows"), Some("UpperCorner"), __scope, false))

  }

  trait DefaultOpengissldows_DescriptionTypableFormat extends scalaxb.XMLFormat[opengis.sld.ows.DescriptionTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.sld.ows.DescriptionTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/ows"), Some("IdentificationType")) => Right(scalaxb.fromXML[opengis.sld.ows.IdentificationType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.sld.ows.DescriptionType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.sld.ows.DescriptionTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.sld.ows.IdentificationType => scalaxb.toXML[opengis.sld.ows.IdentificationType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.sld.ows.ServiceIdentification => scalaxb.toXML[opengis.sld.ows.ServiceIdentification](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.sld.ows.DescriptionType => scalaxb.toXML[opengis.sld.ows.DescriptionType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengissldows_DescriptionTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ows.DescriptionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    override def typeName: Option[String] = Some("DescriptionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.DescriptionType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Title")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Keywords")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.sld.ows.DescriptionType(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.sld.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.ows.DescriptionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("Title"), __scope, false) } getOrElse {Nil},
        __obj.AbstractValue map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("Abstract"), __scope, false) } getOrElse {Nil},
        __obj.Keywords flatMap { scalaxb.toXML[opengis.sld.ows.KeywordsType](_, Some("http://www.opengis.net/ows"), Some("Keywords"), __scope, false) })

  }

  trait DefaultOpengissldows_IdentificationTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ows.IdentificationType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    override def typeName: Option[String] = Some("IdentificationType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.IdentificationType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Title")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Keywords")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Identifier")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ows"), "WGS84BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.sld.ows.WGS84BoundingBoxType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows"), "WGS84BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.sld.ows.WGS84BoundingBoxType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows"), "BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.sld.ows.BoundingBoxTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "OutputFormat")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ows"), "AvailableCRS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows"), "SupportedCRS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows"), "SupportedCRS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Metadata")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 =>
      opengis.sld.ows.IdentificationType(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.sld.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.sld.ows.CodeType](_, scalaxb.ElemName(node) :: stack) },
        p5,
        p6 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p7,
        p8 map { scalaxb.fromXML[opengis.sld.ows.MetadataType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.ows.IdentificationType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("Title"), __scope, false) } getOrElse {Nil},
        __obj.AbstractValue map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("Abstract"), __scope, false) } getOrElse {Nil},
        __obj.Keywords flatMap { scalaxb.toXML[opengis.sld.ows.KeywordsType](_, Some("http://www.opengis.net/ows"), Some("Keywords"), __scope, false) },
        __obj.Identifier map { scalaxb.toXML[opengis.sld.ows.CodeType](_, Some("http://www.opengis.net/ows"), Some("Identifier"), __scope, false) } getOrElse {Nil},
        __obj.BoundingBox flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) },
        __obj.OutputFormat flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("OutputFormat"), __scope, false) },
        __obj.AvailableCRS flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) },
        __obj.Metadata flatMap { scalaxb.toXML[opengis.sld.ows.MetadataType](_, Some("http://www.opengis.net/ows"), Some("Metadata"), __scope, false) })

  }

  trait DefaultOpengissldows_ExceptionReportFormat extends scalaxb.ElemNameParser[opengis.sld.ows.ExceptionReport] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.ExceptionReport] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Exception")) ^^
      { case p1 =>
      opengis.sld.ows.ExceptionReport(p1 map { scalaxb.fromXML[opengis.sld.ows.ExceptionType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@version" -> _ },
        (node \ "@language").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@language" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.sld.ows.ExceptionReport, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@version", _) => attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case ("@language", _) => __obj.language foreach { x => attr = scala.xml.Attribute(null, "language", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.sld.ows.ExceptionReport, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Exception flatMap { scalaxb.toXML[opengis.sld.ows.ExceptionType](_, Some("http://www.opengis.net/ows"), Some("Exception"), __scope, false) })

  }

  trait DefaultOpengissldows_ExceptionTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ows.ExceptionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    override def typeName: Option[String] = Some("ExceptionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.ExceptionType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "ExceptionText")) ^^
      { case p1 =>
      opengis.sld.ows.ExceptionType(p1 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@exceptionCode").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@exceptionCode" -> _ },
        (node \ "@locator").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@locator" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.sld.ows.ExceptionType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@exceptionCode", _) => attr = scala.xml.Attribute(null, "exceptionCode", __obj.exceptionCode.toString, attr)
        case ("@locator", _) => __obj.locator foreach { x => attr = scala.xml.Attribute(null, "locator", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.sld.ows.ExceptionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.ExceptionText flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("ExceptionText"), __scope, false) })

  }

  trait DefaultOpengissldows_CapabilitiesBaseTypableFormat extends scalaxb.XMLFormat[opengis.sld.ows.CapabilitiesBaseTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.sld.ows.CapabilitiesBaseTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/wfs"), Some("WFS_CapabilitiesType")) => Right(scalaxb.fromXML[opengis.wfs.WFS_CapabilitiesType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.sld.ows.CapabilitiesBaseType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.sld.ows.CapabilitiesBaseTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.wfs.WFS_CapabilitiesType => scalaxb.toXML[opengis.wfs.WFS_CapabilitiesType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.sld.ows.CapabilitiesBaseType => scalaxb.toXML[opengis.sld.ows.CapabilitiesBaseType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengissldows_CapabilitiesBaseTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ows.CapabilitiesBaseType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    override def typeName: Option[String] = Some("CapabilitiesBaseType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.CapabilitiesBaseType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "ServiceIdentification")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "ServiceProvider")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "OperationsMetadata")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.sld.ows.CapabilitiesBaseType(p1.headOption map { scalaxb.fromXML[opengis.sld.ows.ServiceIdentification](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.sld.ows.ServiceProvider](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.sld.ows.OperationsMetadata](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@version" -> _ },
        (node \ "@updateSequence").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@updateSequence" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.sld.ows.CapabilitiesBaseType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@version", _) => attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case ("@updateSequence", _) => __obj.updateSequence foreach { x => attr = scala.xml.Attribute(null, "updateSequence", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.sld.ows.CapabilitiesBaseType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.ServiceIdentification map { scalaxb.toXML[opengis.sld.ows.ServiceIdentification](_, Some("http://www.opengis.net/ows"), Some("ServiceIdentification"), __scope, false) } getOrElse {Nil},
        __obj.ServiceProvider map { scalaxb.toXML[opengis.sld.ows.ServiceProvider](_, Some("http://www.opengis.net/ows"), Some("ServiceProvider"), __scope, false) } getOrElse {Nil},
        __obj.OperationsMetadata map { scalaxb.toXML[opengis.sld.ows.OperationsMetadata](_, Some("http://www.opengis.net/ows"), Some("OperationsMetadata"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengissldows_GetCapabilitiesTypableFormat extends scalaxb.XMLFormat[opengis.sld.ows.GetCapabilitiesTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.sld.ows.GetCapabilitiesTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/wfs"), Some("GetCapabilitiesType")) => Right(scalaxb.fromXML[opengis.wfs.GetCapabilitiesType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.sld.ows.GetCapabilitiesType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.sld.ows.GetCapabilitiesTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.wfs.GetCapabilitiesType => scalaxb.toXML[opengis.wfs.GetCapabilitiesType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.sld.ows.GetCapabilitiesType => scalaxb.toXML[opengis.sld.ows.GetCapabilitiesType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengissldows_GetCapabilitiesTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ows.GetCapabilitiesType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    override def typeName: Option[String] = Some("GetCapabilitiesType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.GetCapabilitiesType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "AcceptVersions")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Sections")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "AcceptFormats")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.sld.ows.GetCapabilitiesType(p1.headOption map { scalaxb.fromXML[opengis.sld.ows.AcceptVersionsType](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.sld.ows.SectionsType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.sld.ows.AcceptFormatsType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@updateSequence").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@updateSequence" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.sld.ows.GetCapabilitiesType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@updateSequence", _) => __obj.updateSequence foreach { x => attr = scala.xml.Attribute(null, "updateSequence", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.sld.ows.GetCapabilitiesType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.AcceptVersions map { scalaxb.toXML[opengis.sld.ows.AcceptVersionsType](_, Some("http://www.opengis.net/ows"), Some("AcceptVersions"), __scope, false) } getOrElse {Nil},
        __obj.Sections map { scalaxb.toXML[opengis.sld.ows.SectionsType](_, Some("http://www.opengis.net/ows"), Some("Sections"), __scope, false) } getOrElse {Nil},
        __obj.AcceptFormats map { scalaxb.toXML[opengis.sld.ows.AcceptFormatsType](_, Some("http://www.opengis.net/ows"), Some("AcceptFormats"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengissldows_AcceptVersionsTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ows.AcceptVersionsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    override def typeName: Option[String] = Some("AcceptVersionsType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.AcceptVersionsType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Version")) ^^
      { case p1 =>
      opengis.sld.ows.AcceptVersionsType(p1 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.ows.AcceptVersionsType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Version flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("Version"), __scope, false) })

  }

  trait DefaultOpengissldows_SectionsTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ows.SectionsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    override def typeName: Option[String] = Some("SectionsType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.SectionsType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Section")) ^^
      { case p1 =>
      opengis.sld.ows.SectionsType(p1 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.ows.SectionsType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Section flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("Section"), __scope, false) })

  }

  trait DefaultOpengissldows_AcceptFormatsTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ows.AcceptFormatsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    override def typeName: Option[String] = Some("AcceptFormatsType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.AcceptFormatsType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "OutputFormat")) ^^
      { case p1 =>
      opengis.sld.ows.AcceptFormatsType(p1 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.ows.AcceptFormatsType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.OutputFormat flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("OutputFormat"), __scope, false) })

  }

  trait DefaultOpengissldows_OperationsMetadataFormat extends scalaxb.ElemNameParser[opengis.sld.ows.OperationsMetadata] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.OperationsMetadata] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Operation")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Parameter")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Constraint")) ~ 
      opt(any(_ => true)) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.sld.ows.OperationsMetadata(p1 map { scalaxb.fromXML[opengis.sld.ows.Operation](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.sld.ows.DomainType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.sld.ows.DomainType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.ows.OperationsMetadata, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Operation flatMap { scalaxb.toXML[opengis.sld.ows.Operation](_, Some("http://www.opengis.net/ows"), Some("Operation"), __scope, false) },
        __obj.Parameter flatMap { scalaxb.toXML[opengis.sld.ows.DomainType](_, Some("http://www.opengis.net/ows"), Some("Parameter"), __scope, false) },
        __obj.Constraint flatMap { scalaxb.toXML[opengis.sld.ows.DomainType](_, Some("http://www.opengis.net/ows"), Some("Constraint"), __scope, false) },
        __obj.ExtendedCapabilities map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, true) } getOrElse {Nil})

  }

  trait DefaultOpengissldows_OperationFormat extends scalaxb.ElemNameParser[opengis.sld.ows.Operation] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.Operation] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "DCP")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Parameter")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Constraint")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Metadata")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.sld.ows.Operation(p1 map { scalaxb.fromXML[opengis.sld.ows.DCP](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.sld.ows.DomainType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.sld.ows.DomainType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.sld.ows.MetadataType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@name").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@name" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.sld.ows.Operation, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@name", _) => attr = scala.xml.Attribute(null, "name", __obj.name.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.sld.ows.Operation, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.DCP flatMap { scalaxb.toXML[opengis.sld.ows.DCP](_, Some("http://www.opengis.net/ows"), Some("DCP"), __scope, false) },
        __obj.Parameter flatMap { scalaxb.toXML[opengis.sld.ows.DomainType](_, Some("http://www.opengis.net/ows"), Some("Parameter"), __scope, false) },
        __obj.Constraint flatMap { scalaxb.toXML[opengis.sld.ows.DomainType](_, Some("http://www.opengis.net/ows"), Some("Constraint"), __scope, false) },
        __obj.Metadata flatMap { scalaxb.toXML[opengis.sld.ows.MetadataType](_, Some("http://www.opengis.net/ows"), Some("Metadata"), __scope, false) })

  }

  trait DefaultOpengissldows_DCPFormat extends scalaxb.ElemNameParser[opengis.sld.ows.DCP] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.DCP] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/ows"), "HTTP")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.sld.ows.HTTP](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.sld.ows.DCP(p1) })
    
    def writesChildNodes(__obj: opengis.sld.ows.DCP, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.dcpoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.sld.ows.HTTP]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengissldows_HTTPFormat extends scalaxb.ElemNameParser[opengis.sld.ows.HTTP] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.HTTP] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Get")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.sld.ows.RequestMethodType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Post")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.sld.ows.RequestMethodType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.sld.ows.HTTP(p1) })
    
    def writesChildNodes(__obj: opengis.sld.ows.HTTP, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.httpoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.sld.ows.HTTPOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengissldows_RequestMethodTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ows.RequestMethodType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    override def typeName: Option[String] = Some("RequestMethodType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.RequestMethodType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Constraint")) ^^
      { case p1 =>
      opengis.sld.ows.RequestMethodType(p1 map { scalaxb.fromXML[opengis.sld.ows.DomainType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.sld.ows.RequestMethodType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.sld.ows.RequestMethodType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Constraint flatMap { scalaxb.toXML[opengis.sld.ows.DomainType](_, Some("http://www.opengis.net/ows"), Some("Constraint"), __scope, false) })

  }

  trait DefaultOpengissldows_DomainTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ows.DomainType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    override def typeName: Option[String] = Some("DomainType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.DomainType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Value")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Metadata")) ^^
      { case p1 ~ p2 =>
      opengis.sld.ows.DomainType(p1 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.sld.ows.MetadataType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@name").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@name" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.sld.ows.DomainType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@name", _) => attr = scala.xml.Attribute(null, "name", __obj.name.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.sld.ows.DomainType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Value flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("Value"), __scope, false) },
        __obj.Metadata flatMap { scalaxb.toXML[opengis.sld.ows.MetadataType](_, Some("http://www.opengis.net/ows"), Some("Metadata"), __scope, false) })

  }

  trait DefaultOpengissldows_ServiceIdentificationFormat extends scalaxb.ElemNameParser[opengis.sld.ows.ServiceIdentification] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.ServiceIdentification] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Title")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Keywords")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ows"), "ServiceType")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "ServiceTypeVersion")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Fees")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "AccessConstraints")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 =>
      opengis.sld.ows.ServiceIdentification(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.sld.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.sld.ows.CodeType](p4, scalaxb.ElemName(node) :: stack),
        p5 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p7 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.ows.ServiceIdentification, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("Title"), __scope, false) } getOrElse {Nil},
        __obj.AbstractValue map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("Abstract"), __scope, false) } getOrElse {Nil},
        __obj.Keywords flatMap { scalaxb.toXML[opengis.sld.ows.KeywordsType](_, Some("http://www.opengis.net/ows"), Some("Keywords"), __scope, false) },
        scalaxb.toXML[opengis.sld.ows.CodeType](__obj.ServiceType, Some("http://www.opengis.net/ows"), Some("ServiceType"), __scope, false),
        __obj.ServiceTypeVersion flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("ServiceTypeVersion"), __scope, false) },
        __obj.Fees map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("Fees"), __scope, false) } getOrElse {Nil},
        __obj.AccessConstraints flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows"), Some("AccessConstraints"), __scope, false) })

  }

  trait DefaultOpengissldows_ServiceProviderFormat extends scalaxb.ElemNameParser[opengis.sld.ows.ServiceProvider] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ows.ServiceProvider] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/ows"), "ProviderName")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "ProviderSite")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ows"), "ServiceContact")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.sld.ows.ServiceProvider(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        p2.headOption map { scalaxb.fromXML[opengis.sld.ows.OnlineResourceTypable](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.sld.ows.ResponsiblePartySubsetType](p3, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.sld.ows.ServiceProvider, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.ProviderName, Some("http://www.opengis.net/ows"), Some("ProviderName"), __scope, false),
        __obj.ProviderSite map { scalaxb.toXML[opengis.sld.ows.OnlineResourceTypable](_, Some("http://www.opengis.net/ows"), Some("ProviderSite"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.sld.ows.ResponsiblePartySubsetType](__obj.ServiceContact, Some("http://www.opengis.net/ows"), Some("ServiceContact"), __scope, false))

  }

  trait DefaultOpengisows_LanguageStringTypeFormat extends scalaxb.XMLFormat[opengis.ows.LanguageStringType] with scalaxb.CanWriteChildNodes[opengis.ows.LanguageStringType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.LanguageStringType] = seq match {
      case node: scala.xml.Node => Right(opengis.ows.LanguageStringType(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.w3.org/XML/1998/namespace}lang").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/XML/1998/namespace}lang" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.ows.LanguageStringType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/XML/1998/namespace}lang", _) => __obj.xmllang foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/XML/1998/namespace"), "lang", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.LanguageStringType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisows_KeywordsTypeFormat extends scalaxb.ElemNameParser[opengis.ows.KeywordsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("KeywordsType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.KeywordsType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Keyword")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Type")) ^^
      { case p1 ~ p2 =>
      opengis.ows.KeywordsType(p1 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.ows.CodeTypable](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ows.KeywordsType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Keyword flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Keyword"), __scope, false) },
        __obj.TypeValue map { scalaxb.toXML[opengis.ows.CodeTypable](_, Some("http://www.opengis.net/ows/1.1"), Some("Type"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisows_CodeTypableFormat extends scalaxb.XMLFormat[opengis.ows.CodeTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.CodeTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/wcs/1.1.1"), Some("InterpolationMethodBaseType")) => Right(scalaxb.fromXML[opengis.wcs.InterpolationMethodBaseTypable](node, stack))
          case (Some("http://www.opengis.net/wcs/1.1.1"), Some("InterpolationMethodType")) => Right(scalaxb.fromXML[opengis.wcs.InterpolationMethodType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.ows.CodeType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.ows.CodeTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.wcs.InterpolationMethodBaseTypable => scalaxb.toXML[opengis.wcs.InterpolationMethodBaseTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ows.CodeType => scalaxb.toXML[opengis.ows.CodeType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisows_CodeTypeFormat extends scalaxb.XMLFormat[opengis.ows.CodeType] with scalaxb.CanWriteChildNodes[opengis.ows.CodeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.CodeType] = seq match {
      case node: scala.xml.Node => Right(opengis.ows.CodeType(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@codeSpace").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@codeSpace" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.ows.CodeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@codeSpace", _) => __obj.codeSpace foreach { x => attr = scala.xml.Attribute(null, "codeSpace", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.CodeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisows_ResponsiblePartyTypeFormat extends scalaxb.ElemNameParser[opengis.ows.ResponsiblePartyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("ResponsiblePartyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.ResponsiblePartyType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "IndividualName")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "OrganisationName")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "PositionName")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ContactInfo")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Role")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.ows.ResponsiblePartyType(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.ows.ContactType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.ows.CodeTypable](p5, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.ows.ResponsiblePartyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.IndividualName map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("IndividualName"), __scope, false) } getOrElse {Nil},
        __obj.OrganisationName map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("OrganisationName"), __scope, false) } getOrElse {Nil},
        __obj.PositionName map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("PositionName"), __scope, false) } getOrElse {Nil},
        __obj.ContactInfo map { scalaxb.toXML[opengis.ows.ContactType](_, Some("http://www.opengis.net/ows/1.1"), Some("ContactInfo"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.ows.CodeTypable](__obj.Role, Some("http://www.opengis.net/ows/1.1"), Some("Role"), __scope, false))

  }

  trait DefaultOpengisows_ResponsiblePartySubsetTypeFormat extends scalaxb.ElemNameParser[opengis.ows.ResponsiblePartySubsetType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("ResponsiblePartySubsetType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.ResponsiblePartySubsetType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "IndividualName")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "PositionName")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ContactInfo")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Role")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.ows.ResponsiblePartySubsetType(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.ows.ContactType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.ows.CodeTypable](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ows.ResponsiblePartySubsetType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.IndividualName map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("IndividualName"), __scope, false) } getOrElse {Nil},
        __obj.PositionName map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("PositionName"), __scope, false) } getOrElse {Nil},
        __obj.ContactInfo map { scalaxb.toXML[opengis.ows.ContactType](_, Some("http://www.opengis.net/ows/1.1"), Some("ContactInfo"), __scope, false) } getOrElse {Nil},
        __obj.Role map { scalaxb.toXML[opengis.ows.CodeTypable](_, Some("http://www.opengis.net/ows/1.1"), Some("Role"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisows_ContactTypeFormat extends scalaxb.ElemNameParser[opengis.ows.ContactType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("ContactType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.ContactType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Phone")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Address")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "OnlineResource")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "HoursOfService")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ContactInstructions")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.ows.ContactType(p1.headOption map { scalaxb.fromXML[opengis.ows.TelephoneType](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.ows.AddressType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.ows.OnlineResourceTypable](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ows.ContactType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Phone map { scalaxb.toXML[opengis.ows.TelephoneType](_, Some("http://www.opengis.net/ows/1.1"), Some("Phone"), __scope, false) } getOrElse {Nil},
        __obj.Address map { scalaxb.toXML[opengis.ows.AddressType](_, Some("http://www.opengis.net/ows/1.1"), Some("Address"), __scope, false) } getOrElse {Nil},
        __obj.OnlineResource map { scalaxb.toXML[opengis.ows.OnlineResourceTypable](_, Some("http://www.opengis.net/ows/1.1"), Some("OnlineResource"), __scope, false) } getOrElse {Nil},
        __obj.HoursOfService map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("HoursOfService"), __scope, false) } getOrElse {Nil},
        __obj.ContactInstructions map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("ContactInstructions"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisows_OnlineResourceTypableFormat extends scalaxb.XMLFormat[opengis.ows.OnlineResourceTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.OnlineResourceTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/ows/1.1"), Some("RequestMethodType")) => Right(scalaxb.fromXML[opengis.ows.RequestMethodType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.ows.OnlineResourceType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.ows.OnlineResourceTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.ows.RequestMethodType => scalaxb.toXML[opengis.ows.RequestMethodType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wmts.LegendURL => scalaxb.toXML[opengis.wmts.LegendURL](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ows.OnlineResourceType => scalaxb.toXML[opengis.ows.OnlineResourceType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisows_OnlineResourceTypeFormat extends scalaxb.XMLFormat[opengis.ows.OnlineResourceType] with scalaxb.CanWriteChildNodes[opengis.ows.OnlineResourceType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.OnlineResourceType] = seq match {
      case node: scala.xml.Node => Right(opengis.ows.OnlineResourceType(scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.ows.OnlineResourceType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.OnlineResourceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisows_TelephoneTypeFormat extends scalaxb.ElemNameParser[opengis.ows.TelephoneType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("TelephoneType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.TelephoneType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Voice")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Facsimile")) ^^
      { case p1 ~ p2 =>
      opengis.ows.TelephoneType(p1 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ows.TelephoneType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Voice flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("Voice"), __scope, false) },
        __obj.Facsimile flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("Facsimile"), __scope, false) })

  }

  trait DefaultOpengisows_AddressTypeFormat extends scalaxb.ElemNameParser[opengis.ows.AddressType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("AddressType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.AddressType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "DeliveryPoint")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "City")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "AdministrativeArea")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "PostalCode")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Country")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ElectronicMailAddress")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.ows.AddressType(p1 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p6 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ows.AddressType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.DeliveryPoint flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("DeliveryPoint"), __scope, false) },
        __obj.City map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("City"), __scope, false) } getOrElse {Nil},
        __obj.AdministrativeArea map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("AdministrativeArea"), __scope, false) } getOrElse {Nil},
        __obj.PostalCode map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("PostalCode"), __scope, false) } getOrElse {Nil},
        __obj.Country map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("Country"), __scope, false) } getOrElse {Nil},
        __obj.ElectronicMailAddress flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("ElectronicMailAddress"), __scope, false) })

  }

  trait DefaultOpengisows_MetadataTypeFormat extends scalaxb.ElemNameParser[opengis.ows.MetadataType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("MetadataType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.MetadataType] =
      phrase(opt(any(_ => true)) ^^
      { case p1 =>
      opengis.ows.MetadataType(p1.headOption map { scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@about").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@about" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.ows.MetadataType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@about", _) => __obj.about foreach { x => attr = scala.xml.Attribute(null, "about", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.MetadataType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.AbstractMetaData map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, true) } getOrElse {Nil})

  }

  trait DefaultOpengisows_BoundingBoxTypableFormat extends scalaxb.XMLFormat[opengis.ows.BoundingBoxTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.BoundingBoxTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/ows/1.1"), Some("WGS84BoundingBoxType")) => Right(scalaxb.fromXML[opengis.ows.WGS84BoundingBoxType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.ows.BoundingBoxType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.ows.BoundingBoxTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.ows.WGS84BoundingBoxType => scalaxb.toXML[opengis.ows.WGS84BoundingBoxType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ows.BoundingBoxType => scalaxb.toXML[opengis.ows.BoundingBoxType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisows_BoundingBoxTypeFormat extends scalaxb.ElemNameParser[opengis.ows.BoundingBoxType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("BoundingBoxType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.BoundingBoxType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "LowerCorner")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "UpperCorner")) ^^
      { case p1 ~ p2 =>
      opengis.ows.BoundingBoxType(scalaxb.fromXML[Seq[Double]](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[Seq[Double]](p2, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@crs").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@crs" -> _ },
        (node \ "@dimensions").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@dimensions" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.ows.BoundingBoxType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@crs", _) => __obj.crs foreach { x => attr = scala.xml.Attribute(null, "crs", x.toString, attr) }
        case ("@dimensions", _) => __obj.dimensions foreach { x => attr = scala.xml.Attribute(null, "dimensions", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.BoundingBoxType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[Seq[Double]](__obj.LowerCorner, Some("http://www.opengis.net/ows/1.1"), Some("LowerCorner"), __scope, false),
        scalaxb.toXML[Seq[Double]](__obj.UpperCorner, Some("http://www.opengis.net/ows/1.1"), Some("UpperCorner"), __scope, false))

  }

  trait DefaultOpengisows_WGS84BoundingBoxTypeFormat extends scalaxb.ElemNameParser[opengis.ows.WGS84BoundingBoxType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("WGS84BoundingBoxType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.WGS84BoundingBoxType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "LowerCorner")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "UpperCorner")) ^^
      { case p1 ~ p2 =>
      opengis.ows.WGS84BoundingBoxType(scalaxb.fromXML[Seq[Double]](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[Seq[Double]](p2, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@crs").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@crs" -> _ },
        (node \ "@dimensions").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@dimensions" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.ows.WGS84BoundingBoxType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@crs", _) => __obj.crs foreach { x => attr = scala.xml.Attribute(null, "crs", x.toString, attr) }
        case ("@dimensions", _) => __obj.dimensions foreach { x => attr = scala.xml.Attribute(null, "dimensions", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.WGS84BoundingBoxType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[Seq[Double]](__obj.LowerCorner, Some("http://www.opengis.net/ows/1.1"), Some("LowerCorner"), __scope, false),
        scalaxb.toXML[Seq[Double]](__obj.UpperCorner, Some("http://www.opengis.net/ows/1.1"), Some("UpperCorner"), __scope, false))

  }

  trait DefaultOpengisows_ContentsBaseTypableFormat extends scalaxb.XMLFormat[opengis.ows.ContentsBaseTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.ContentsBaseTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/wmts/1.0"), Some("ContentsType")) => Right(scalaxb.fromXML[opengis.wmts.ContentsType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.ows.ContentsBaseType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.ows.ContentsBaseTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.wmts.ContentsType => scalaxb.toXML[opengis.wmts.ContentsType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ows.ContentsBaseType => scalaxb.toXML[opengis.ows.ContentsBaseType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisows_ContentsBaseTypeFormat extends scalaxb.ElemNameParser[opengis.ows.ContentsBaseType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("ContentsBaseType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.ContentsBaseType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Layer")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wmts.LayerType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Layer")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wmts.LayerType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "DatasetDescriptionSummary")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.DatasetDescriptionSummaryBaseTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "OtherSource")) ^^
      { case p1 ~ p2 =>
      opengis.ows.ContentsBaseType(p1,
        p2 map { scalaxb.fromXML[opengis.ows.MetadataType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ows.ContentsBaseType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.DatasetDescriptionSummary flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) },
        __obj.OtherSource flatMap { scalaxb.toXML[opengis.ows.MetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("OtherSource"), __scope, false) })

  }

  trait DefaultOpengisows_DatasetDescriptionSummaryBaseTypableFormat extends scalaxb.XMLFormat[opengis.ows.DatasetDescriptionSummaryBaseTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.DatasetDescriptionSummaryBaseTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/wmts/1.0"), Some("LayerType")) => Right(scalaxb.fromXML[opengis.wmts.LayerType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.ows.DatasetDescriptionSummaryBaseType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.ows.DatasetDescriptionSummaryBaseTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.wmts.LayerType => scalaxb.toXML[opengis.wmts.LayerType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ows.DatasetDescriptionSummaryBaseType => scalaxb.toXML[opengis.ows.DatasetDescriptionSummaryBaseType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisows_DatasetDescriptionSummaryBaseTypeFormat extends scalaxb.ElemNameParser[opengis.ows.DatasetDescriptionSummaryBaseType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("DatasetDescriptionSummaryBaseType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.DatasetDescriptionSummaryBaseType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Title")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Keywords")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "WGS84BoundingBox")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Identifier")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "WGS84BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.WGS84BoundingBoxType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "WGS84BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.WGS84BoundingBoxType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.BoundingBoxTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Metadata")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Layer")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wmts.LayerType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Layer")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wmts.LayerType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "DatasetDescriptionSummary")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.DatasetDescriptionSummaryBaseTypable](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 =>
      opengis.ows.DatasetDescriptionSummaryBaseType(p1 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.ows.WGS84BoundingBoxType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.ows.CodeTypable](p5, scalaxb.ElemName(node) :: stack),
        p6,
        p7 map { scalaxb.fromXML[opengis.ows.MetadataType](_, scalaxb.ElemName(node) :: stack) },
        p8) })
    
    def writesChildNodes(__obj: opengis.ows.DatasetDescriptionSummaryBaseType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Title"), __scope, false) },
        __obj.AbstractValue flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Abstract"), __scope, false) },
        __obj.Keywords flatMap { scalaxb.toXML[opengis.ows.KeywordsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Keywords"), __scope, false) },
        __obj.WGS84BoundingBox flatMap { scalaxb.toXML[opengis.ows.WGS84BoundingBoxType](_, Some("http://www.opengis.net/ows/1.1"), Some("WGS84BoundingBox"), __scope, false) },
        scalaxb.toXML[opengis.ows.CodeTypable](__obj.Identifier, Some("http://www.opengis.net/ows/1.1"), Some("Identifier"), __scope, false),
        __obj.BoundingBox flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) },
        __obj.Metadata flatMap { scalaxb.toXML[opengis.ows.MetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("Metadata"), __scope, false) },
        __obj.DatasetDescriptionSummary flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisows_DescriptionTypableFormat extends scalaxb.XMLFormat[opengis.ows.DescriptionTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.DescriptionTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/ows/1.1"), Some("BasicIdentificationType")) => Right(scalaxb.fromXML[opengis.ows.BasicIdentificationTypable](node, stack))
          case (Some("http://www.opengis.net/ows/1.1"), Some("ReferenceGroupType")) => Right(scalaxb.fromXML[opengis.ows.ReferenceGroupType](node, stack))
          case (Some("http://www.opengis.net/ows/1.1"), Some("ManifestType")) => Right(scalaxb.fromXML[opengis.ows.ManifestType](node, stack))
          case (Some("http://www.opengis.net/ows/1.1"), Some("IdentificationType")) => Right(scalaxb.fromXML[opengis.ows.IdentificationType](node, stack))
          case (Some("http://www.opengis.net/ows/1.1"), Some("DatasetDescriptionSummaryBaseType")) => Right(scalaxb.fromXML[opengis.ows.DatasetDescriptionSummaryBaseTypable](node, stack))
          case (Some("http://www.opengis.net/wmts/1.0"), Some("LayerType")) => Right(scalaxb.fromXML[opengis.wmts.LayerType](node, stack))
          case (Some("http://www.opengis.net/wcs/1.1.1"), Some("CoverageSummaryType")) => Right(scalaxb.fromXML[opengis.wcs.CoverageSummaryType](node, stack))
          case (Some("http://www.opengis.net/wcs/1.1.1"), Some("FieldType")) => Right(scalaxb.fromXML[opengis.wcs.FieldType](node, stack))
          case (Some("http://www.opengis.net/wcs/1.1.1"), Some("CoverageDescriptionType")) => Right(scalaxb.fromXML[opengis.wcs.CoverageDescriptionType](node, stack))
          case (Some("http://www.opengis.net/wcs/1.1.1"), Some("AxisType")) => Right(scalaxb.fromXML[opengis.wcs.AxisType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.ows.DescriptionType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.ows.DescriptionTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.ows.BasicIdentificationTypable => scalaxb.toXML[opengis.ows.BasicIdentificationTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ows.DatasetDescriptionSummaryBaseTypable => scalaxb.toXML[opengis.ows.DatasetDescriptionSummaryBaseTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wcs.CoverageSummaryType => scalaxb.toXML[opengis.wcs.CoverageSummaryType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wcs.FieldType => scalaxb.toXML[opengis.wcs.FieldType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wcs.CoverageDescriptionType => scalaxb.toXML[opengis.wcs.CoverageDescriptionType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wcs.AxisType => scalaxb.toXML[opengis.wcs.AxisType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ows.ServiceIdentification => scalaxb.toXML[opengis.ows.ServiceIdentification](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wmts.Theme => scalaxb.toXML[opengis.wmts.Theme](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wmts.TileMatrix => scalaxb.toXML[opengis.wmts.TileMatrix](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wmts.TileMatrixSet => scalaxb.toXML[opengis.wmts.TileMatrixSet](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wmts.Dimension => scalaxb.toXML[opengis.wmts.Dimension](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wmts.Style => scalaxb.toXML[opengis.wmts.Style](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ows.DescriptionType => scalaxb.toXML[opengis.ows.DescriptionType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisows_DescriptionTypeFormat extends scalaxb.ElemNameParser[opengis.ows.DescriptionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("DescriptionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.DescriptionType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Title")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Keywords")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.ows.DescriptionType(p1 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ows.DescriptionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Title"), __scope, false) },
        __obj.AbstractValue flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Abstract"), __scope, false) },
        __obj.Keywords flatMap { scalaxb.toXML[opengis.ows.KeywordsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Keywords"), __scope, false) })

  }

  trait DefaultOpengisows_BasicIdentificationTypableFormat extends scalaxb.XMLFormat[opengis.ows.BasicIdentificationTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.BasicIdentificationTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/ows/1.1"), Some("ReferenceGroupType")) => Right(scalaxb.fromXML[opengis.ows.ReferenceGroupType](node, stack))
          case (Some("http://www.opengis.net/ows/1.1"), Some("ManifestType")) => Right(scalaxb.fromXML[opengis.ows.ManifestType](node, stack))
          case (Some("http://www.opengis.net/ows/1.1"), Some("IdentificationType")) => Right(scalaxb.fromXML[opengis.ows.IdentificationType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.ows.BasicIdentificationType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.ows.BasicIdentificationTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.ows.ReferenceGroupType => scalaxb.toXML[opengis.ows.ReferenceGroupType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ows.ManifestType => scalaxb.toXML[opengis.ows.ManifestType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ows.IdentificationType => scalaxb.toXML[opengis.ows.IdentificationType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ows.BasicIdentificationType => scalaxb.toXML[opengis.ows.BasicIdentificationType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisows_BasicIdentificationTypeFormat extends scalaxb.ElemNameParser[opengis.ows.BasicIdentificationType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("BasicIdentificationType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.BasicIdentificationType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Title")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Keywords")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Identifier")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Metadata")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.ows.BasicIdentificationType(p1 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.ows.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        p5 map { scalaxb.fromXML[opengis.ows.MetadataType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ows.BasicIdentificationType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Title"), __scope, false) },
        __obj.AbstractValue flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Abstract"), __scope, false) },
        __obj.Keywords flatMap { scalaxb.toXML[opengis.ows.KeywordsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Keywords"), __scope, false) },
        __obj.Identifier map { scalaxb.toXML[opengis.ows.CodeTypable](_, Some("http://www.opengis.net/ows/1.1"), Some("Identifier"), __scope, false) } getOrElse {Nil},
        __obj.Metadata flatMap { scalaxb.toXML[opengis.ows.MetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("Metadata"), __scope, false) })

  }

  trait DefaultOpengisows_IdentificationTypeFormat extends scalaxb.ElemNameParser[opengis.ows.IdentificationType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("IdentificationType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.IdentificationType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Title")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Keywords")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Identifier")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Metadata")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "WGS84BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.WGS84BoundingBoxType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "WGS84BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.WGS84BoundingBoxType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.BoundingBoxTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "OutputFormat")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "AvailableCRS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "SupportedCRS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "SupportedCRS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 =>
      opengis.ows.IdentificationType(p1 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.ows.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        p5 map { scalaxb.fromXML[opengis.ows.MetadataType](_, scalaxb.ElemName(node) :: stack) },
        p6,
        p7 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p8) })
    
    def writesChildNodes(__obj: opengis.ows.IdentificationType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Title"), __scope, false) },
        __obj.AbstractValue flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Abstract"), __scope, false) },
        __obj.Keywords flatMap { scalaxb.toXML[opengis.ows.KeywordsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Keywords"), __scope, false) },
        __obj.Identifier map { scalaxb.toXML[opengis.ows.CodeTypable](_, Some("http://www.opengis.net/ows/1.1"), Some("Identifier"), __scope, false) } getOrElse {Nil},
        __obj.Metadata flatMap { scalaxb.toXML[opengis.ows.MetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("Metadata"), __scope, false) },
        __obj.BoundingBox flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) },
        __obj.OutputFormat flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("OutputFormat"), __scope, false) },
        __obj.AvailableCRS flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisows_DomainTypeFormat extends scalaxb.ElemNameParser[opengis.ows.DomainType] with Opengisows_PossibleValuesGroupFormat with Opengisows_ValuesUnitGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("DomainType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.DomainType] =
      phrase((parsePossibleValuesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "DefaultValue")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Meaning")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "DataType")) ~ 
      opt(parseValuesUnitGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Metadata")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.ows.DomainType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.ows.ValueType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.ows.DomainMetadataType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.ows.DomainMetadataType](_, scalaxb.ElemName(node) :: stack) },
        p5,
        p6 map { scalaxb.fromXML[opengis.ows.MetadataType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@name").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@name" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.ows.DomainType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@name", _) => attr = scala.xml.Attribute(null, "name", __obj.name.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.DomainType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat((Some(__obj.possibleValuesOption1) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.ows.PossibleValuesOption]](x, x.namespace, x.key, __scope, false)}).get,
        __obj.DefaultValue map { scalaxb.toXML[opengis.ows.ValueType](_, Some("http://www.opengis.net/ows/1.1"), Some("DefaultValue"), __scope, false) } getOrElse {Nil},
        __obj.Meaning map { scalaxb.toXML[opengis.ows.DomainMetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("Meaning"), __scope, false) } getOrElse {Nil},
        __obj.DataType map { scalaxb.toXML[opengis.ows.DomainMetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("DataType"), __scope, false) } getOrElse {Nil},
        __obj.valuesUnitOption5 map { x => scalaxb.toXML[scalaxb.DataRecord[opengis.ows.ValuesUnitOption]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        __obj.Metadata flatMap { scalaxb.toXML[opengis.ows.MetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("Metadata"), __scope, false) })

  }

  trait DefaultOpengisows_UnNamedDomainTypableFormat extends scalaxb.XMLFormat[opengis.ows.UnNamedDomainTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.UnNamedDomainTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/ows/1.1"), Some("DomainType")) => Right(scalaxb.fromXML[opengis.ows.DomainType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.ows.UnNamedDomainType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.ows.UnNamedDomainTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.ows.DomainType => scalaxb.toXML[opengis.ows.DomainType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ows.UnNamedDomainType => scalaxb.toXML[opengis.ows.UnNamedDomainType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisows_UnNamedDomainTypeFormat extends scalaxb.ElemNameParser[opengis.ows.UnNamedDomainType] with Opengisows_PossibleValuesGroupFormat with Opengisows_ValuesUnitGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("UnNamedDomainType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.UnNamedDomainType] =
      phrase((parsePossibleValuesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "DefaultValue")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Meaning")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "DataType")) ~ 
      opt(parseValuesUnitGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Metadata")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.ows.UnNamedDomainType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.ows.ValueType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.ows.DomainMetadataType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.ows.DomainMetadataType](_, scalaxb.ElemName(node) :: stack) },
        p5,
        p6 map { scalaxb.fromXML[opengis.ows.MetadataType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ows.UnNamedDomainType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat((Some(__obj.possibleValuesOption1) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.ows.PossibleValuesOption]](x, x.namespace, x.key, __scope, false)}).get,
        __obj.DefaultValue map { scalaxb.toXML[opengis.ows.ValueType](_, Some("http://www.opengis.net/ows/1.1"), Some("DefaultValue"), __scope, false) } getOrElse {Nil},
        __obj.Meaning map { scalaxb.toXML[opengis.ows.DomainMetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("Meaning"), __scope, false) } getOrElse {Nil},
        __obj.DataType map { scalaxb.toXML[opengis.ows.DomainMetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("DataType"), __scope, false) } getOrElse {Nil},
        __obj.valuesUnitOption5 map { x => scalaxb.toXML[scalaxb.DataRecord[opengis.ows.ValuesUnitOption]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        __obj.Metadata flatMap { scalaxb.toXML[opengis.ows.MetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("Metadata"), __scope, false) })

  }

  trait DefaultOpengisows_AnyValueFormat extends scalaxb.XMLFormat[opengis.ows.AnyValue] with scalaxb.CanWriteChildNodes[opengis.ows.AnyValue] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.AnyValue] = seq match {
      case node: scala.xml.Node => Right(opengis.ows.AnyValue())
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def writesChildNodes(__obj: opengis.ows.AnyValue, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisows_NoValuesFormat extends scalaxb.XMLFormat[opengis.ows.NoValues] with scalaxb.CanWriteChildNodes[opengis.ows.NoValues] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.NoValues] = seq match {
      case node: scala.xml.Node => Right(opengis.ows.NoValues())
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def writesChildNodes(__obj: opengis.ows.NoValues, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisows_ValuesReferenceFormat extends scalaxb.XMLFormat[opengis.ows.ValuesReference] with scalaxb.CanWriteChildNodes[opengis.ows.ValuesReference] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.ValuesReference] = seq match {
      case node: scala.xml.Node => Right(opengis.ows.ValuesReference(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/ows/1.1}reference").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/ows/1.1}reference" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.ows.ValuesReference, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/ows/1.1}reference", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/ows/1.1"), "reference", __obj.owsreference.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.ValuesReference, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisows_AllowedValuesFormat extends scalaxb.ElemNameParser[opengis.ows.AllowedValues] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.AllowedValues] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Value")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.ValueType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Range")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.RangeType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.ows.AllowedValues(p1) })
    
    def writesChildNodes(__obj: opengis.ows.AllowedValues, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.allowedvaluesoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.ows.AllowedValuesOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisows_ValueTypeFormat extends scalaxb.XMLFormat[opengis.ows.ValueType] with scalaxb.CanWriteChildNodes[opengis.ows.ValueType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.ValueType] = seq match {
      case node: scala.xml.Node => Right(opengis.ows.ValueType(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def writesChildNodes(__obj: opengis.ows.ValueType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengisows_RangeTypeFormat extends scalaxb.ElemNameParser[opengis.ows.RangeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("RangeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.RangeType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "MinimumValue")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "MaximumValue")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Spacing")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.ows.RangeType(p1.headOption map { scalaxb.fromXML[opengis.ows.ValueType](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.ows.ValueType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.ows.ValueType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/ows/1.1}rangeClosure").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.ows.RangeClosure](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/ows/1.1}rangeClosure" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.ows.RangeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/ows/1.1}rangeClosure", _) => __obj.owsrangeClosure foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/ows/1.1"), "rangeClosure", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.RangeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.MinimumValue map { scalaxb.toXML[opengis.ows.ValueType](_, Some("http://www.opengis.net/ows/1.1"), Some("MinimumValue"), __scope, false) } getOrElse {Nil},
        __obj.MaximumValue map { scalaxb.toXML[opengis.ows.ValueType](_, Some("http://www.opengis.net/ows/1.1"), Some("MaximumValue"), __scope, false) } getOrElse {Nil},
        __obj.Spacing map { scalaxb.toXML[opengis.ows.ValueType](_, Some("http://www.opengis.net/ows/1.1"), Some("Spacing"), __scope, false) } getOrElse {Nil})

  }

  def buildOpengisows_RangeClosureFormat = new DefaultOpengisows_RangeClosureFormat {}
  trait DefaultOpengisows_RangeClosureFormat extends scalaxb.XMLFormat[opengis.ows.RangeClosure] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.ows.RangeClosure =
        (fromString0(value, scope)).apply(scalaxb.fromXML[Seq[String]](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.ows.RangeClosure] = {
      case x: Seq[String] if x == scalaxb.fromXML[Seq[String]](scala.xml.Text("closed")) => opengis.ows.Closed
      case x: Seq[String] if x == scalaxb.fromXML[Seq[String]](scala.xml.Text("open")) => opengis.ows.Open
      case x: Seq[String] if x == scalaxb.fromXML[Seq[String]](scala.xml.Text("open-closed")) => opengis.ows.Openu45closed
      case x: Seq[String] if x == scalaxb.fromXML[Seq[String]](scala.xml.Text("closed-open")) => opengis.ows.Closedu45open

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.RangeClosure] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.ows.RangeClosure, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisows_DomainMetadataTypeFormat extends scalaxb.XMLFormat[opengis.ows.DomainMetadataType] with scalaxb.CanWriteChildNodes[opengis.ows.DomainMetadataType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.DomainMetadataType] = seq match {
      case node: scala.xml.Node => Right(opengis.ows.DomainMetadataType(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/ows/1.1}reference").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/ows/1.1}reference" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.ows.DomainMetadataType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/ows/1.1}reference", _) => __obj.owsreference foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/ows/1.1"), "reference", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.DomainMetadataType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }


/** Indicates that this quantity has units or a reference system, and identifies the unit or reference system used by the AllowedValues or ValuesReference. 
*/
  trait Opengisows_ValuesUnitGroupFormat extends scalaxb.AnyElemNameParser {
    def parseValuesUnitGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[scalaxb.DataRecord[opengis.ows.ValuesUnitOption]] =
      (((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "UOM")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.DomainMetadataType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ReferenceSystem")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.DomainMetadataType](x, scalaxb.ElemName(node) :: stack)))))
  
    def parseValuesUnitGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[opengis.ows.ValuesUnitOption]] =
      (((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "UOM")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.DomainMetadataType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ReferenceSystem")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.DomainMetadataType](x, scalaxb.ElemName(node) :: stack)))))
    
    def parsemixedValuesUnitGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      (((((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "UOM")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.DomainMetadataType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ReferenceSystem")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.DomainMetadataType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }))
  }


/** Specifies the possible values of this quantity. 
*/
  trait Opengisows_PossibleValuesGroupFormat extends scalaxb.AnyElemNameParser {
    def parsePossibleValuesGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[scalaxb.DataRecord[opengis.ows.PossibleValuesOption]] =
      (((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "AllowedValues")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.AllowedValues](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "AnyValue")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.AnyValue](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "NoValues")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.NoValues](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ValuesReference")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.ValuesReference](x, scalaxb.ElemName(node) :: stack)))))
  
    def parsePossibleValuesGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[opengis.ows.PossibleValuesOption]] =
      (((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "AllowedValues")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.AllowedValues](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "AnyValue")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.AnyValue](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "NoValues")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.NoValues](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ValuesReference")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.ValuesReference](x, scalaxb.ElemName(node) :: stack)))))
    
    def parsemixedPossibleValuesGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      (((((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "AllowedValues")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.AllowedValues](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "AnyValue")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.AnyValue](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "NoValues")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.NoValues](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ValuesReference")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.ValuesReference](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }))
  }

  trait DefaultOpengisows_ExceptionReportFormat extends scalaxb.ElemNameParser[opengis.ows.ExceptionReport] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.ExceptionReport] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Exception")) ^^
      { case p1 =>
      opengis.ows.ExceptionReport(p1 map { scalaxb.fromXML[opengis.ows.ExceptionType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@version" -> _ },
        (node \ "@{http://www.w3.org/XML/1998/namespace}lang").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/XML/1998/namespace}lang" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.ows.ExceptionReport, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@version", _) => attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case ("@{http://www.w3.org/XML/1998/namespace}lang", _) => __obj.xmllang foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/XML/1998/namespace"), "lang", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.ExceptionReport, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Exception flatMap { scalaxb.toXML[opengis.ows.ExceptionType](_, Some("http://www.opengis.net/ows/1.1"), Some("Exception"), __scope, false) })

  }

  trait DefaultOpengisows_ExceptionTypeFormat extends scalaxb.ElemNameParser[opengis.ows.ExceptionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("ExceptionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.ExceptionType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ExceptionText")) ^^
      { case p1 =>
      opengis.ows.ExceptionType(p1 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@exceptionCode").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@exceptionCode" -> _ },
        (node \ "@locator").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@locator" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.ows.ExceptionType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@exceptionCode", _) => attr = scala.xml.Attribute(null, "exceptionCode", __obj.exceptionCode.toString, attr)
        case ("@locator", _) => __obj.locator foreach { x => attr = scala.xml.Attribute(null, "locator", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.ExceptionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.ExceptionText flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("ExceptionText"), __scope, false) })

  }

  trait DefaultOpengisows_CapabilitiesBaseTypableFormat extends scalaxb.XMLFormat[opengis.ows.CapabilitiesBaseTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.CapabilitiesBaseTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          
          case _ => Right(scalaxb.fromXML[opengis.ows.CapabilitiesBaseType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.ows.CapabilitiesBaseTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.wcs.Capabilities => scalaxb.toXML[opengis.wcs.Capabilities](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wmts.Capabilities => scalaxb.toXML[opengis.wmts.Capabilities](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ows.CapabilitiesBaseType => scalaxb.toXML[opengis.ows.CapabilitiesBaseType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisows_CapabilitiesBaseTypeFormat extends scalaxb.ElemNameParser[opengis.ows.CapabilitiesBaseType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("CapabilitiesBaseType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.CapabilitiesBaseType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ServiceIdentification")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ServiceProvider")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "OperationsMetadata")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.ows.CapabilitiesBaseType(p1.headOption map { scalaxb.fromXML[opengis.ows.ServiceIdentification](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.ows.ServiceProvider](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.ows.OperationsMetadata](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@version" -> _ },
        (node \ "@updateSequence").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@updateSequence" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.ows.CapabilitiesBaseType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@version", _) => attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case ("@updateSequence", _) => __obj.updateSequence foreach { x => attr = scala.xml.Attribute(null, "updateSequence", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.CapabilitiesBaseType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.ServiceIdentification map { scalaxb.toXML[opengis.ows.ServiceIdentification](_, Some("http://www.opengis.net/ows/1.1"), Some("ServiceIdentification"), __scope, false) } getOrElse {Nil},
        __obj.ServiceProvider map { scalaxb.toXML[opengis.ows.ServiceProvider](_, Some("http://www.opengis.net/ows/1.1"), Some("ServiceProvider"), __scope, false) } getOrElse {Nil},
        __obj.OperationsMetadata map { scalaxb.toXML[opengis.ows.OperationsMetadata](_, Some("http://www.opengis.net/ows/1.1"), Some("OperationsMetadata"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisows_GetCapabilitiesTypableFormat extends scalaxb.XMLFormat[opengis.ows.GetCapabilitiesTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.GetCapabilitiesTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          
          case _ => Right(scalaxb.fromXML[opengis.ows.GetCapabilitiesType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.ows.GetCapabilitiesTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.wmts.GetCapabilities => scalaxb.toXML[opengis.wmts.GetCapabilities](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wcs.GetCapabilities => scalaxb.toXML[opengis.wcs.GetCapabilities](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ows.GetCapabilitiesType => scalaxb.toXML[opengis.ows.GetCapabilitiesType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisows_GetCapabilitiesTypeFormat extends scalaxb.ElemNameParser[opengis.ows.GetCapabilitiesType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("GetCapabilitiesType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.GetCapabilitiesType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "AcceptVersions")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Sections")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "AcceptFormats")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.ows.GetCapabilitiesType(p1.headOption map { scalaxb.fromXML[opengis.ows.AcceptVersionsType](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.ows.SectionsType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.ows.AcceptFormatsType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@updateSequence").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@updateSequence" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.ows.GetCapabilitiesType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@updateSequence", _) => __obj.updateSequence foreach { x => attr = scala.xml.Attribute(null, "updateSequence", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.GetCapabilitiesType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.AcceptVersions map { scalaxb.toXML[opengis.ows.AcceptVersionsType](_, Some("http://www.opengis.net/ows/1.1"), Some("AcceptVersions"), __scope, false) } getOrElse {Nil},
        __obj.Sections map { scalaxb.toXML[opengis.ows.SectionsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Sections"), __scope, false) } getOrElse {Nil},
        __obj.AcceptFormats map { scalaxb.toXML[opengis.ows.AcceptFormatsType](_, Some("http://www.opengis.net/ows/1.1"), Some("AcceptFormats"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisows_AcceptVersionsTypeFormat extends scalaxb.ElemNameParser[opengis.ows.AcceptVersionsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("AcceptVersionsType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.AcceptVersionsType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Version")) ^^
      { case p1 =>
      opengis.ows.AcceptVersionsType(p1 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ows.AcceptVersionsType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Version flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("Version"), __scope, false) })

  }

  trait DefaultOpengisows_SectionsTypeFormat extends scalaxb.ElemNameParser[opengis.ows.SectionsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("SectionsType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.SectionsType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Section")) ^^
      { case p1 =>
      opengis.ows.SectionsType(p1 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ows.SectionsType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Section flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("Section"), __scope, false) })

  }

  trait DefaultOpengisows_AcceptFormatsTypeFormat extends scalaxb.ElemNameParser[opengis.ows.AcceptFormatsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("AcceptFormatsType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.AcceptFormatsType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "OutputFormat")) ^^
      { case p1 =>
      opengis.ows.AcceptFormatsType(p1 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ows.AcceptFormatsType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.OutputFormat flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("OutputFormat"), __scope, false) })

  }

  trait DefaultOpengisows_GetResourceByIdTypeFormat extends scalaxb.ElemNameParser[opengis.ows.GetResourceByIdType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("GetResourceByIdType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.GetResourceByIdType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ResourceID")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "OutputFormat")) ^^
      { case p1 ~ p2 =>
      opengis.ows.GetResourceByIdType(p1 map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@service").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@service" -> _ },
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@version" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.ows.GetResourceByIdType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@service", _) => attr = scala.xml.Attribute(null, "service", __obj.service.toString, attr)
        case ("@version", _) => attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.GetResourceByIdType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.ResourceID flatMap { scalaxb.toXML[java.net.URI](_, Some("http://www.opengis.net/ows/1.1"), Some("ResourceID"), __scope, false) },
        __obj.OutputFormat map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("OutputFormat"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisows_ServiceReferenceTypeFormat extends scalaxb.ElemNameParser[opengis.ows.ServiceReferenceType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("ServiceReferenceType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.ServiceReferenceType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Identifier")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Abstract")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Format")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Metadata")) ~ 
      (((any(_ => true) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "RequestMessageReference")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.ows.ServiceReferenceType(p1.headOption map { scalaxb.fromXML[opengis.ows.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.ows.MetadataType](_, scalaxb.ElemName(node) :: stack) },
        p5,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.ows.ServiceReferenceType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/ows/1.1"), "type", __obj.typeValue.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", __obj.xlinkhref.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.ServiceReferenceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Identifier map { scalaxb.toXML[opengis.ows.CodeTypable](_, Some("http://www.opengis.net/ows/1.1"), Some("Identifier"), __scope, false) } getOrElse {Nil},
        __obj.AbstractValue flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Abstract"), __scope, false) },
        __obj.Format map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("Format"), __scope, false) } getOrElse {Nil},
        __obj.Metadata flatMap { scalaxb.toXML[opengis.ows.MetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("Metadata"), __scope, false) },
        (Some(__obj.servicereferencetypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisows_AbstractReferenceBaseTypableFormat extends scalaxb.XMLFormat[opengis.ows.AbstractReferenceBaseTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.AbstractReferenceBaseTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/ows/1.1"), Some("ReferenceType")) => Right(scalaxb.fromXML[opengis.ows.ReferenceTypable](node, stack))
          case (Some("http://www.opengis.net/ows/1.1"), Some("ServiceReferenceType")) => Right(scalaxb.fromXML[opengis.ows.ServiceReferenceType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.ows.AbstractReferenceBaseType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.ows.AbstractReferenceBaseTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.ows.ReferenceTypable => scalaxb.toXML[opengis.ows.ReferenceTypable](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ows.AbstractReferenceBaseType => scalaxb.toXML[opengis.ows.AbstractReferenceBaseType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisows_AbstractReferenceBaseTypeFormat extends scalaxb.XMLFormat[opengis.ows.AbstractReferenceBaseType] with scalaxb.CanWriteChildNodes[opengis.ows.AbstractReferenceBaseType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.AbstractReferenceBaseType] = seq match {
      case node: scala.xml.Node => Right(opengis.ows.AbstractReferenceBaseType(scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.ows.AbstractReferenceBaseType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/ows/1.1"), "type", __obj.typeValue.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", __obj.xlinkhref.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.AbstractReferenceBaseType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisows_ReferenceTypableFormat extends scalaxb.XMLFormat[opengis.ows.ReferenceTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ows.ReferenceTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/ows/1.1"), Some("ServiceReferenceType")) => Right(scalaxb.fromXML[opengis.ows.ServiceReferenceType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.ows.ReferenceType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.ows.ReferenceTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.ows.ServiceReferenceType => scalaxb.toXML[opengis.ows.ServiceReferenceType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.ows.ReferenceType => scalaxb.toXML[opengis.ows.ReferenceType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisows_ReferenceTypeFormat extends scalaxb.ElemNameParser[opengis.ows.ReferenceType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("ReferenceType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.ReferenceType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Identifier")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Abstract")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Format")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Metadata")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.ows.ReferenceType(p1.headOption map { scalaxb.fromXML[opengis.ows.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.ows.MetadataType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.ows.ReferenceType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/ows/1.1"), "type", __obj.typeValue.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", __obj.xlinkhref.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.ReferenceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Identifier map { scalaxb.toXML[opengis.ows.CodeTypable](_, Some("http://www.opengis.net/ows/1.1"), Some("Identifier"), __scope, false) } getOrElse {Nil},
        __obj.AbstractValue flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Abstract"), __scope, false) },
        __obj.Format map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("Format"), __scope, false) } getOrElse {Nil},
        __obj.Metadata flatMap { scalaxb.toXML[opengis.ows.MetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("Metadata"), __scope, false) })

  }

  trait DefaultOpengisows_ReferenceGroupTypeFormat extends scalaxb.ElemNameParser[opengis.ows.ReferenceGroupType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("ReferenceGroupType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.ReferenceGroupType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Title")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Keywords")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Identifier")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Metadata")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ServiceReference")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.ServiceReferenceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Reference")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.ReferenceTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Reference")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.ReferenceTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "AbstractReferenceBase")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.AbstractReferenceBaseTypable](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.ows.ReferenceGroupType(p1 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.ows.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        p5 map { scalaxb.fromXML[opengis.ows.MetadataType](_, scalaxb.ElemName(node) :: stack) },
        p6) })
    
    def writesChildNodes(__obj: opengis.ows.ReferenceGroupType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Title"), __scope, false) },
        __obj.AbstractValue flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Abstract"), __scope, false) },
        __obj.Keywords flatMap { scalaxb.toXML[opengis.ows.KeywordsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Keywords"), __scope, false) },
        __obj.Identifier map { scalaxb.toXML[opengis.ows.CodeTypable](_, Some("http://www.opengis.net/ows/1.1"), Some("Identifier"), __scope, false) } getOrElse {Nil},
        __obj.Metadata flatMap { scalaxb.toXML[opengis.ows.MetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("Metadata"), __scope, false) },
        __obj.AbstractReferenceBase flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisows_ManifestTypeFormat extends scalaxb.ElemNameParser[opengis.ows.ManifestType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("ManifestType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.ManifestType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Title")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Keywords")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Identifier")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Metadata")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ReferenceGroup")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.ReferenceGroupType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Coverage")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.ReferenceGroupType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Coverage")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.ReferenceGroupType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.ows.ManifestType(p1 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.ows.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        p5 map { scalaxb.fromXML[opengis.ows.MetadataType](_, scalaxb.ElemName(node) :: stack) },
        p6) })
    
    def writesChildNodes(__obj: opengis.ows.ManifestType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Title"), __scope, false) },
        __obj.AbstractValue flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Abstract"), __scope, false) },
        __obj.Keywords flatMap { scalaxb.toXML[opengis.ows.KeywordsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Keywords"), __scope, false) },
        __obj.Identifier map { scalaxb.toXML[opengis.ows.CodeTypable](_, Some("http://www.opengis.net/ows/1.1"), Some("Identifier"), __scope, false) } getOrElse {Nil},
        __obj.Metadata flatMap { scalaxb.toXML[opengis.ows.MetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("Metadata"), __scope, false) },
        __obj.ReferenceGroup flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisows_OperationsMetadataFormat extends scalaxb.ElemNameParser[opengis.ows.OperationsMetadata] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.OperationsMetadata] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Operation")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Parameter")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Constraint")) ~ 
      opt(any(_ => true)) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.ows.OperationsMetadata(p1 map { scalaxb.fromXML[opengis.ows.Operation](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.DomainType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.ows.DomainType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ows.OperationsMetadata, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Operation flatMap { scalaxb.toXML[opengis.ows.Operation](_, Some("http://www.opengis.net/ows/1.1"), Some("Operation"), __scope, false) },
        __obj.Parameter flatMap { scalaxb.toXML[opengis.ows.DomainType](_, Some("http://www.opengis.net/ows/1.1"), Some("Parameter"), __scope, false) },
        __obj.Constraint flatMap { scalaxb.toXML[opengis.ows.DomainType](_, Some("http://www.opengis.net/ows/1.1"), Some("Constraint"), __scope, false) },
        __obj.ExtendedCapabilities map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, true) } getOrElse {Nil})

  }

  trait DefaultOpengisows_OperationFormat extends scalaxb.ElemNameParser[opengis.ows.Operation] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.Operation] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "DCP")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Parameter")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Constraint")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Metadata")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.ows.Operation(p1 map { scalaxb.fromXML[opengis.ows.DCP](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.DomainType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.ows.DomainType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.ows.MetadataType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@name").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@name" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.ows.Operation, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@name", _) => attr = scala.xml.Attribute(null, "name", __obj.name.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.Operation, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.DCP flatMap { scalaxb.toXML[opengis.ows.DCP](_, Some("http://www.opengis.net/ows/1.1"), Some("DCP"), __scope, false) },
        __obj.Parameter flatMap { scalaxb.toXML[opengis.ows.DomainType](_, Some("http://www.opengis.net/ows/1.1"), Some("Parameter"), __scope, false) },
        __obj.Constraint flatMap { scalaxb.toXML[opengis.ows.DomainType](_, Some("http://www.opengis.net/ows/1.1"), Some("Constraint"), __scope, false) },
        __obj.Metadata flatMap { scalaxb.toXML[opengis.ows.MetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("Metadata"), __scope, false) })

  }

  trait DefaultOpengisows_DCPFormat extends scalaxb.ElemNameParser[opengis.ows.DCP] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.DCP] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "HTTP")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.HTTP](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.ows.DCP(p1) })
    
    def writesChildNodes(__obj: opengis.ows.DCP, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.dcpoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.ows.HTTP]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisows_HTTPFormat extends scalaxb.ElemNameParser[opengis.ows.HTTP] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.HTTP] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Get")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.RequestMethodType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Post")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.RequestMethodType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.ows.HTTP(p1) })
    
    def writesChildNodes(__obj: opengis.ows.HTTP, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.httpoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.ows.HTTPOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisows_RequestMethodTypeFormat extends scalaxb.ElemNameParser[opengis.ows.RequestMethodType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    override def typeName: Option[String] = Some("RequestMethodType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.RequestMethodType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Constraint")) ^^
      { case p1 =>
      opengis.ows.RequestMethodType(p1 map { scalaxb.fromXML[opengis.ows.DomainType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.ows.RequestMethodType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ows.RequestMethodType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Constraint flatMap { scalaxb.toXML[opengis.ows.DomainType](_, Some("http://www.opengis.net/ows/1.1"), Some("Constraint"), __scope, false) })

  }

  trait DefaultOpengisows_ServiceIdentificationFormat extends scalaxb.ElemNameParser[opengis.ows.ServiceIdentification] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.ServiceIdentification] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Title")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Keywords")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ServiceType")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ServiceTypeVersion")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Profile")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Fees")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "AccessConstraints")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 =>
      opengis.ows.ServiceIdentification(p1 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.ows.CodeTypable](p4, scalaxb.ElemName(node) :: stack),
        p5 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p6 map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
        p7.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p8 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.ows.ServiceIdentification, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Title"), __scope, false) },
        __obj.AbstractValue flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Abstract"), __scope, false) },
        __obj.Keywords flatMap { scalaxb.toXML[opengis.ows.KeywordsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Keywords"), __scope, false) },
        scalaxb.toXML[opengis.ows.CodeTypable](__obj.ServiceType, Some("http://www.opengis.net/ows/1.1"), Some("ServiceType"), __scope, false),
        __obj.ServiceTypeVersion flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("ServiceTypeVersion"), __scope, false) },
        __obj.Profile flatMap { scalaxb.toXML[java.net.URI](_, Some("http://www.opengis.net/ows/1.1"), Some("Profile"), __scope, false) },
        __obj.Fees map { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("Fees"), __scope, false) } getOrElse {Nil},
        __obj.AccessConstraints flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/ows/1.1"), Some("AccessConstraints"), __scope, false) })

  }

  trait DefaultOpengisows_ServiceProviderFormat extends scalaxb.ElemNameParser[opengis.ows.ServiceProvider] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ows/1.1")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ows.ServiceProvider] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ProviderName")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ProviderSite")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ServiceContact")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.ows.ServiceProvider(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        p2.headOption map { scalaxb.fromXML[opengis.ows.OnlineResourceTypable](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.ows.ResponsiblePartySubsetType](p3, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.ows.ServiceProvider, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.ProviderName, Some("http://www.opengis.net/ows/1.1"), Some("ProviderName"), __scope, false),
        __obj.ProviderSite map { scalaxb.toXML[opengis.ows.OnlineResourceTypable](_, Some("http://www.opengis.net/ows/1.1"), Some("ProviderSite"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.ows.ResponsiblePartySubsetType](__obj.ServiceContact, Some("http://www.opengis.net/ows/1.1"), Some("ServiceContact"), __scope, false))

  }

  trait DefaultOpengisse_FeatureTypeStyleTypeFormat extends scalaxb.ElemNameParser[opengis.se.FeatureTypeStyleType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("FeatureTypeStyleType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.FeatureTypeStyleType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Name")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Description")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "FeatureTypeName")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/se"), "SemanticTypeIdentifier")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/se"), "Rule")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.RuleType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "OnlineResource")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.OnlineResourceType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.se.FeatureTypeStyleType(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.se.DescriptionType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[javax.xml.namespace.QName](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p5,
        scala.collection.immutable.ListMap(List(
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.se.VersionType](x, scalaxb.ElemName(node) :: stack)) } map { "@version" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.FeatureTypeStyleType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@version", _) => __obj.version foreach { x => attr = scala.xml.Attribute(null, "version", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.FeatureTypeStyleType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Name map { scalaxb.toXML[String](_, Some("http://www.opengis.net/se"), Some("Name"), __scope, false) } getOrElse {Nil},
        __obj.Description map { scalaxb.toXML[opengis.se.DescriptionType](_, Some("http://www.opengis.net/se"), Some("Description"), __scope, false) } getOrElse {Nil},
        __obj.FeatureTypeName map { scalaxb.toXML[javax.xml.namespace.QName](_, Some("http://www.opengis.net/se"), Some("FeatureTypeName"), __scope, false) } getOrElse {Nil},
        __obj.SemanticTypeIdentifier flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/se"), Some("SemanticTypeIdentifier"), __scope, false) },
        __obj.featuretypestyletypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.se.FeatureTypeStyleTypeOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisse_CoverageStyleTypeFormat extends scalaxb.ElemNameParser[opengis.se.CoverageStyleType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("CoverageStyleType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.CoverageStyleType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Name")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Description")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "CoverageName")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/se"), "SemanticTypeIdentifier")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/se"), "Rule")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.RuleType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "OnlineResource")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.OnlineResourceType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.se.CoverageStyleType(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.se.DescriptionType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p5,
        scala.collection.immutable.ListMap(List(
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.se.VersionType](x, scalaxb.ElemName(node) :: stack)) } map { "@version" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.CoverageStyleType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@version", _) => __obj.version foreach { x => attr = scala.xml.Attribute(null, "version", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.CoverageStyleType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Name map { scalaxb.toXML[String](_, Some("http://www.opengis.net/se"), Some("Name"), __scope, false) } getOrElse {Nil},
        __obj.Description map { scalaxb.toXML[opengis.se.DescriptionType](_, Some("http://www.opengis.net/se"), Some("Description"), __scope, false) } getOrElse {Nil},
        __obj.CoverageName map { scalaxb.toXML[String](_, Some("http://www.opengis.net/se"), Some("CoverageName"), __scope, false) } getOrElse {Nil},
        __obj.SemanticTypeIdentifier flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/se"), Some("SemanticTypeIdentifier"), __scope, false) },
        __obj.coveragestyletypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.se.CoverageStyleTypeOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisse_RuleTypeFormat extends scalaxb.ElemNameParser[opengis.se.RuleType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("RuleType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.RuleType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Name")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Description")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "LegendGraphic")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Filter")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.FilterType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "ElseFilter")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.ElseFilterType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "MinScaleDenominator")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "MaxScaleDenominator")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/se"), "RasterSymbolizer")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.RasterSymbolizerType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "TextSymbolizer")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.TextSymbolizerType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "LineSymbolizer")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.LineSymbolizerType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "PolygonSymbolizer")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.PolygonSymbolizerType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "PointSymbolizer")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.PointSymbolizerType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 =>
      opengis.se.RuleType(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.se.DescriptionType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.se.LegendGraphicType](_, scalaxb.ElemName(node) :: stack) },
        p4,
        p5.headOption map { scalaxb.fromXML[Double](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[Double](_, scalaxb.ElemName(node) :: stack) },
        p7) })
    
    def writesChildNodes(__obj: opengis.se.RuleType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Name map { scalaxb.toXML[String](_, Some("http://www.opengis.net/se"), Some("Name"), __scope, false) } getOrElse {Nil},
        __obj.Description map { scalaxb.toXML[opengis.se.DescriptionType](_, Some("http://www.opengis.net/se"), Some("Description"), __scope, false) } getOrElse {Nil},
        __obj.LegendGraphic map { scalaxb.toXML[opengis.se.LegendGraphicType](_, Some("http://www.opengis.net/se"), Some("LegendGraphic"), __scope, false) } getOrElse {Nil},
        __obj.ruletypeoption map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        __obj.MinScaleDenominator map { scalaxb.toXML[Double](_, Some("http://www.opengis.net/se"), Some("MinScaleDenominator"), __scope, false) } getOrElse {Nil},
        __obj.MaxScaleDenominator map { scalaxb.toXML[Double](_, Some("http://www.opengis.net/se"), Some("MaxScaleDenominator"), __scope, false) } getOrElse {Nil},
        __obj.Symbolizer flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengisse_LegendGraphicTypeFormat extends scalaxb.ElemNameParser[opengis.se.LegendGraphicType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("LegendGraphicType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.LegendGraphicType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "Graphic")) ^^
      { case p1 =>
      opengis.se.LegendGraphicType(scalaxb.fromXML[opengis.se.GraphicType](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.se.LegendGraphicType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.se.GraphicType](__obj.Graphic, Some("http://www.opengis.net/se"), Some("Graphic"), __scope, false))

  }

  trait DefaultOpengisse_ElseFilterTypeFormat extends scalaxb.XMLFormat[opengis.se.ElseFilterType] with scalaxb.CanWriteChildNodes[opengis.se.ElseFilterType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.ElseFilterType] = seq match {
      case node: scala.xml.Node => Right(opengis.se.ElseFilterType())
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def writesChildNodes(__obj: opengis.se.ElseFilterType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisse_SymbolizerTypeFormat extends scalaxb.XMLFormat[opengis.se.SymbolizerType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.SymbolizerType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/se"), Some("PointSymbolizerType")) => Right(scalaxb.fromXML[opengis.se.PointSymbolizerType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("PolygonSymbolizerType")) => Right(scalaxb.fromXML[opengis.se.PolygonSymbolizerType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("LineSymbolizerType")) => Right(scalaxb.fromXML[opengis.se.LineSymbolizerType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("TextSymbolizerType")) => Right(scalaxb.fromXML[opengis.se.TextSymbolizerType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("RasterSymbolizerType")) => Right(scalaxb.fromXML[opengis.se.RasterSymbolizerType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.se.SymbolizerType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.se.PointSymbolizerType => scalaxb.toXML[opengis.se.PointSymbolizerType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.se.PolygonSymbolizerType => scalaxb.toXML[opengis.se.PolygonSymbolizerType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.se.LineSymbolizerType => scalaxb.toXML[opengis.se.LineSymbolizerType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.se.TextSymbolizerType => scalaxb.toXML[opengis.se.TextSymbolizerType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.se.RasterSymbolizerType => scalaxb.toXML[opengis.se.RasterSymbolizerType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisse_BaseSymbolizerTypeFormat extends scalaxb.ElemNameParser[opengis.se.BaseSymbolizerType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("BaseSymbolizerType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.BaseSymbolizerType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "OnlineResource")) ^^
      { case p1 =>
      opengis.se.BaseSymbolizerType(scalaxb.fromXML[opengis.se.OnlineResourceType](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.se.BaseSymbolizerType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.se.OnlineResourceType](__obj.OnlineResource, Some("http://www.opengis.net/se"), Some("OnlineResource"), __scope, false))

  }

  trait DefaultOpengisse_LineSymbolizerTypeFormat extends scalaxb.ElemNameParser[opengis.se.LineSymbolizerType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("LineSymbolizerType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.LineSymbolizerType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Name")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Description")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "BaseSymbolizer")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Geometry")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Stroke")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "PerpendicularOffset")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.se.LineSymbolizerType(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.se.DescriptionType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.se.BaseSymbolizerType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.se.GeometryType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[opengis.se.StrokeType](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[opengis.se.ParameterValueTypable](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.se.VersionType](x, scalaxb.ElemName(node) :: stack)) } map { "@version" -> _ },
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.LineSymbolizerType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@version", _) => __obj.version foreach { x => attr = scala.xml.Attribute(null, "version", x.toString, attr) }
        case ("@uom", _) => __obj.uom foreach { x => attr = scala.xml.Attribute(null, "uom", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.LineSymbolizerType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Name map { scalaxb.toXML[String](_, Some("http://www.opengis.net/se"), Some("Name"), __scope, false) } getOrElse {Nil},
        __obj.Description map { scalaxb.toXML[opengis.se.DescriptionType](_, Some("http://www.opengis.net/se"), Some("Description"), __scope, false) } getOrElse {Nil},
        __obj.BaseSymbolizer map { scalaxb.toXML[opengis.se.BaseSymbolizerType](_, Some("http://www.opengis.net/se"), Some("BaseSymbolizer"), __scope, false) } getOrElse {Nil},
        __obj.Geometry map { scalaxb.toXML[opengis.se.GeometryType](_, Some("http://www.opengis.net/se"), Some("Geometry"), __scope, false) } getOrElse {Nil},
        __obj.Stroke map { scalaxb.toXML[opengis.se.StrokeType](_, Some("http://www.opengis.net/se"), Some("Stroke"), __scope, false) } getOrElse {Nil},
        __obj.PerpendicularOffset map { scalaxb.toXML[opengis.se.ParameterValueTypable](_, Some("http://www.opengis.net/se"), Some("PerpendicularOffset"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisse_GeometryTypeFormat extends scalaxb.ElemNameParser[opengis.se.GeometryType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("GeometryType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.GeometryType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyName")) ^^
      { case p1 =>
      opengis.se.GeometryType(scalaxb.fromXML[opengis.ogc.PropertyNameType](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.se.GeometryType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.ogc.PropertyNameType](__obj.PropertyName, Some("http://www.opengis.net/ogc"), Some("PropertyName"), __scope, false))

  }

  trait DefaultOpengisse_StrokeTypeFormat extends scalaxb.ElemNameParser[opengis.se.StrokeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("StrokeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.StrokeType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/se"), "GraphicFill")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.GraphicFillType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "GraphicStroke")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.GraphicStrokeType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/se"), "SvgParameter")) ^^
      { case p1 ~ p2 =>
      opengis.se.StrokeType(p1,
        p2 map { scalaxb.fromXML[opengis.se.SvgParameterType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.se.StrokeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.stroketypeoption map { x => scalaxb.toXML[scalaxb.DataRecord[opengis.se.StrokeTypeOption]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        __obj.SvgParameter flatMap { scalaxb.toXML[opengis.se.SvgParameterType](_, Some("http://www.opengis.net/se"), Some("SvgParameter"), __scope, false) })

  }

  trait DefaultOpengisse_SvgParameterTypeFormat extends scalaxb.ElemNameParser[opengis.se.SvgParameterType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("SvgParameterType")

    override def isMixed: Boolean = true

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.SvgParameterType] =
      phrase(optTextRecord ~ 
      safeRep(((((((scalaxb.ElemName(Some("http://www.opengis.net/se"), "MapItem")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.MapItemType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/se"), "InterpolationPoint")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.InterpolationPointType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Function")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.FunctionType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Div")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Sub")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Add")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Mul")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.PropertyNameType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Literal")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.LiteralType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) })) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(p1,
        p2.toList) }) ~ 
      optTextRecord ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.se.SvgParameterType(Seq.concat(p1.toList,
        p2.flatten,
        p3.toList),
        scala.collection.immutable.ListMap(List(
        (node \ "@name").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@name" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.SvgParameterType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@name", _) => attr = scala.xml.Attribute(null, "name", __obj.name.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.SvgParameterType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      __obj.mixed.toSeq flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) }

  }

  trait DefaultOpengisse_ParameterValueTypableFormat extends scalaxb.XMLFormat[opengis.se.ParameterValueTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.ParameterValueTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/se"), Some("SvgParameterType")) => Right(scalaxb.fromXML[opengis.se.SvgParameterType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.se.ParameterValueType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.se.ParameterValueTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.se.SvgParameterType => scalaxb.toXML[opengis.se.SvgParameterType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.se.ParameterValueType => scalaxb.toXML[opengis.se.ParameterValueType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengisse_ParameterValueTypeFormat extends scalaxb.ElemNameParser[opengis.se.ParameterValueType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("ParameterValueType")

    override def isMixed: Boolean = true

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.ParameterValueType] =
      phrase(optTextRecord ~ 
      safeRep(((((((scalaxb.ElemName(Some("http://www.opengis.net/se"), "MapItem")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.MapItemType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/se"), "InterpolationPoint")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.InterpolationPointType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Function")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.FunctionType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Div")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Sub")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Add")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Mul")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.BinaryOperatorType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "PropertyName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.PropertyNameType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Literal")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.LiteralType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) })) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(p1,
        p2.toList) }) ~ 
      optTextRecord ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.se.ParameterValueType(Seq.concat(p1.toList,
        p2.flatten,
        p3.toList)) })
    
    def writesChildNodes(__obj: opengis.se.ParameterValueType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      __obj.mixed.toSeq flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) }

  }

  trait DefaultOpengisse_ParameterValueTypableSequence1Format extends scalaxb.XMLFormat[opengis.se.ParameterValueTypableSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.ParameterValueTypableSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.se.ParameterValueTypableSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      (Some(__obj.expression) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get


  }

  trait DefaultOpengisse_GraphicFillTypeFormat extends scalaxb.ElemNameParser[opengis.se.GraphicFillType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("GraphicFillType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.GraphicFillType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "Graphic")) ^^
      { case p1 =>
      opengis.se.GraphicFillType(scalaxb.fromXML[opengis.se.GraphicType](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.se.GraphicFillType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.se.GraphicType](__obj.Graphic, Some("http://www.opengis.net/se"), Some("Graphic"), __scope, false))

  }

  trait DefaultOpengisse_GraphicStrokeTypeFormat extends scalaxb.ElemNameParser[opengis.se.GraphicStrokeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("GraphicStrokeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.GraphicStrokeType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "Graphic")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "InitialGap")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Gap")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.se.GraphicStrokeType(scalaxb.fromXML[opengis.se.GraphicType](p1, scalaxb.ElemName(node) :: stack),
        p2.headOption map { scalaxb.fromXML[opengis.se.ParameterValueTypable](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.se.ParameterValueTypable](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.se.GraphicStrokeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.se.GraphicType](__obj.Graphic, Some("http://www.opengis.net/se"), Some("Graphic"), __scope, false),
        __obj.InitialGap map { scalaxb.toXML[opengis.se.ParameterValueTypable](_, Some("http://www.opengis.net/se"), Some("InitialGap"), __scope, false) } getOrElse {Nil},
        __obj.Gap map { scalaxb.toXML[opengis.se.ParameterValueTypable](_, Some("http://www.opengis.net/se"), Some("Gap"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisse_PolygonSymbolizerTypeFormat extends scalaxb.ElemNameParser[opengis.se.PolygonSymbolizerType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("PolygonSymbolizerType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.PolygonSymbolizerType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Name")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Description")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "BaseSymbolizer")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Geometry")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Fill")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Stroke")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Displacement")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "PerpendicularOffset")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 =>
      opengis.se.PolygonSymbolizerType(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.se.DescriptionType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.se.BaseSymbolizerType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.se.GeometryType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[opengis.se.FillType](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[opengis.se.StrokeType](_, scalaxb.ElemName(node) :: stack) },
        p7.headOption map { scalaxb.fromXML[opengis.se.DisplacementType](_, scalaxb.ElemName(node) :: stack) },
        p8.headOption map { scalaxb.fromXML[opengis.se.ParameterValueTypable](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.se.VersionType](x, scalaxb.ElemName(node) :: stack)) } map { "@version" -> _ },
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.PolygonSymbolizerType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@version", _) => __obj.version foreach { x => attr = scala.xml.Attribute(null, "version", x.toString, attr) }
        case ("@uom", _) => __obj.uom foreach { x => attr = scala.xml.Attribute(null, "uom", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.PolygonSymbolizerType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Name map { scalaxb.toXML[String](_, Some("http://www.opengis.net/se"), Some("Name"), __scope, false) } getOrElse {Nil},
        __obj.Description map { scalaxb.toXML[opengis.se.DescriptionType](_, Some("http://www.opengis.net/se"), Some("Description"), __scope, false) } getOrElse {Nil},
        __obj.BaseSymbolizer map { scalaxb.toXML[opengis.se.BaseSymbolizerType](_, Some("http://www.opengis.net/se"), Some("BaseSymbolizer"), __scope, false) } getOrElse {Nil},
        __obj.Geometry map { scalaxb.toXML[opengis.se.GeometryType](_, Some("http://www.opengis.net/se"), Some("Geometry"), __scope, false) } getOrElse {Nil},
        __obj.Fill map { scalaxb.toXML[opengis.se.FillType](_, Some("http://www.opengis.net/se"), Some("Fill"), __scope, false) } getOrElse {Nil},
        __obj.Stroke map { scalaxb.toXML[opengis.se.StrokeType](_, Some("http://www.opengis.net/se"), Some("Stroke"), __scope, false) } getOrElse {Nil},
        __obj.Displacement map { scalaxb.toXML[opengis.se.DisplacementType](_, Some("http://www.opengis.net/se"), Some("Displacement"), __scope, false) } getOrElse {Nil},
        __obj.PerpendicularOffset map { scalaxb.toXML[opengis.se.ParameterValueTypable](_, Some("http://www.opengis.net/se"), Some("PerpendicularOffset"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisse_FillTypeFormat extends scalaxb.ElemNameParser[opengis.se.FillType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("FillType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.FillType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "GraphicFill")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/se"), "SvgParameter")) ^^
      { case p1 ~ p2 =>
      opengis.se.FillType(p1.headOption map { scalaxb.fromXML[opengis.se.GraphicFillType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.se.SvgParameterType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.se.FillType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.GraphicFill map { scalaxb.toXML[opengis.se.GraphicFillType](_, Some("http://www.opengis.net/se"), Some("GraphicFill"), __scope, false) } getOrElse {Nil},
        __obj.SvgParameter flatMap { scalaxb.toXML[opengis.se.SvgParameterType](_, Some("http://www.opengis.net/se"), Some("SvgParameter"), __scope, false) })

  }

  trait DefaultOpengisse_PointSymbolizerTypeFormat extends scalaxb.ElemNameParser[opengis.se.PointSymbolizerType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("PointSymbolizerType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.PointSymbolizerType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Name")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Description")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "BaseSymbolizer")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Geometry")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Graphic")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.se.PointSymbolizerType(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.se.DescriptionType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.se.BaseSymbolizerType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.se.GeometryType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[opengis.se.GraphicType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.se.VersionType](x, scalaxb.ElemName(node) :: stack)) } map { "@version" -> _ },
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.PointSymbolizerType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@version", _) => __obj.version foreach { x => attr = scala.xml.Attribute(null, "version", x.toString, attr) }
        case ("@uom", _) => __obj.uom foreach { x => attr = scala.xml.Attribute(null, "uom", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.PointSymbolizerType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Name map { scalaxb.toXML[String](_, Some("http://www.opengis.net/se"), Some("Name"), __scope, false) } getOrElse {Nil},
        __obj.Description map { scalaxb.toXML[opengis.se.DescriptionType](_, Some("http://www.opengis.net/se"), Some("Description"), __scope, false) } getOrElse {Nil},
        __obj.BaseSymbolizer map { scalaxb.toXML[opengis.se.BaseSymbolizerType](_, Some("http://www.opengis.net/se"), Some("BaseSymbolizer"), __scope, false) } getOrElse {Nil},
        __obj.Geometry map { scalaxb.toXML[opengis.se.GeometryType](_, Some("http://www.opengis.net/se"), Some("Geometry"), __scope, false) } getOrElse {Nil},
        __obj.Graphic map { scalaxb.toXML[opengis.se.GraphicType](_, Some("http://www.opengis.net/se"), Some("Graphic"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisse_GraphicTypeFormat extends scalaxb.ElemNameParser[opengis.se.GraphicType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("GraphicType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.GraphicType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/se"), "ExternalGraphic")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.ExternalGraphicType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "Mark")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.MarkType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Opacity")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Size")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Rotation")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "AnchorPoint")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Displacement")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.se.GraphicType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.se.ParameterValueTypable](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.se.ParameterValueTypable](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.se.ParameterValueTypable](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[opengis.se.AnchorPointType](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[opengis.se.DisplacementType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.se.GraphicType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.graphictypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.se.GraphicTypeOption]](x, x.namespace, x.key, __scope, false) },
        __obj.Opacity map { scalaxb.toXML[opengis.se.ParameterValueTypable](_, Some("http://www.opengis.net/se"), Some("Opacity"), __scope, false) } getOrElse {Nil},
        __obj.Size map { scalaxb.toXML[opengis.se.ParameterValueTypable](_, Some("http://www.opengis.net/se"), Some("Size"), __scope, false) } getOrElse {Nil},
        __obj.Rotation map { scalaxb.toXML[opengis.se.ParameterValueTypable](_, Some("http://www.opengis.net/se"), Some("Rotation"), __scope, false) } getOrElse {Nil},
        __obj.AnchorPoint map { scalaxb.toXML[opengis.se.AnchorPointType](_, Some("http://www.opengis.net/se"), Some("AnchorPoint"), __scope, false) } getOrElse {Nil},
        __obj.Displacement map { scalaxb.toXML[opengis.se.DisplacementType](_, Some("http://www.opengis.net/se"), Some("Displacement"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisse_ExternalGraphicTypeFormat extends scalaxb.ElemNameParser[opengis.se.ExternalGraphicType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("ExternalGraphicType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.ExternalGraphicType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/se"), "OnlineResource")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.OnlineResourceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "InlineContent")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.InlineContentType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/se"), "Format")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/se"), "ColorReplacement")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.se.ExternalGraphicType(p1,
        scalaxb.fromXML[String](p2, scalaxb.ElemName(node) :: stack),
        p3 map { scalaxb.fromXML[opengis.se.ColorReplacementType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.se.ExternalGraphicType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat((Some(__obj.externalgraphictypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.se.ExternalGraphicTypeOption]](x, x.namespace, x.key, __scope, false)}).get,
        scalaxb.toXML[String](__obj.Format, Some("http://www.opengis.net/se"), Some("Format"), __scope, false),
        __obj.ColorReplacement flatMap { scalaxb.toXML[opengis.se.ColorReplacementType](_, Some("http://www.opengis.net/se"), Some("ColorReplacement"), __scope, false) })

  }

  trait DefaultOpengisse_ColorReplacementTypeFormat extends scalaxb.ElemNameParser[opengis.se.ColorReplacementType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("ColorReplacementType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.ColorReplacementType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "Recode")) ^^
      { case p1 =>
      opengis.se.ColorReplacementType(scalaxb.fromXML[opengis.se.RecodeType](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.se.ColorReplacementType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.se.RecodeType](__obj.Recode, Some("http://www.opengis.net/se"), Some("Recode"), __scope, false))

  }

  trait DefaultOpengisse_MarkTypeFormat extends scalaxb.ElemNameParser[opengis.se.MarkType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("MarkType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.MarkType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/se"), "WellKnownName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)))) ||| 
      (((((scalaxb.ElemName(Some("http://www.opengis.net/se"), "OnlineResource")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.OnlineResourceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "InlineContent")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.InlineContentType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/se"), "Format")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "MarkIndex"))) ^^ 
        { case p1 ~ p2 ~ p3 => scalaxb.DataRecord(opengis.se.MarkTypeSequence1(p1,
        scalaxb.fromXML[String](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) })) })) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Fill")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Stroke")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.se.MarkType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.se.FillType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.se.StrokeType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.se.MarkType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.marktypeoption map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        __obj.Fill map { scalaxb.toXML[opengis.se.FillType](_, Some("http://www.opengis.net/se"), Some("Fill"), __scope, false) } getOrElse {Nil},
        __obj.Stroke map { scalaxb.toXML[opengis.se.StrokeType](_, Some("http://www.opengis.net/se"), Some("Stroke"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisse_MarkTypeSequence1Format extends scalaxb.XMLFormat[opengis.se.MarkTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.MarkTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.se.MarkTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      Seq.concat((Some(__obj.marktypeoption2) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.se.MarkTypeOption2]](x, x.namespace, x.key, __scope, false)}).get,
        scalaxb.toXML[String](__obj.Format, Some("http://www.opengis.net/se"), Some("Format"), __scope, false),
        __obj.MarkIndex map { scalaxb.toXML[BigInt](_, Some("http://www.opengis.net/se"), Some("MarkIndex"), __scope, false) } getOrElse {Nil})


  }

  trait DefaultOpengisse_TextSymbolizerTypeFormat extends scalaxb.ElemNameParser[opengis.se.TextSymbolizerType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("TextSymbolizerType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.TextSymbolizerType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Name")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Description")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "BaseSymbolizer")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Geometry")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Label")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Font")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "LabelPlacement")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Halo")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Fill")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 =>
      opengis.se.TextSymbolizerType(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.se.DescriptionType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.se.BaseSymbolizerType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.se.GeometryType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[opengis.se.ParameterValueTypable](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[opengis.se.FontType](_, scalaxb.ElemName(node) :: stack) },
        p7.headOption map { scalaxb.fromXML[opengis.se.LabelPlacementType](_, scalaxb.ElemName(node) :: stack) },
        p8.headOption map { scalaxb.fromXML[opengis.se.HaloType](_, scalaxb.ElemName(node) :: stack) },
        p9.headOption map { scalaxb.fromXML[opengis.se.FillType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.se.VersionType](x, scalaxb.ElemName(node) :: stack)) } map { "@version" -> _ },
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.TextSymbolizerType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@version", _) => __obj.version foreach { x => attr = scala.xml.Attribute(null, "version", x.toString, attr) }
        case ("@uom", _) => __obj.uom foreach { x => attr = scala.xml.Attribute(null, "uom", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.TextSymbolizerType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Name map { scalaxb.toXML[String](_, Some("http://www.opengis.net/se"), Some("Name"), __scope, false) } getOrElse {Nil},
        __obj.Description map { scalaxb.toXML[opengis.se.DescriptionType](_, Some("http://www.opengis.net/se"), Some("Description"), __scope, false) } getOrElse {Nil},
        __obj.BaseSymbolizer map { scalaxb.toXML[opengis.se.BaseSymbolizerType](_, Some("http://www.opengis.net/se"), Some("BaseSymbolizer"), __scope, false) } getOrElse {Nil},
        __obj.Geometry map { scalaxb.toXML[opengis.se.GeometryType](_, Some("http://www.opengis.net/se"), Some("Geometry"), __scope, false) } getOrElse {Nil},
        __obj.Label map { scalaxb.toXML[opengis.se.ParameterValueTypable](_, Some("http://www.opengis.net/se"), Some("Label"), __scope, false) } getOrElse {Nil},
        __obj.Font map { scalaxb.toXML[opengis.se.FontType](_, Some("http://www.opengis.net/se"), Some("Font"), __scope, false) } getOrElse {Nil},
        __obj.LabelPlacement map { scalaxb.toXML[opengis.se.LabelPlacementType](_, Some("http://www.opengis.net/se"), Some("LabelPlacement"), __scope, false) } getOrElse {Nil},
        __obj.Halo map { scalaxb.toXML[opengis.se.HaloType](_, Some("http://www.opengis.net/se"), Some("Halo"), __scope, false) } getOrElse {Nil},
        __obj.Fill map { scalaxb.toXML[opengis.se.FillType](_, Some("http://www.opengis.net/se"), Some("Fill"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisse_FontTypeFormat extends scalaxb.ElemNameParser[opengis.se.FontType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("FontType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.FontType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/se"), "SvgParameter")) ^^
      { case p1 =>
      opengis.se.FontType(p1 map { scalaxb.fromXML[opengis.se.SvgParameterType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.se.FontType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.SvgParameter flatMap { scalaxb.toXML[opengis.se.SvgParameterType](_, Some("http://www.opengis.net/se"), Some("SvgParameter"), __scope, false) })

  }

  trait DefaultOpengisse_LabelPlacementTypeFormat extends scalaxb.ElemNameParser[opengis.se.LabelPlacementType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("LabelPlacementType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.LabelPlacementType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/se"), "PointPlacement")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.PointPlacementType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "LinePlacement")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.LinePlacementType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.se.LabelPlacementType(p1) })
    
    def writesChildNodes(__obj: opengis.se.LabelPlacementType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.labelplacementtypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.se.LabelPlacementTypeOption]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisse_PointPlacementTypeFormat extends scalaxb.ElemNameParser[opengis.se.PointPlacementType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("PointPlacementType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.PointPlacementType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "AnchorPoint")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Displacement")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Rotation")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.se.PointPlacementType(p1.headOption map { scalaxb.fromXML[opengis.se.AnchorPointType](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.se.DisplacementType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.se.ParameterValueTypable](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.se.PointPlacementType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.AnchorPoint map { scalaxb.toXML[opengis.se.AnchorPointType](_, Some("http://www.opengis.net/se"), Some("AnchorPoint"), __scope, false) } getOrElse {Nil},
        __obj.Displacement map { scalaxb.toXML[opengis.se.DisplacementType](_, Some("http://www.opengis.net/se"), Some("Displacement"), __scope, false) } getOrElse {Nil},
        __obj.Rotation map { scalaxb.toXML[opengis.se.ParameterValueTypable](_, Some("http://www.opengis.net/se"), Some("Rotation"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisse_AnchorPointTypeFormat extends scalaxb.ElemNameParser[opengis.se.AnchorPointType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("AnchorPointType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.AnchorPointType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "AnchorPointX")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/se"), "AnchorPointY")) ^^
      { case p1 ~ p2 =>
      opengis.se.AnchorPointType(scalaxb.fromXML[opengis.se.ParameterValueTypable](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.se.ParameterValueTypable](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.se.AnchorPointType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.AnchorPointX, Some("http://www.opengis.net/se"), Some("AnchorPointX"), __scope, false),
        scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.AnchorPointY, Some("http://www.opengis.net/se"), Some("AnchorPointY"), __scope, false))

  }

  trait DefaultOpengisse_DisplacementTypeFormat extends scalaxb.ElemNameParser[opengis.se.DisplacementType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("DisplacementType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.DisplacementType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "DisplacementX")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/se"), "DisplacementY")) ^^
      { case p1 ~ p2 =>
      opengis.se.DisplacementType(scalaxb.fromXML[opengis.se.ParameterValueTypable](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.se.ParameterValueTypable](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.se.DisplacementType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.DisplacementX, Some("http://www.opengis.net/se"), Some("DisplacementX"), __scope, false),
        scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.DisplacementY, Some("http://www.opengis.net/se"), Some("DisplacementY"), __scope, false))

  }

  trait DefaultOpengisse_LinePlacementTypeFormat extends scalaxb.ElemNameParser[opengis.se.LinePlacementType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("LinePlacementType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.LinePlacementType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "PerpendicularOffset")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "IsRepeated")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "InitialGap")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Gap")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "IsAligned")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "GeneralizeLine")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.se.LinePlacementType(p1.headOption map { scalaxb.fromXML[opengis.se.ParameterValueTypable](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[Boolean](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.se.ParameterValueTypable](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.se.ParameterValueTypable](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[Boolean](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[Boolean](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.se.LinePlacementType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.PerpendicularOffset map { scalaxb.toXML[opengis.se.ParameterValueTypable](_, Some("http://www.opengis.net/se"), Some("PerpendicularOffset"), __scope, false) } getOrElse {Nil},
        __obj.IsRepeated map { scalaxb.toXML[Boolean](_, Some("http://www.opengis.net/se"), Some("IsRepeated"), __scope, false) } getOrElse {Nil},
        __obj.InitialGap map { scalaxb.toXML[opengis.se.ParameterValueTypable](_, Some("http://www.opengis.net/se"), Some("InitialGap"), __scope, false) } getOrElse {Nil},
        __obj.Gap map { scalaxb.toXML[opengis.se.ParameterValueTypable](_, Some("http://www.opengis.net/se"), Some("Gap"), __scope, false) } getOrElse {Nil},
        __obj.IsAligned map { scalaxb.toXML[Boolean](_, Some("http://www.opengis.net/se"), Some("IsAligned"), __scope, false) } getOrElse {Nil},
        __obj.GeneralizeLine map { scalaxb.toXML[Boolean](_, Some("http://www.opengis.net/se"), Some("GeneralizeLine"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisse_HaloTypeFormat extends scalaxb.ElemNameParser[opengis.se.HaloType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("HaloType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.HaloType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Radius")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Fill")) ^^
      { case p1 ~ p2 =>
      opengis.se.HaloType(p1.headOption map { scalaxb.fromXML[opengis.se.ParameterValueTypable](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.se.FillType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.se.HaloType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Radius map { scalaxb.toXML[opengis.se.ParameterValueTypable](_, Some("http://www.opengis.net/se"), Some("Radius"), __scope, false) } getOrElse {Nil},
        __obj.Fill map { scalaxb.toXML[opengis.se.FillType](_, Some("http://www.opengis.net/se"), Some("Fill"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisse_RasterSymbolizerTypeFormat extends scalaxb.ElemNameParser[opengis.se.RasterSymbolizerType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("RasterSymbolizerType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.RasterSymbolizerType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Name")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Description")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "BaseSymbolizer")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Geometry")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Opacity")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "ChannelSelection")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "OverlapBehavior")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "ColorMap")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "ContrastEnhancement")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "ShadedRelief")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "ImageOutline")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 ~ p10 ~ p11 =>
      opengis.se.RasterSymbolizerType(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.se.DescriptionType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.se.BaseSymbolizerType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.se.GeometryType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[opengis.se.ParameterValueTypable](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[opengis.se.ChannelSelectionType](_, scalaxb.ElemName(node) :: stack) },
        p7.headOption map { scalaxb.fromXML[opengis.se.OverlapBehavior](_, scalaxb.ElemName(node) :: stack) },
        p8.headOption map { scalaxb.fromXML[opengis.se.ColorMapType](_, scalaxb.ElemName(node) :: stack) },
        p9.headOption map { scalaxb.fromXML[opengis.se.ContrastEnhancementType](_, scalaxb.ElemName(node) :: stack) },
        p10.headOption map { scalaxb.fromXML[opengis.se.ShadedReliefType](_, scalaxb.ElemName(node) :: stack) },
        p11.headOption map { scalaxb.fromXML[opengis.se.ImageOutlineType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.se.VersionType](x, scalaxb.ElemName(node) :: stack)) } map { "@version" -> _ },
        (node \ "@uom").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@uom" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.RasterSymbolizerType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@version", _) => __obj.version foreach { x => attr = scala.xml.Attribute(null, "version", x.toString, attr) }
        case ("@uom", _) => __obj.uom foreach { x => attr = scala.xml.Attribute(null, "uom", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.RasterSymbolizerType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Name map { scalaxb.toXML[String](_, Some("http://www.opengis.net/se"), Some("Name"), __scope, false) } getOrElse {Nil},
        __obj.Description map { scalaxb.toXML[opengis.se.DescriptionType](_, Some("http://www.opengis.net/se"), Some("Description"), __scope, false) } getOrElse {Nil},
        __obj.BaseSymbolizer map { scalaxb.toXML[opengis.se.BaseSymbolizerType](_, Some("http://www.opengis.net/se"), Some("BaseSymbolizer"), __scope, false) } getOrElse {Nil},
        __obj.Geometry map { scalaxb.toXML[opengis.se.GeometryType](_, Some("http://www.opengis.net/se"), Some("Geometry"), __scope, false) } getOrElse {Nil},
        __obj.Opacity map { scalaxb.toXML[opengis.se.ParameterValueTypable](_, Some("http://www.opengis.net/se"), Some("Opacity"), __scope, false) } getOrElse {Nil},
        __obj.ChannelSelection map { scalaxb.toXML[opengis.se.ChannelSelectionType](_, Some("http://www.opengis.net/se"), Some("ChannelSelection"), __scope, false) } getOrElse {Nil},
        __obj.OverlapBehavior map { scalaxb.toXML[opengis.se.OverlapBehavior](_, Some("http://www.opengis.net/se"), Some("OverlapBehavior"), __scope, false) } getOrElse {Nil},
        __obj.ColorMap map { scalaxb.toXML[opengis.se.ColorMapType](_, Some("http://www.opengis.net/se"), Some("ColorMap"), __scope, false) } getOrElse {Nil},
        __obj.ContrastEnhancement map { scalaxb.toXML[opengis.se.ContrastEnhancementType](_, Some("http://www.opengis.net/se"), Some("ContrastEnhancement"), __scope, false) } getOrElse {Nil},
        __obj.ShadedRelief map { scalaxb.toXML[opengis.se.ShadedReliefType](_, Some("http://www.opengis.net/se"), Some("ShadedRelief"), __scope, false) } getOrElse {Nil},
        __obj.ImageOutline map { scalaxb.toXML[opengis.se.ImageOutlineType](_, Some("http://www.opengis.net/se"), Some("ImageOutline"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisse_ChannelSelectionTypeFormat extends scalaxb.ElemNameParser[opengis.se.ChannelSelectionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("ChannelSelectionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.ChannelSelectionType] =
      phrase(((((scalaxb.ElemName(Some("http://www.opengis.net/se"), "RedChannel")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/se"), "GreenChannel")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/se"), "BlueChannel"))) ^^ 
        { case p1 ~ p2 ~ p3 => scalaxb.DataRecord(opengis.se.ChannelSelectionTypeSequence1(scalaxb.fromXML[opengis.se.SelectedChannelType](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.se.SelectedChannelType](p2, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.se.SelectedChannelType](p3, scalaxb.ElemName(node) :: stack))) }) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "GrayChannel")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.SelectedChannelType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.se.ChannelSelectionType(p1) })
    
    def writesChildNodes(__obj: opengis.se.ChannelSelectionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.channelselectiontypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.se.ChannelSelectionTypeOption]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisse_ChannelSelectionTypeSequence1Format extends scalaxb.XMLFormat[opengis.se.ChannelSelectionTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.ChannelSelectionTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.se.ChannelSelectionTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      Seq.concat(scalaxb.toXML[opengis.se.SelectedChannelType](__obj.RedChannel, Some("http://www.opengis.net/se"), Some("RedChannel"), __scope, false),
        scalaxb.toXML[opengis.se.SelectedChannelType](__obj.GreenChannel, Some("http://www.opengis.net/se"), Some("GreenChannel"), __scope, false),
        scalaxb.toXML[opengis.se.SelectedChannelType](__obj.BlueChannel, Some("http://www.opengis.net/se"), Some("BlueChannel"), __scope, false))


  }

  trait DefaultOpengisse_SelectedChannelTypeFormat extends scalaxb.ElemNameParser[opengis.se.SelectedChannelType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("SelectedChannelType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.SelectedChannelType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "SourceChannelName")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "ContrastEnhancement")) ^^
      { case p1 ~ p2 =>
      opengis.se.SelectedChannelType(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        p2.headOption map { scalaxb.fromXML[opengis.se.ContrastEnhancementType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.se.SelectedChannelType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.SourceChannelName, Some("http://www.opengis.net/se"), Some("SourceChannelName"), __scope, false),
        __obj.ContrastEnhancement map { scalaxb.toXML[opengis.se.ContrastEnhancementType](_, Some("http://www.opengis.net/se"), Some("ContrastEnhancement"), __scope, false) } getOrElse {Nil})

  }

  def buildOpengisse_OverlapBehaviorFormat = new DefaultOpengisse_OverlapBehaviorFormat {}
  trait DefaultOpengisse_OverlapBehaviorFormat extends scalaxb.XMLFormat[opengis.se.OverlapBehavior] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.se.OverlapBehavior =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.se.OverlapBehavior] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("LATEST_ON_TOP")) => opengis.se.LATEST_ON_TOP
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("EARLIEST_ON_TOP")) => opengis.se.EARLIEST_ON_TOP
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("AVERAGE")) => opengis.se.AVERAGE
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("RANDOM")) => opengis.se.RANDOM

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.OverlapBehavior] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.se.OverlapBehavior, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisse_ColorMapTypeFormat extends scalaxb.ElemNameParser[opengis.se.ColorMapType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("ColorMapType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.ColorMapType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/se"), "Categorize")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.CategorizeType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "Interpolate")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.InterpolateType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.se.ColorMapType(p1) })
    
    def writesChildNodes(__obj: opengis.se.ColorMapType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.colormaptypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.se.ColorMapTypeOption]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisse_ContrastEnhancementTypeFormat extends scalaxb.ElemNameParser[opengis.se.ContrastEnhancementType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("ContrastEnhancementType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.ContrastEnhancementType] =
      phrase(opt(((scalaxb.ElemName(Some("http://www.opengis.net/se"), "Normalize")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.NormalizeType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "Histogram")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.HistogramType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "GammaValue")) ^^
      { case p1 ~ p2 =>
      opengis.se.ContrastEnhancementType(p1,
        p2.headOption map { scalaxb.fromXML[Double](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.se.ContrastEnhancementType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.contrastenhancementtypeoption map { x => scalaxb.toXML[scalaxb.DataRecord[opengis.se.ContrastEnhancementTypeOption]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        __obj.GammaValue map { scalaxb.toXML[Double](_, Some("http://www.opengis.net/se"), Some("GammaValue"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisse_NormalizeTypeFormat extends scalaxb.XMLFormat[opengis.se.NormalizeType] with scalaxb.CanWriteChildNodes[opengis.se.NormalizeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.NormalizeType] = seq match {
      case node: scala.xml.Node => Right(opengis.se.NormalizeType())
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def writesChildNodes(__obj: opengis.se.NormalizeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisse_HistogramTypeFormat extends scalaxb.XMLFormat[opengis.se.HistogramType] with scalaxb.CanWriteChildNodes[opengis.se.HistogramType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.HistogramType] = seq match {
      case node: scala.xml.Node => Right(opengis.se.HistogramType())
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def writesChildNodes(__obj: opengis.se.HistogramType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengisse_ShadedReliefTypeFormat extends scalaxb.ElemNameParser[opengis.se.ShadedReliefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("ShadedReliefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.ShadedReliefType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "BrightnessOnly")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "ReliefFactor")) ^^
      { case p1 ~ p2 =>
      opengis.se.ShadedReliefType(p1.headOption map { scalaxb.fromXML[Boolean](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[Double](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.se.ShadedReliefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.BrightnessOnly map { scalaxb.toXML[Boolean](_, Some("http://www.opengis.net/se"), Some("BrightnessOnly"), __scope, false) } getOrElse {Nil},
        __obj.ReliefFactor map { scalaxb.toXML[Double](_, Some("http://www.opengis.net/se"), Some("ReliefFactor"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisse_ImageOutlineTypeFormat extends scalaxb.ElemNameParser[opengis.se.ImageOutlineType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("ImageOutlineType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.ImageOutlineType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/se"), "LineSymbolizer")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.LineSymbolizerType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "PolygonSymbolizer")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.PolygonSymbolizerType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.se.ImageOutlineType(p1) })
    
    def writesChildNodes(__obj: opengis.se.ImageOutlineType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.imageoutlinetypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.se.ImageOutlineTypeOption]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengisse_FunctionTypeFormat extends scalaxb.XMLFormat[opengis.se.FunctionType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.FunctionType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/se"), Some("RecodeType")) => Right(scalaxb.fromXML[opengis.se.RecodeType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("InterpolateType")) => Right(scalaxb.fromXML[opengis.se.InterpolateType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("CategorizeType")) => Right(scalaxb.fromXML[opengis.se.CategorizeType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("ConcatenateType")) => Right(scalaxb.fromXML[opengis.se.ConcatenateType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("FormatDateType")) => Right(scalaxb.fromXML[opengis.se.FormatDateType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("FormatNumberType")) => Right(scalaxb.fromXML[opengis.se.FormatNumberType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("SubstringType")) => Right(scalaxb.fromXML[opengis.se.SubstringType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("ChangeCaseType")) => Right(scalaxb.fromXML[opengis.se.ChangeCaseType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("TrimType")) => Right(scalaxb.fromXML[opengis.se.TrimType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("StringPositionType")) => Right(scalaxb.fromXML[opengis.se.StringPositionType](node, stack))
          case (Some("http://www.opengis.net/se"), Some("StringLengthType")) => Right(scalaxb.fromXML[opengis.se.StringLengthType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.se.FunctionType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.se.RecodeType => scalaxb.toXML[opengis.se.RecodeType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.se.InterpolateType => scalaxb.toXML[opengis.se.InterpolateType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.se.CategorizeType => scalaxb.toXML[opengis.se.CategorizeType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.se.ConcatenateType => scalaxb.toXML[opengis.se.ConcatenateType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.se.FormatDateType => scalaxb.toXML[opengis.se.FormatDateType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.se.FormatNumberType => scalaxb.toXML[opengis.se.FormatNumberType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.se.SubstringType => scalaxb.toXML[opengis.se.SubstringType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.se.ChangeCaseType => scalaxb.toXML[opengis.se.ChangeCaseType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.se.TrimType => scalaxb.toXML[opengis.se.TrimType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.se.StringPositionType => scalaxb.toXML[opengis.se.StringPositionType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.se.StringLengthType => scalaxb.toXML[opengis.se.StringLengthType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengisse_FormatNumberTypeFormat extends scalaxb.ElemNameParser[opengis.se.FormatNumberType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("FormatNumberType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.FormatNumberType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "NumericValue")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/se"), "Pattern")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "NegativePattern")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.se.FormatNumberType(scalaxb.fromXML[opengis.se.ParameterValueTypable](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@fallbackValue").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@fallbackValue" -> _ },
        (node \ "@decimalPoint").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("."), scalaxb.ElemName(node) :: stack))) map { "@decimalPoint" -> _ },
        (node \ "@groupingSeparator").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text(","), scalaxb.ElemName(node) :: stack))) map { "@groupingSeparator" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.FormatNumberType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@fallbackValue", _) => attr = scala.xml.Attribute(null, "fallbackValue", __obj.fallbackValue.toString, attr)
        case ("@decimalPoint", _) => if (__obj.decimalPoint.toString != ".") attr = scala.xml.Attribute(null, "decimalPoint", __obj.decimalPoint.toString, attr)
        case ("@groupingSeparator", _) => if (__obj.groupingSeparator.toString != ",") attr = scala.xml.Attribute(null, "groupingSeparator", __obj.groupingSeparator.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.FormatNumberType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.NumericValue, Some("http://www.opengis.net/se"), Some("NumericValue"), __scope, false),
        scalaxb.toXML[String](__obj.Pattern, Some("http://www.opengis.net/se"), Some("Pattern"), __scope, false),
        __obj.NegativePattern map { scalaxb.toXML[String](_, Some("http://www.opengis.net/se"), Some("NegativePattern"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisse_FormatDateTypeFormat extends scalaxb.ElemNameParser[opengis.se.FormatDateType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("FormatDateType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.FormatDateType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "DateValue")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/se"), "Pattern")) ^^
      { case p1 ~ p2 =>
      opengis.se.FormatDateType(scalaxb.fromXML[opengis.se.ParameterValueTypable](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p2, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@fallbackValue").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@fallbackValue" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.FormatDateType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@fallbackValue", _) => attr = scala.xml.Attribute(null, "fallbackValue", __obj.fallbackValue.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.FormatDateType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.DateValue, Some("http://www.opengis.net/se"), Some("DateValue"), __scope, false),
        scalaxb.toXML[String](__obj.Pattern, Some("http://www.opengis.net/se"), Some("Pattern"), __scope, false))

  }

  trait DefaultOpengisse_SubstringTypeFormat extends scalaxb.ElemNameParser[opengis.se.SubstringType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("SubstringType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.SubstringType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "StringValue")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Position")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Length")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.se.SubstringType(scalaxb.fromXML[opengis.se.ParameterValueTypable](p1, scalaxb.ElemName(node) :: stack),
        p2.headOption map { scalaxb.fromXML[opengis.se.ParameterValueTypable](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.se.ParameterValueTypable](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@fallbackValue").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@fallbackValue" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.SubstringType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@fallbackValue", _) => attr = scala.xml.Attribute(null, "fallbackValue", __obj.fallbackValue.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.SubstringType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.StringValue, Some("http://www.opengis.net/se"), Some("StringValue"), __scope, false),
        __obj.Position map { scalaxb.toXML[opengis.se.ParameterValueTypable](_, Some("http://www.opengis.net/se"), Some("Position"), __scope, false) } getOrElse {Nil},
        __obj.Length map { scalaxb.toXML[opengis.se.ParameterValueTypable](_, Some("http://www.opengis.net/se"), Some("Length"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisse_ConcatenateTypeFormat extends scalaxb.ElemNameParser[opengis.se.ConcatenateType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("ConcatenateType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.ConcatenateType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/se"), "StringValue")) ^^
      { case p1 =>
      opengis.se.ConcatenateType(p1 map { scalaxb.fromXML[opengis.se.ParameterValueTypable](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@fallbackValue").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@fallbackValue" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.ConcatenateType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@fallbackValue", _) => attr = scala.xml.Attribute(null, "fallbackValue", __obj.fallbackValue.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.ConcatenateType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.StringValue flatMap { scalaxb.toXML[opengis.se.ParameterValueTypable](_, Some("http://www.opengis.net/se"), Some("StringValue"), __scope, false) })

  }

  trait DefaultOpengisse_ChangeCaseTypeFormat extends scalaxb.ElemNameParser[opengis.se.ChangeCaseType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("ChangeCaseType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.ChangeCaseType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "StringValue")) ^^
      { case p1 =>
      opengis.se.ChangeCaseType(scalaxb.fromXML[opengis.se.ParameterValueTypable](p1, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@fallbackValue").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@fallbackValue" -> _ },
        (node \ "@direction").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.se.DirectionType](x, scalaxb.ElemName(node) :: stack)) } map { "@direction" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.ChangeCaseType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@fallbackValue", _) => attr = scala.xml.Attribute(null, "fallbackValue", __obj.fallbackValue.toString, attr)
        case ("@direction", _) => __obj.direction foreach { x => attr = scala.xml.Attribute(null, "direction", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.ChangeCaseType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.StringValue, Some("http://www.opengis.net/se"), Some("StringValue"), __scope, false))

  }

  def buildOpengisse_DirectionTypeFormat = new DefaultOpengisse_DirectionTypeFormat {}
  trait DefaultOpengisse_DirectionTypeFormat extends scalaxb.XMLFormat[opengis.se.DirectionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.se.DirectionType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.se.DirectionType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("toUpper")) => opengis.se.ToUpper
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("toLower")) => opengis.se.ToLower

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.DirectionType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.se.DirectionType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisse_TrimTypeFormat extends scalaxb.ElemNameParser[opengis.se.TrimType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("TrimType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.TrimType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "StringValue")) ^^
      { case p1 =>
      opengis.se.TrimType(scalaxb.fromXML[opengis.se.ParameterValueTypable](p1, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@fallbackValue").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@fallbackValue" -> _ },
        (node \ "@stripOffPosition").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.se.StripOffPositionType](x, scalaxb.ElemName(node) :: stack)) } map { "@stripOffPosition" -> _ },
        (node \ "@stripOffChar").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@stripOffChar" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.TrimType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@fallbackValue", _) => attr = scala.xml.Attribute(null, "fallbackValue", __obj.fallbackValue.toString, attr)
        case ("@stripOffPosition", _) => __obj.stripOffPosition foreach { x => attr = scala.xml.Attribute(null, "stripOffPosition", x.toString, attr) }
        case ("@stripOffChar", _) => __obj.stripOffChar foreach { x => attr = scala.xml.Attribute(null, "stripOffChar", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.TrimType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.StringValue, Some("http://www.opengis.net/se"), Some("StringValue"), __scope, false))

  }

  def buildOpengisse_StripOffPositionTypeFormat = new DefaultOpengisse_StripOffPositionTypeFormat {}
  trait DefaultOpengisse_StripOffPositionTypeFormat extends scalaxb.XMLFormat[opengis.se.StripOffPositionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.se.StripOffPositionType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.se.StripOffPositionType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("leading")) => opengis.se.Leading
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("trailing")) => opengis.se.Trailing
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("both")) => opengis.se.Both

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.StripOffPositionType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.se.StripOffPositionType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisse_StringPositionTypeFormat extends scalaxb.ElemNameParser[opengis.se.StringPositionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("StringPositionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.StringPositionType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "LookupString")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/se"), "StringValue")) ^^
      { case p1 ~ p2 =>
      opengis.se.StringPositionType(scalaxb.fromXML[opengis.se.ParameterValueTypable](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.se.ParameterValueTypable](p2, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@fallbackValue").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@fallbackValue" -> _ },
        (node \ "@searchDirection").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.se.SearchDirectionType](x, scalaxb.ElemName(node) :: stack)) } map { "@searchDirection" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.StringPositionType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@fallbackValue", _) => attr = scala.xml.Attribute(null, "fallbackValue", __obj.fallbackValue.toString, attr)
        case ("@searchDirection", _) => __obj.searchDirection foreach { x => attr = scala.xml.Attribute(null, "searchDirection", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.StringPositionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.LookupString, Some("http://www.opengis.net/se"), Some("LookupString"), __scope, false),
        scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.StringValue, Some("http://www.opengis.net/se"), Some("StringValue"), __scope, false))

  }

  def buildOpengisse_SearchDirectionTypeFormat = new DefaultOpengisse_SearchDirectionTypeFormat {}
  trait DefaultOpengisse_SearchDirectionTypeFormat extends scalaxb.XMLFormat[opengis.se.SearchDirectionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.se.SearchDirectionType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.se.SearchDirectionType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("frontToBack")) => opengis.se.FrontToBack
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("backToFront")) => opengis.se.BackToFront

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.SearchDirectionType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.se.SearchDirectionType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisse_StringLengthTypeFormat extends scalaxb.ElemNameParser[opengis.se.StringLengthType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("StringLengthType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.StringLengthType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "StringValue")) ^^
      { case p1 =>
      opengis.se.StringLengthType(scalaxb.fromXML[opengis.se.ParameterValueTypable](p1, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@fallbackValue").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@fallbackValue" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.StringLengthType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@fallbackValue", _) => attr = scala.xml.Attribute(null, "fallbackValue", __obj.fallbackValue.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.StringLengthType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.StringValue, Some("http://www.opengis.net/se"), Some("StringValue"), __scope, false))

  }

  trait DefaultOpengisse_CategorizeTypeFormat extends scalaxb.ElemNameParser[opengis.se.CategorizeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("CategorizeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.CategorizeType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "LookupValue")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/se"), "Value")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/se"), "Threshold")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/se"), "Value"))) ^^ 
        { case p1 ~ p2 => opengis.se.CategorizeTypeSequence1(scalaxb.fromXML[opengis.se.ParameterValueTypable](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.se.ParameterValueTypable](p2, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.se.CategorizeType(scalaxb.fromXML[opengis.se.ParameterValueTypable](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.se.ParameterValueTypable](p2, scalaxb.ElemName(node) :: stack),
        p3,
        scala.collection.immutable.ListMap(List(
        (node \ "@fallbackValue").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@fallbackValue" -> _ },
        (node \ "@threshholdsBelongTo").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.se.ThreshholdsBelongToType](x, scalaxb.ElemName(node) :: stack)) } map { "@threshholdsBelongTo" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.CategorizeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@fallbackValue", _) => attr = scala.xml.Attribute(null, "fallbackValue", __obj.fallbackValue.toString, attr)
        case ("@threshholdsBelongTo", _) => __obj.threshholdsBelongTo foreach { x => attr = scala.xml.Attribute(null, "threshholdsBelongTo", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.CategorizeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.LookupValue, Some("http://www.opengis.net/se"), Some("LookupValue"), __scope, false),
        scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.Value, Some("http://www.opengis.net/se"), Some("Value"), __scope, false),
        __obj.categorizetypesequence1 flatMap { scalaxb.toXML[opengis.se.CategorizeTypeSequence1](_, None, Some("categorizetypesequence1"), __scope, false) })

  }

  trait DefaultOpengisse_CategorizeTypeSequence1Format extends scalaxb.XMLFormat[opengis.se.CategorizeTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.CategorizeTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.se.CategorizeTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      Seq.concat(scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.Threshold, Some("http://www.opengis.net/se"), Some("Threshold"), __scope, false),
        scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.Value, Some("http://www.opengis.net/se"), Some("Value"), __scope, false))


  }

  def buildOpengisse_ThreshholdsBelongToTypeFormat = new DefaultOpengisse_ThreshholdsBelongToTypeFormat {}
  trait DefaultOpengisse_ThreshholdsBelongToTypeFormat extends scalaxb.XMLFormat[opengis.se.ThreshholdsBelongToType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.se.ThreshholdsBelongToType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.se.ThreshholdsBelongToType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("succeeding")) => opengis.se.Succeeding
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("preceding")) => opengis.se.Preceding

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.ThreshholdsBelongToType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.se.ThreshholdsBelongToType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisse_InterpolateTypeFormat extends scalaxb.ElemNameParser[opengis.se.InterpolateType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("InterpolateType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.InterpolateType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "LookupValue")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/se"), "InterpolationPoint")) ^^
      { case p1 ~ p2 =>
      opengis.se.InterpolateType(scalaxb.fromXML[opengis.se.ParameterValueTypable](p1, scalaxb.ElemName(node) :: stack),
        p2 map { scalaxb.fromXML[opengis.se.InterpolationPointType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@fallbackValue").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@fallbackValue" -> _ },
        (node \ "@mode").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.se.ModeType](x, scalaxb.ElemName(node) :: stack)) } map { "@mode" -> _ },
        (node \ "@method").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.se.MethodType](x, scalaxb.ElemName(node) :: stack)) } map { "@method" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.InterpolateType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@fallbackValue", _) => attr = scala.xml.Attribute(null, "fallbackValue", __obj.fallbackValue.toString, attr)
        case ("@mode", _) => __obj.mode foreach { x => attr = scala.xml.Attribute(null, "mode", x.toString, attr) }
        case ("@method", _) => __obj.method foreach { x => attr = scala.xml.Attribute(null, "method", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.InterpolateType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.LookupValue, Some("http://www.opengis.net/se"), Some("LookupValue"), __scope, false),
        __obj.InterpolationPoint flatMap { scalaxb.toXML[opengis.se.InterpolationPointType](_, Some("http://www.opengis.net/se"), Some("InterpolationPoint"), __scope, false) })

  }

  trait DefaultOpengisse_InterpolationPointTypeFormat extends scalaxb.ElemNameParser[opengis.se.InterpolationPointType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("InterpolationPointType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.InterpolationPointType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "Data")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/se"), "Value")) ^^
      { case p1 ~ p2 =>
      opengis.se.InterpolationPointType(scalaxb.fromXML[Double](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.se.ParameterValueTypable](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.se.InterpolationPointType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[Double](__obj.Data, Some("http://www.opengis.net/se"), Some("Data"), __scope, false),
        scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.Value, Some("http://www.opengis.net/se"), Some("Value"), __scope, false))

  }

  def buildOpengisse_ModeTypeFormat = new DefaultOpengisse_ModeTypeFormat {}
  trait DefaultOpengisse_ModeTypeFormat extends scalaxb.XMLFormat[opengis.se.ModeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.se.ModeType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.se.ModeType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("linear")) => opengis.se.Linear
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("cosine")) => opengis.se.Cosine
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("cubic")) => opengis.se.Cubic

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.ModeType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.se.ModeType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengisse_MethodTypeFormat = new DefaultOpengisse_MethodTypeFormat {}
  trait DefaultOpengisse_MethodTypeFormat extends scalaxb.XMLFormat[opengis.se.MethodType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.se.MethodType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.se.MethodType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("numeric")) => opengis.se.Numeric
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("color")) => opengis.se.Color

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.MethodType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.se.MethodType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisse_RecodeTypeFormat extends scalaxb.ElemNameParser[opengis.se.RecodeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("RecodeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.RecodeType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "LookupValue")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/se"), "MapItem")) ^^
      { case p1 ~ p2 =>
      opengis.se.RecodeType(scalaxb.fromXML[opengis.se.ParameterValueTypable](p1, scalaxb.ElemName(node) :: stack),
        p2 map { scalaxb.fromXML[opengis.se.MapItemType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@fallbackValue").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@fallbackValue" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.RecodeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@fallbackValue", _) => attr = scala.xml.Attribute(null, "fallbackValue", __obj.fallbackValue.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.RecodeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.LookupValue, Some("http://www.opengis.net/se"), Some("LookupValue"), __scope, false),
        __obj.MapItem flatMap { scalaxb.toXML[opengis.se.MapItemType](_, Some("http://www.opengis.net/se"), Some("MapItem"), __scope, false) })

  }

  trait DefaultOpengisse_MapItemTypeFormat extends scalaxb.ElemNameParser[opengis.se.MapItemType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("MapItemType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.MapItemType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "Data")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/se"), "Value")) ^^
      { case p1 ~ p2 =>
      opengis.se.MapItemType(scalaxb.fromXML[Double](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.se.ParameterValueTypable](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.se.MapItemType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[Double](__obj.Data, Some("http://www.opengis.net/se"), Some("Data"), __scope, false),
        scalaxb.toXML[opengis.se.ParameterValueTypable](__obj.Value, Some("http://www.opengis.net/se"), Some("Value"), __scope, false))

  }

  def buildOpengisse_VersionTypeFormat = new DefaultOpengisse_VersionTypeFormat {}
  trait DefaultOpengisse_VersionTypeFormat extends scalaxb.XMLFormat[opengis.se.VersionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.se.VersionType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.se.VersionType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("1.1.0")) => opengis.se.Number1u461u460

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.VersionType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.se.VersionType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisse_DescriptionTypeFormat extends scalaxb.ElemNameParser[opengis.se.DescriptionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("DescriptionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.DescriptionType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Title")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Abstract")) ^^
      { case p1 ~ p2 =>
      opengis.se.DescriptionType(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.se.DescriptionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title map { scalaxb.toXML[String](_, Some("http://www.opengis.net/se"), Some("Title"), __scope, false) } getOrElse {Nil},
        __obj.AbstractValue map { scalaxb.toXML[String](_, Some("http://www.opengis.net/se"), Some("Abstract"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengisse_OnlineResourceTypeFormat extends scalaxb.XMLFormat[opengis.se.OnlineResourceType] with scalaxb.CanWriteChildNodes[opengis.se.OnlineResourceType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.OnlineResourceType] = seq match {
      case node: scala.xml.Node => Right(opengis.se.OnlineResourceType(scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.se.OnlineResourceType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.OnlineResourceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  def buildOpengisse_EncodingFormat = new DefaultOpengisse_EncodingFormat {}
  trait DefaultOpengisse_EncodingFormat extends scalaxb.XMLFormat[opengis.se.Encoding] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.se.Encoding =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.se.Encoding] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("xml")) => opengis.se.Xml
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("base64")) => opengis.se.Base64

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.se.Encoding] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.se.Encoding, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengisse_InlineContentTypeFormat extends scalaxb.ElemNameParser[opengis.se.InlineContentType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/se")
    
    override def typeName: Option[String] = Some("InlineContentType")

    override def isMixed: Boolean = true

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.se.InlineContentType] =
      phrase(optTextRecord ~ 
      opt(((any(_ => true) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack))) ~
      optTextRecord) ^^ 
      { case p1 ~ p2 => Seq.concat(Seq(p1), p2.toList) }) ~ 
      optTextRecord ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.se.InlineContentType(Seq.concat(p1.toList,
        p2 getOrElse {Nil},
        p3.toList),
        scala.collection.immutable.ListMap(List(
        (node \ "@encoding").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.se.Encoding](x, scalaxb.ElemName(node) :: stack)) } map { "@encoding" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.se.InlineContentType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@encoding", _) => attr = scala.xml.Attribute(null, "encoding", __obj.encoding.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.se.InlineContentType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      __obj.mixed.toSeq flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) }

  }

  trait DefaultOpengissld_DescribeLayerResponseTypeFormat extends scalaxb.ElemNameParser[opengis.sld.DescribeLayerResponseType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    override def typeName: Option[String] = Some("DescribeLayerResponseType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.DescribeLayerResponseType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "Version")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/sld"), "LayerDescription")) ^^
      { case p1 ~ p2 =>
      opengis.sld.DescribeLayerResponseType(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        p2 map { scalaxb.fromXML[opengis.sld.LayerDescriptionType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.DescribeLayerResponseType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.Version, Some("http://www.opengis.net/sld"), Some("Version"), __scope, false),
        __obj.LayerDescription flatMap { scalaxb.toXML[opengis.sld.LayerDescriptionType](_, Some("http://www.opengis.net/sld"), Some("LayerDescription"), __scope, false) })

  }

  trait DefaultOpengissld_LayerDescriptionTypeFormat extends scalaxb.ElemNameParser[opengis.sld.LayerDescriptionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    override def typeName: Option[String] = Some("LayerDescriptionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.LayerDescriptionType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "owsType")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/se"), "OnlineResource")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/sld"), "TypeName")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.sld.LayerDescriptionType(scalaxb.fromXML[opengis.sld.OwsTypeType](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.se.OnlineResourceType](p2, scalaxb.ElemName(node) :: stack),
        p3 map { scalaxb.fromXML[opengis.sld.TypeNameType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.LayerDescriptionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.sld.OwsTypeType](__obj.owsType, Some("http://www.opengis.net/sld"), Some("owsType"), __scope, false),
        scalaxb.toXML[opengis.se.OnlineResourceType](__obj.OnlineResource, Some("http://www.opengis.net/se"), Some("OnlineResource"), __scope, false),
        __obj.TypeName flatMap { scalaxb.toXML[opengis.sld.TypeNameType](_, Some("http://www.opengis.net/sld"), Some("TypeName"), __scope, false) })

  }

  trait DefaultOpengissld_TypeNameTypeFormat extends scalaxb.ElemNameParser[opengis.sld.TypeNameType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    override def typeName: Option[String] = Some("TypeNameType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.TypeNameType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/se"), "FeatureTypeName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[javax.xml.namespace.QName](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "CoverageName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.sld.TypeNameType(p1) })
    
    def writesChildNodes(__obj: opengis.sld.TypeNameType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.typenametypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get)

  }

  def buildOpengissld_OwsTypeTypeFormat = new DefaultOpengissld_OwsTypeTypeFormat {}
  trait DefaultOpengissld_OwsTypeTypeFormat extends scalaxb.XMLFormat[opengis.sld.OwsTypeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.sld.OwsTypeType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.sld.OwsTypeType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("wfs")) => opengis.sld.Wfs
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("wcs")) => opengis.sld.Wcs

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.sld.OwsTypeType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.sld.OwsTypeType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengissld_GetMapTypeFormat extends scalaxb.ElemNameParser[opengis.sld.GetMapType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    override def typeName: Option[String] = Some("GetMapType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.GetMapType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "StyledLayerDescriptor")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/sld"), "CRS")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/sld"), "BoundingBox")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/sld"), "Output")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/sld"), "Exceptions")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/sld"), "Time")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/sld"), "Elevation")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 =>
      opengis.sld.GetMapType(scalaxb.fromXML[opengis.sld.StyledLayerDescriptor](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p2, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.sld.ows.BoundingBoxTypable](p3, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.sld.OutputType](p4, scalaxb.ElemName(node) :: stack),
        p5.headOption map { scalaxb.fromXML[opengis.sld.ExceptionsType](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[javax.xml.datatype.XMLGregorianCalendar](_, scalaxb.ElemName(node) :: stack) },
        p7.headOption map { scalaxb.fromXML[opengis.sld.ElevationType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("1.3.0"), scalaxb.ElemName(node) :: stack))) map { "@version" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.sld.GetMapType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@version", _) => attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.sld.GetMapType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.sld.StyledLayerDescriptor](__obj.StyledLayerDescriptor, Some("http://www.opengis.net/sld"), Some("StyledLayerDescriptor"), __scope, false),
        scalaxb.toXML[String](__obj.CRS, Some("http://www.opengis.net/sld"), Some("CRS"), __scope, false),
        scalaxb.toXML[opengis.sld.ows.BoundingBoxTypable](__obj.BoundingBox, Some("http://www.opengis.net/sld"), Some("BoundingBox"), __scope, false),
        scalaxb.toXML[opengis.sld.OutputType](__obj.Output, Some("http://www.opengis.net/sld"), Some("Output"), __scope, false),
        __obj.Exceptions map { scalaxb.toXML[opengis.sld.ExceptionsType](_, Some("http://www.opengis.net/sld"), Some("Exceptions"), __scope, false) } getOrElse {Nil},
        __obj.Time map { scalaxb.toXML[javax.xml.datatype.XMLGregorianCalendar](_, Some("http://www.opengis.net/sld"), Some("Time"), __scope, false) } getOrElse {Nil},
        __obj.Elevation map { scalaxb.toXML[opengis.sld.ElevationType](_, Some("http://www.opengis.net/sld"), Some("Elevation"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengissld_SizeFormat extends scalaxb.ElemNameParser[opengis.sld.Size] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.Size] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "Width")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/sld"), "Height")) ^^
      { case p1 ~ p2 =>
      opengis.sld.Size(scalaxb.fromXML[BigInt](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[BigInt](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.sld.Size, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[BigInt](__obj.Width, Some("http://www.opengis.net/sld"), Some("Width"), __scope, false),
        scalaxb.toXML[BigInt](__obj.Height, Some("http://www.opengis.net/sld"), Some("Height"), __scope, false))

  }

  trait DefaultOpengissld_OutputTypeFormat extends scalaxb.ElemNameParser[opengis.sld.OutputType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    override def typeName: Option[String] = Some("OutputType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.OutputType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "Size")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Format")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/sld"), "Transparent")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/sld"), "BGcolor")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.sld.OutputType(scalaxb.fromXML[opengis.sld.Size](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[Boolean](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.OutputType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.sld.Size](__obj.Size, Some("http://www.opengis.net/sld"), Some("Size"), __scope, false),
        scalaxb.toXML[String](__obj.Format, Some("http://www.opengis.net/wms"), Some("Format"), __scope, false),
        __obj.Transparent map { scalaxb.toXML[Boolean](_, Some("http://www.opengis.net/sld"), Some("Transparent"), __scope, false) } getOrElse {Nil},
        __obj.BGcolor map { scalaxb.toXML[String](_, Some("http://www.opengis.net/sld"), Some("BGcolor"), __scope, false) } getOrElse {Nil})

  }

  def buildOpengissld_ExceptionsTypeFormat = new DefaultOpengissld_ExceptionsTypeFormat {}
  trait DefaultOpengissld_ExceptionsTypeFormat extends scalaxb.XMLFormat[opengis.sld.ExceptionsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.sld.ExceptionsType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.sld.ExceptionsType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("XML")) => opengis.sld.XML
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("INIMAGE")) => opengis.sld.INIMAGE
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("BLANK")) => opengis.sld.BLANK

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.sld.ExceptionsType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.sld.ExceptionsType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengissld_ElevationTypeFormat extends scalaxb.ElemNameParser[opengis.sld.ElevationType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    override def typeName: Option[String] = Some("ElevationType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.ElevationType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "Value")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[Double](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "Interval")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.sld.IntervalType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.sld.ElevationType(p1) })
    
    def writesChildNodes(__obj: opengis.sld.ElevationType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.elevationtypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengissld_IntervalTypeFormat extends scalaxb.ElemNameParser[opengis.sld.IntervalType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    override def typeName: Option[String] = Some("IntervalType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.IntervalType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "Min")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/sld"), "Max")) ^^
      { case p1 ~ p2 =>
      opengis.sld.IntervalType(scalaxb.fromXML[Double](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[Double](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.sld.IntervalType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[Double](__obj.Min, Some("http://www.opengis.net/sld"), Some("Min"), __scope, false),
        scalaxb.toXML[Double](__obj.Max, Some("http://www.opengis.net/sld"), Some("Max"), __scope, false))

  }

  trait DefaultOpengissld_StyledLayerDescriptorFormat extends scalaxb.ElemNameParser[opengis.sld.StyledLayerDescriptor] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.StyledLayerDescriptor] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Name")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Description")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/sld"), "UseSLDLibrary")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "NamedLayer")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.sld.NamedLayer](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "UserLayer")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.sld.UserLayer](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.sld.StyledLayerDescriptor(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.se.DescriptionType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.sld.UseSLDLibrary](_, scalaxb.ElemName(node) :: stack) },
        p4,
        scala.collection.immutable.ListMap(List(
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.se.VersionType](x, scalaxb.ElemName(node) :: stack)) } map { "@version" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.sld.StyledLayerDescriptor, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@version", _) => attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.sld.StyledLayerDescriptor, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Name map { scalaxb.toXML[String](_, Some("http://www.opengis.net/se"), Some("Name"), __scope, false) } getOrElse {Nil},
        __obj.Description map { scalaxb.toXML[opengis.se.DescriptionType](_, Some("http://www.opengis.net/se"), Some("Description"), __scope, false) } getOrElse {Nil},
        __obj.UseSLDLibrary flatMap { scalaxb.toXML[opengis.sld.UseSLDLibrary](_, Some("http://www.opengis.net/sld"), Some("UseSLDLibrary"), __scope, false) },
        __obj.styledlayerdescriptoroption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.sld.StyledLayerDescriptorOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengissld_UseSLDLibraryFormat extends scalaxb.ElemNameParser[opengis.sld.UseSLDLibrary] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.UseSLDLibrary] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "OnlineResource")) ^^
      { case p1 =>
      opengis.sld.UseSLDLibrary(scalaxb.fromXML[opengis.se.OnlineResourceType](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.sld.UseSLDLibrary, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.se.OnlineResourceType](__obj.OnlineResource, Some("http://www.opengis.net/se"), Some("OnlineResource"), __scope, false))

  }

  trait DefaultOpengissld_NamedLayerFormat extends scalaxb.ElemNameParser[opengis.sld.NamedLayer] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.NamedLayer] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "Name")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Description")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/sld"), "LayerFeatureConstraints")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "NamedStyle")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.sld.NamedStyle](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "UserStyle")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.sld.UserStyle](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.sld.NamedLayer(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        p2.headOption map { scalaxb.fromXML[opengis.se.DescriptionType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.sld.LayerFeatureConstraints](_, scalaxb.ElemName(node) :: stack) },
        p4) })
    
    def writesChildNodes(__obj: opengis.sld.NamedLayer, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.Name, Some("http://www.opengis.net/se"), Some("Name"), __scope, false),
        __obj.Description map { scalaxb.toXML[opengis.se.DescriptionType](_, Some("http://www.opengis.net/se"), Some("Description"), __scope, false) } getOrElse {Nil},
        __obj.LayerFeatureConstraints map { scalaxb.toXML[opengis.sld.LayerFeatureConstraints](_, Some("http://www.opengis.net/sld"), Some("LayerFeatureConstraints"), __scope, false) } getOrElse {Nil},
        __obj.namedlayeroption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.sld.NamedLayerOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengissld_NamedStyleFormat extends scalaxb.ElemNameParser[opengis.sld.NamedStyle] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.NamedStyle] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "Name")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Description")) ^^
      { case p1 ~ p2 =>
      opengis.sld.NamedStyle(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        p2.headOption map { scalaxb.fromXML[opengis.se.DescriptionType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.NamedStyle, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.Name, Some("http://www.opengis.net/se"), Some("Name"), __scope, false),
        __obj.Description map { scalaxb.toXML[opengis.se.DescriptionType](_, Some("http://www.opengis.net/se"), Some("Description"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengissld_UserLayerFormat extends scalaxb.ElemNameParser[opengis.sld.UserLayer] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.UserLayer] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Name")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Description")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "RemoteOWS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.sld.RemoteOWS](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "InlineFeature")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.sld.InlineFeature](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "LayerFeatureConstraints")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.sld.LayerFeatureConstraints](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "LayerCoverageConstraints")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.sld.LayerCoverageConstraints](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/sld"), "UserStyle")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.sld.UserLayer(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.se.DescriptionType](_, scalaxb.ElemName(node) :: stack) },
        p3,
        p4,
        p5 map { scalaxb.fromXML[opengis.sld.UserStyle](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.UserLayer, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Name map { scalaxb.toXML[String](_, Some("http://www.opengis.net/se"), Some("Name"), __scope, false) } getOrElse {Nil},
        __obj.Description map { scalaxb.toXML[opengis.se.DescriptionType](_, Some("http://www.opengis.net/se"), Some("Description"), __scope, false) } getOrElse {Nil},
        __obj.userlayeroption map { x => scalaxb.toXML[scalaxb.DataRecord[opengis.sld.UserLayerOption]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        __obj.userlayeroption2 map { x => scalaxb.toXML[scalaxb.DataRecord[opengis.sld.UserLayerOption2]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        __obj.UserStyle flatMap { scalaxb.toXML[opengis.sld.UserStyle](_, Some("http://www.opengis.net/sld"), Some("UserStyle"), __scope, false) })

  }

  trait DefaultOpengissld_RemoteOWSFormat extends scalaxb.ElemNameParser[opengis.sld.RemoteOWS] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.RemoteOWS] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "Service")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/se"), "OnlineResource")) ^^
      { case p1 ~ p2 =>
      opengis.sld.RemoteOWS(scalaxb.fromXML[opengis.sld.Service](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.se.OnlineResourceType](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.sld.RemoteOWS, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.sld.Service](__obj.Service, Some("http://www.opengis.net/sld"), Some("Service"), __scope, false),
        scalaxb.toXML[opengis.se.OnlineResourceType](__obj.OnlineResource, Some("http://www.opengis.net/se"), Some("OnlineResource"), __scope, false))

  }

  def buildOpengissld_ServiceFormat = new DefaultOpengissld_ServiceFormat {}
  trait DefaultOpengissld_ServiceFormat extends scalaxb.XMLFormat[opengis.sld.Service] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.sld.Service =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.sld.Service] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("WFS")) => opengis.sld.WFSValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("WCS")) => opengis.sld.WCSValue

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.sld.Service] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.sld.Service, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengissld_InlineFeatureFormat extends scalaxb.ElemNameParser[opengis.sld.InlineFeature] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.InlineFeature] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "FeatureCollection")) ^^
      { case p1 =>
      opengis.sld.InlineFeature(p1 map { scalaxb.fromXML[opengis.gml.FeatureCollectionTypable](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.InlineFeature, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.FeatureCollection flatMap { scalaxb.toXML[opengis.gml.FeatureCollectionTypable](_, Some("http://www.opengis.net/gml"), Some("FeatureCollection"), __scope, false) })

  }

  trait DefaultOpengissld_LayerFeatureConstraintsFormat extends scalaxb.ElemNameParser[opengis.sld.LayerFeatureConstraints] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.LayerFeatureConstraints] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/sld"), "FeatureTypeConstraint")) ^^
      { case p1 =>
      opengis.sld.LayerFeatureConstraints(p1 map { scalaxb.fromXML[opengis.sld.FeatureTypeConstraint](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.LayerFeatureConstraints, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.FeatureTypeConstraint flatMap { scalaxb.toXML[opengis.sld.FeatureTypeConstraint](_, Some("http://www.opengis.net/sld"), Some("FeatureTypeConstraint"), __scope, false) })

  }

  trait DefaultOpengissld_FeatureTypeConstraintFormat extends scalaxb.ElemNameParser[opengis.sld.FeatureTypeConstraint] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.FeatureTypeConstraint] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "FeatureTypeName")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Filter")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/sld"), "Extent")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.sld.FeatureTypeConstraint(p1.headOption map { scalaxb.fromXML[javax.xml.namespace.QName](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.ogc.FilterType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.sld.Extent](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.FeatureTypeConstraint, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.FeatureTypeName map { scalaxb.toXML[javax.xml.namespace.QName](_, Some("http://www.opengis.net/se"), Some("FeatureTypeName"), __scope, false) } getOrElse {Nil},
        __obj.Filter map { scalaxb.toXML[opengis.ogc.FilterType](_, Some("http://www.opengis.net/ogc"), Some("Filter"), __scope, false) } getOrElse {Nil},
        __obj.Extent flatMap { scalaxb.toXML[opengis.sld.Extent](_, Some("http://www.opengis.net/sld"), Some("Extent"), __scope, false) })

  }

  trait DefaultOpengissld_LayerCoverageConstraintsFormat extends scalaxb.ElemNameParser[opengis.sld.LayerCoverageConstraints] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.LayerCoverageConstraints] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/sld"), "CoverageConstraint")) ^^
      { case p1 =>
      opengis.sld.LayerCoverageConstraints(p1 map { scalaxb.fromXML[opengis.sld.CoverageConstraint](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.LayerCoverageConstraints, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.CoverageConstraint flatMap { scalaxb.toXML[opengis.sld.CoverageConstraint](_, Some("http://www.opengis.net/sld"), Some("CoverageConstraint"), __scope, false) })

  }

  trait DefaultOpengissld_CoverageConstraintFormat extends scalaxb.ElemNameParser[opengis.sld.CoverageConstraint] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.CoverageConstraint] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "CoverageName")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/sld"), "CoverageExtent")) ^^
      { case p1 ~ p2 =>
      opengis.sld.CoverageConstraint(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        p2.headOption map { scalaxb.fromXML[opengis.sld.CoverageExtent](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.sld.CoverageConstraint, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.CoverageName, Some("http://www.opengis.net/se"), Some("CoverageName"), __scope, false),
        __obj.CoverageExtent map { scalaxb.toXML[opengis.sld.CoverageExtent](_, Some("http://www.opengis.net/sld"), Some("CoverageExtent"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengissld_CoverageExtentFormat extends scalaxb.ElemNameParser[opengis.sld.CoverageExtent] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.CoverageExtent] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "RangeAxis")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.sld.RangeAxis](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "TimePeriod")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.sld.CoverageExtent(p1) })
    
    def writesChildNodes(__obj: opengis.sld.CoverageExtent, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.coverageextentoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengissld_RangeAxisFormat extends scalaxb.ElemNameParser[opengis.sld.RangeAxis] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.RangeAxis] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "Name")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/sld"), "Value")) ^^
      { case p1 ~ p2 =>
      opengis.sld.RangeAxis(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.sld.RangeAxis, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.Name, Some("http://www.opengis.net/se"), Some("Name"), __scope, false),
        scalaxb.toXML[String](__obj.Value, Some("http://www.opengis.net/sld"), Some("Value"), __scope, false))

  }

  trait DefaultOpengissld_ExtentFormat extends scalaxb.ElemNameParser[opengis.sld.Extent] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.Extent] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/se"), "Name")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/sld"), "Value")) ^^
      { case p1 ~ p2 =>
      opengis.sld.Extent(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.sld.Extent, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.Name, Some("http://www.opengis.net/se"), Some("Name"), __scope, false),
        scalaxb.toXML[String](__obj.Value, Some("http://www.opengis.net/sld"), Some("Value"), __scope, false))

  }

  trait DefaultOpengissld_UserStyleFormat extends scalaxb.ElemNameParser[opengis.sld.UserStyle] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.sld.UserStyle] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Name")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/se"), "Description")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/sld"), "IsDefault")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/se"), "FeatureTypeStyle")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.FeatureTypeStyleType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "CoverageStyle")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.CoverageStyleType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/se"), "OnlineResource")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.se.OnlineResourceType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.sld.UserStyle(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.se.DescriptionType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[Boolean](_, scalaxb.ElemName(node) :: stack) },
        p4) })
    
    def writesChildNodes(__obj: opengis.sld.UserStyle, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Name map { scalaxb.toXML[String](_, Some("http://www.opengis.net/se"), Some("Name"), __scope, false) } getOrElse {Nil},
        __obj.Description map { scalaxb.toXML[opengis.se.DescriptionType](_, Some("http://www.opengis.net/se"), Some("Description"), __scope, false) } getOrElse {Nil},
        __obj.IsDefault map { scalaxb.toXML[Boolean](_, Some("http://www.opengis.net/sld"), Some("IsDefault"), __scope, false) } getOrElse {Nil},
        __obj.userstyleoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengissld_UserDefinedSymbolizationFormat extends scalaxb.XMLFormat[opengis.sld.UserDefinedSymbolization] with scalaxb.CanWriteChildNodes[opengis.sld.UserDefinedSymbolization] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/sld")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.sld.UserDefinedSymbolization] = seq match {
      case node: scala.xml.Node => Right(opengis.sld.UserDefinedSymbolization(scala.collection.immutable.ListMap(List(
        (node \ "@SupportSLD").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[Boolean](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@SupportSLD" -> _ },
        (node \ "@UserLayer").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[Boolean](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@UserLayer" -> _ },
        (node \ "@UserStyle").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[Boolean](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@UserStyle" -> _ },
        (node \ "@RemoteWFS").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[Boolean](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@RemoteWFS" -> _ },
        (node \ "@InlineFeature").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[Boolean](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@InlineFeature" -> _ },
        (node \ "@RemoteWCS").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[Boolean](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@RemoteWCS" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.sld.UserDefinedSymbolization, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@SupportSLD", _) => if (__obj.SupportSLD.toString != "0") attr = scala.xml.Attribute(null, "SupportSLD", __obj.SupportSLD.toString, attr)
        case ("@UserLayer", _) => if (__obj.UserLayer.toString != "0") attr = scala.xml.Attribute(null, "UserLayer", __obj.UserLayer.toString, attr)
        case ("@UserStyle", _) => if (__obj.UserStyle.toString != "0") attr = scala.xml.Attribute(null, "UserStyle", __obj.UserStyle.toString, attr)
        case ("@RemoteWFS", _) => if (__obj.RemoteWFS.toString != "0") attr = scala.xml.Attribute(null, "RemoteWFS", __obj.RemoteWFS.toString, attr)
        case ("@InlineFeature", _) => if (__obj.InlineFeature.toString != "0") attr = scala.xml.Attribute(null, "InlineFeature", __obj.InlineFeature.toString, attr)
        case ("@RemoteWCS", _) => if (__obj.RemoteWCS.toString != "0") attr = scala.xml.Attribute(null, "RemoteWCS", __obj.RemoteWCS.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.sld.UserDefinedSymbolization, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengiswcs_RequestBaseTypableFormat extends scalaxb.XMLFormat[opengis.wcs.RequestBaseTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wcs.RequestBaseTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          
          case _ => Right(scalaxb.fromXML[opengis.wcs.RequestBaseType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.wcs.RequestBaseTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.wcs.DescribeCoverage => scalaxb.toXML[opengis.wcs.DescribeCoverage](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wcs.GetCoverage => scalaxb.toXML[opengis.wcs.GetCoverage](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wcs.RequestBaseType => scalaxb.toXML[opengis.wcs.RequestBaseType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengiswcs_RequestBaseTypeFormat extends scalaxb.XMLFormat[opengis.wcs.RequestBaseType] with scalaxb.CanWriteChildNodes[opengis.wcs.RequestBaseType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wcs.RequestBaseType] = seq match {
      case node: scala.xml.Node => Right(opengis.wcs.RequestBaseType(scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("WCS"), scalaxb.ElemName(node) :: stack))) map { "@service" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("1.1.1"), scalaxb.ElemName(node) :: stack))) map { "@version" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.wcs.RequestBaseType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@service", _) => attr = scala.xml.Attribute(null, "service", __obj.service.toString, attr)
        case ("@version", _) => attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wcs.RequestBaseType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengiswcs_TimeSequenceTypeFormat extends scalaxb.ElemNameParser[opengis.wcs.TimeSequenceType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    override def typeName: Option[String] = Some("TimeSequenceType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.TimeSequenceType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "timePosition")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.TimePositionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "TimePeriod")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wcs.TimePeriodType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.wcs.TimeSequenceType(p1) })
    
    def writesChildNodes(__obj: opengis.wcs.TimeSequenceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.timesequencetypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengiswcs_TimePeriodTypeFormat extends scalaxb.ElemNameParser[opengis.wcs.TimePeriodType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    override def typeName: Option[String] = Some("TimePeriodType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.TimePeriodType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "BeginPosition")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "EndPosition")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "TimeResolution")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.wcs.TimePeriodType(scalaxb.fromXML[opengis.gml.TimePositionType](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.gml.TimePositionType](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@frame").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[java.net.URI](scala.xml.Text("#ISO-8601"), scalaxb.ElemName(node) :: stack))) map { "@frame" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wcs.TimePeriodType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@frame", _) => if (__obj.frame.toString != "#ISO-8601") attr = scala.xml.Attribute(null, "frame", __obj.frame.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wcs.TimePeriodType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.TimePositionType](__obj.BeginPosition, Some("http://www.opengis.net/wcs/1.1.1"), Some("BeginPosition"), __scope, false),
        scalaxb.toXML[opengis.gml.TimePositionType](__obj.EndPosition, Some("http://www.opengis.net/wcs/1.1.1"), Some("EndPosition"), __scope, false),
        __obj.TimeResolution map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("TimeResolution"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswcs_ContentsFormat extends scalaxb.ElemNameParser[opengis.wcs.Contents] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.Contents] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "CoverageSummary")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "SupportedCRS")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "SupportedFormat")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "OtherSource")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.wcs.Contents(p1 map { scalaxb.fromXML[opengis.wcs.CoverageSummaryType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.ows.OnlineResourceTypable](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wcs.Contents, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.CoverageSummary flatMap { scalaxb.toXML[opengis.wcs.CoverageSummaryType](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("CoverageSummary"), __scope, false) },
        __obj.SupportedCRS flatMap { scalaxb.toXML[java.net.URI](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("SupportedCRS"), __scope, false) },
        __obj.SupportedFormat flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("SupportedFormat"), __scope, false) },
        __obj.OtherSource flatMap { scalaxb.toXML[opengis.ows.OnlineResourceTypable](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("OtherSource"), __scope, false) })

  }

  trait DefaultOpengiswcs_CoverageSummaryTypeFormat extends scalaxb.ElemNameParser[opengis.wcs.CoverageSummaryType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    override def typeName: Option[String] = Some("CoverageSummaryType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.CoverageSummaryType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Title")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Keywords")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Metadata")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "WGS84BoundingBox")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "SupportedCRS")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "SupportedFormat")) ~ 
      (((safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "CoverageSummary")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Identifier"))) ^^ 
        { case p1 ~ p2 => scalaxb.DataRecord(opengis.wcs.CoverageSummaryTypeSequence1(p1 map { scalaxb.fromXML[opengis.wcs.CoverageSummaryType](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) })) }) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Identifier")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 =>
      opengis.wcs.CoverageSummaryType(p1 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.ows.MetadataType](_, scalaxb.ElemName(node) :: stack) },
        p5 map { scalaxb.fromXML[opengis.ows.WGS84BoundingBoxType](_, scalaxb.ElemName(node) :: stack) },
        p6 map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
        p7 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p8) })
    
    def writesChildNodes(__obj: opengis.wcs.CoverageSummaryType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Title"), __scope, false) },
        __obj.AbstractValue flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Abstract"), __scope, false) },
        __obj.Keywords flatMap { scalaxb.toXML[opengis.ows.KeywordsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Keywords"), __scope, false) },
        __obj.Metadata flatMap { scalaxb.toXML[opengis.ows.MetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("Metadata"), __scope, false) },
        __obj.WGS84BoundingBox flatMap { scalaxb.toXML[opengis.ows.WGS84BoundingBoxType](_, Some("http://www.opengis.net/ows/1.1"), Some("WGS84BoundingBox"), __scope, false) },
        __obj.SupportedCRS flatMap { scalaxb.toXML[java.net.URI](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("SupportedCRS"), __scope, false) },
        __obj.SupportedFormat flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("SupportedFormat"), __scope, false) },
        (Some(__obj.coveragesummarytypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengiswcs_CoverageSummaryTypeSequence1Format extends scalaxb.XMLFormat[opengis.wcs.CoverageSummaryTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wcs.CoverageSummaryTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.wcs.CoverageSummaryTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      Seq.concat(__obj.CoverageSummary flatMap { scalaxb.toXML[opengis.wcs.CoverageSummaryType](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("CoverageSummary"), __scope, false) },
        __obj.Identifier map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("Identifier"), __scope, false) } getOrElse {Nil})


  }

  trait DefaultOpengiswcs_CoveragesTypeFormat extends scalaxb.ElemNameParser[opengis.wcs.CoveragesType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    override def typeName: Option[String] = Some("CoveragesType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.CoveragesType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Coverage")) ^^
      { case p1 =>
      opengis.wcs.CoveragesType(p1 map { scalaxb.fromXML[opengis.ows.ReferenceGroupType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wcs.CoveragesType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Coverage flatMap { scalaxb.toXML[opengis.ows.ReferenceGroupType](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("Coverage"), __scope, false) })

  }

  trait DefaultOpengiswcs_DescribeCoverageFormat extends scalaxb.ElemNameParser[opengis.wcs.DescribeCoverage] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.DescribeCoverage] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Identifier")) ^^
      { case p1 =>
      opengis.wcs.DescribeCoverage(p1 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("WCS"), scalaxb.ElemName(node) :: stack))) map { "@service" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("1.1.1"), scalaxb.ElemName(node) :: stack))) map { "@version" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wcs.DescribeCoverage, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@service", _) => attr = scala.xml.Attribute(null, "service", __obj.service.toString, attr)
        case ("@version", _) => attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wcs.DescribeCoverage, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Identifier flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("Identifier"), __scope, false) })

  }

  trait DefaultOpengiswcs_CoverageDescriptionsFormat extends scalaxb.ElemNameParser[opengis.wcs.CoverageDescriptions] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.CoverageDescriptions] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "CoverageDescription")) ^^
      { case p1 =>
      opengis.wcs.CoverageDescriptions(p1 map { scalaxb.fromXML[opengis.wcs.CoverageDescriptionType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wcs.CoverageDescriptions, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.CoverageDescription flatMap { scalaxb.toXML[opengis.wcs.CoverageDescriptionType](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("CoverageDescription"), __scope, false) })

  }

  trait DefaultOpengiswcs_CoverageDescriptionTypeFormat extends scalaxb.ElemNameParser[opengis.wcs.CoverageDescriptionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    override def typeName: Option[String] = Some("CoverageDescriptionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.CoverageDescriptionType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Title")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Keywords")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Identifier")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Metadata")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Domain")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Range")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "SupportedCRS")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "SupportedFormat")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 =>
      opengis.wcs.CoverageDescriptionType(p1 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[String](p4, scalaxb.ElemName(node) :: stack),
        p5 map { scalaxb.fromXML[opengis.ows.MetadataType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.wcs.CoverageDomainType](p6, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.wcs.RangeType](p7, scalaxb.ElemName(node) :: stack),
        p8 map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
        p9 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wcs.CoverageDescriptionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Title"), __scope, false) },
        __obj.AbstractValue flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Abstract"), __scope, false) },
        __obj.Keywords flatMap { scalaxb.toXML[opengis.ows.KeywordsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Keywords"), __scope, false) },
        scalaxb.toXML[String](__obj.Identifier, Some("http://www.opengis.net/wcs/1.1.1"), Some("Identifier"), __scope, false),
        __obj.Metadata flatMap { scalaxb.toXML[opengis.ows.MetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("Metadata"), __scope, false) },
        scalaxb.toXML[opengis.wcs.CoverageDomainType](__obj.Domain, Some("http://www.opengis.net/wcs/1.1.1"), Some("Domain"), __scope, false),
        scalaxb.toXML[opengis.wcs.RangeType](__obj.RangeValue, Some("http://www.opengis.net/wcs/1.1.1"), Some("Range"), __scope, false),
        __obj.SupportedCRS flatMap { scalaxb.toXML[java.net.URI](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("SupportedCRS"), __scope, false) },
        __obj.SupportedFormat flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("SupportedFormat"), __scope, false) })

  }

  trait DefaultOpengiswcs_CoverageDomainTypeFormat extends scalaxb.ElemNameParser[opengis.wcs.CoverageDomainType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    override def typeName: Option[String] = Some("CoverageDomainType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.CoverageDomainType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "SpatialDomain")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "TemporalDomain")) ^^
      { case p1 ~ p2 =>
      opengis.wcs.CoverageDomainType(scalaxb.fromXML[opengis.wcs.SpatialDomainType](p1, scalaxb.ElemName(node) :: stack),
        p2.headOption map { scalaxb.fromXML[opengis.wcs.TimeSequenceType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wcs.CoverageDomainType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.wcs.SpatialDomainType](__obj.SpatialDomain, Some("http://www.opengis.net/wcs/1.1.1"), Some("SpatialDomain"), __scope, false),
        __obj.TemporalDomain map { scalaxb.toXML[opengis.wcs.TimeSequenceType](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("TemporalDomain"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswcs_SpatialDomainTypeFormat extends scalaxb.ElemNameParser[opengis.wcs.SpatialDomainType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    override def typeName: Option[String] = Some("SpatialDomainType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.SpatialDomainType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "WGS84BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.WGS84BoundingBoxType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "WGS84BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.WGS84BoundingBoxType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.BoundingBoxTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "GridCRS")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Transformation")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "ImageCRS")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Polygon")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.wcs.SpatialDomainType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.wcs.GridCrsType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.gml.AbstractCoordinateOperationType](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.wcs.ImageCRSRefType](_, scalaxb.ElemName(node) :: stack) },
        p5 map { scalaxb.fromXML[opengis.gml.PolygonType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wcs.SpatialDomainType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.BoundingBox flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) },
        __obj.GridCRS map { scalaxb.toXML[opengis.wcs.GridCrsType](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("GridCRS"), __scope, false) } getOrElse {Nil},
        __obj.Transformation map { scalaxb.toXML[opengis.gml.AbstractCoordinateOperationType](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("Transformation"), __scope, false) } getOrElse {Nil},
        __obj.ImageCRS map { scalaxb.toXML[opengis.wcs.ImageCRSRefType](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("ImageCRS"), __scope, false) } getOrElse {Nil},
        __obj.Polygon flatMap { scalaxb.toXML[opengis.gml.PolygonType](_, Some("http://www.opengis.net/gml"), Some("Polygon"), __scope, false) })

  }

  trait DefaultOpengiswcs_ImageCRSRefTypeFormat extends scalaxb.ElemNameParser[opengis.wcs.ImageCRSRefType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    override def typeName: Option[String] = Some("ImageCRSRefType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.ImageCRSRefType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "ImageCRS")) ^^
      { case p1 =>
      opengis.wcs.ImageCRSRefType(p1.headOption map { scalaxb.fromXML[opengis.gml.ImageCRSType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.opengis.net/gml}remoteSchema").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}remoteSchema" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wcs.ImageCRSRefType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.opengis.net/gml}remoteSchema", _) => __obj.gmlremoteSchema foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "remoteSchema", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wcs.ImageCRSRefType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.ImageCRS map { scalaxb.toXML[opengis.gml.ImageCRSType](_, Some("http://www.opengis.net/gml"), Some("ImageCRS"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswcs_RangeTypeFormat extends scalaxb.ElemNameParser[opengis.wcs.RangeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    override def typeName: Option[String] = Some("RangeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.RangeType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Field")) ^^
      { case p1 =>
      opengis.wcs.RangeType(p1 map { scalaxb.fromXML[opengis.wcs.FieldType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wcs.RangeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Field flatMap { scalaxb.toXML[opengis.wcs.FieldType](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("Field"), __scope, false) })

  }

  trait DefaultOpengiswcs_FieldTypeFormat extends scalaxb.ElemNameParser[opengis.wcs.FieldType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    override def typeName: Option[String] = Some("FieldType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.FieldType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Title")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Keywords")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Identifier")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Definition")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "NullValue")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "InterpolationMethods")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Axis")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 =>
      opengis.wcs.FieldType(p1 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[String](p4, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.ows.UnNamedDomainTypable](p5, scalaxb.ElemName(node) :: stack),
        p6 map { scalaxb.fromXML[opengis.ows.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.wcs.InterpolationMethods](p7, scalaxb.ElemName(node) :: stack),
        p8 map { scalaxb.fromXML[opengis.wcs.AxisType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wcs.FieldType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Title"), __scope, false) },
        __obj.AbstractValue flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Abstract"), __scope, false) },
        __obj.Keywords flatMap { scalaxb.toXML[opengis.ows.KeywordsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Keywords"), __scope, false) },
        scalaxb.toXML[String](__obj.Identifier, Some("http://www.opengis.net/wcs/1.1.1"), Some("Identifier"), __scope, false),
        scalaxb.toXML[opengis.ows.UnNamedDomainTypable](__obj.Definition, Some("http://www.opengis.net/wcs/1.1.1"), Some("Definition"), __scope, false),
        __obj.NullValue flatMap { scalaxb.toXML[opengis.ows.CodeTypable](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("NullValue"), __scope, false) },
        scalaxb.toXML[opengis.wcs.InterpolationMethods](__obj.InterpolationMethods, Some("http://www.opengis.net/wcs/1.1.1"), Some("InterpolationMethods"), __scope, false),
        __obj.Axis flatMap { scalaxb.toXML[opengis.wcs.AxisType](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("Axis"), __scope, false) })

  }

  trait DefaultOpengiswcs_AxisTypeFormat extends scalaxb.ElemNameParser[opengis.wcs.AxisType] with Opengisows_ValuesUnitGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    override def typeName: Option[String] = Some("AxisType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.AxisType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Title")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Keywords")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "AvailableKeys")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Meaning")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "DataType")) ~ 
      opt(parseValuesUnitGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Metadata")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 =>
      opengis.wcs.AxisType(p1 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.wcs.AvailableKeys](p4, scalaxb.ElemName(node) :: stack),
        p5.headOption map { scalaxb.fromXML[opengis.ows.DomainMetadataType](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[opengis.ows.DomainMetadataType](_, scalaxb.ElemName(node) :: stack) },
        p7,
        p8 map { scalaxb.fromXML[opengis.ows.MetadataType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@identifier").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@identifier" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wcs.AxisType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@identifier", _) => attr = scala.xml.Attribute(null, "identifier", __obj.identifier.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wcs.AxisType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Title"), __scope, false) },
        __obj.AbstractValue flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Abstract"), __scope, false) },
        __obj.Keywords flatMap { scalaxb.toXML[opengis.ows.KeywordsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Keywords"), __scope, false) },
        scalaxb.toXML[opengis.wcs.AvailableKeys](__obj.AvailableKeys, Some("http://www.opengis.net/wcs/1.1.1"), Some("AvailableKeys"), __scope, false),
        __obj.Meaning map { scalaxb.toXML[opengis.ows.DomainMetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("Meaning"), __scope, false) } getOrElse {Nil},
        __obj.DataType map { scalaxb.toXML[opengis.ows.DomainMetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("DataType"), __scope, false) } getOrElse {Nil},
        __obj.valuesUnitOption7 map { x => scalaxb.toXML[scalaxb.DataRecord[opengis.ows.ValuesUnitOption]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        __obj.Metadata flatMap { scalaxb.toXML[opengis.ows.MetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("Metadata"), __scope, false) })

  }

  trait DefaultOpengiswcs_AvailableKeysFormat extends scalaxb.ElemNameParser[opengis.wcs.AvailableKeys] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.AvailableKeys] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Key")) ^^
      { case p1 =>
      opengis.wcs.AvailableKeys(p1 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wcs.AvailableKeys, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Key flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("Key"), __scope, false) })

  }

  trait DefaultOpengiswcs_GetCapabilitiesFormat extends scalaxb.ElemNameParser[opengis.wcs.GetCapabilities] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.GetCapabilities] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "AcceptVersions")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Sections")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "AcceptFormats")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.wcs.GetCapabilities(p1.headOption map { scalaxb.fromXML[opengis.ows.AcceptVersionsType](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.ows.SectionsType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.ows.AcceptFormatsType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@updateSequence").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@updateSequence" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("WCS"), scalaxb.ElemName(node) :: stack))) map { "@service" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wcs.GetCapabilities, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@updateSequence", _) => __obj.updateSequence foreach { x => attr = scala.xml.Attribute(null, "updateSequence", x.toString, attr) }
        case ("@service", _) => attr = scala.xml.Attribute(null, "service", __obj.service.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wcs.GetCapabilities, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.AcceptVersions map { scalaxb.toXML[opengis.ows.AcceptVersionsType](_, Some("http://www.opengis.net/ows/1.1"), Some("AcceptVersions"), __scope, false) } getOrElse {Nil},
        __obj.Sections map { scalaxb.toXML[opengis.ows.SectionsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Sections"), __scope, false) } getOrElse {Nil},
        __obj.AcceptFormats map { scalaxb.toXML[opengis.ows.AcceptFormatsType](_, Some("http://www.opengis.net/ows/1.1"), Some("AcceptFormats"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswcs_CapabilitiesFormat extends scalaxb.ElemNameParser[opengis.wcs.Capabilities] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.Capabilities] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ServiceIdentification")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ServiceProvider")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "OperationsMetadata")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Contents")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.wcs.Capabilities(p1.headOption map { scalaxb.fromXML[opengis.ows.ServiceIdentification](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.ows.ServiceProvider](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.ows.OperationsMetadata](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.wcs.Contents](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@version" -> _ },
        (node \ "@updateSequence").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@updateSequence" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wcs.Capabilities, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@version", _) => attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case ("@updateSequence", _) => __obj.updateSequence foreach { x => attr = scala.xml.Attribute(null, "updateSequence", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wcs.Capabilities, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.ServiceIdentification map { scalaxb.toXML[opengis.ows.ServiceIdentification](_, Some("http://www.opengis.net/ows/1.1"), Some("ServiceIdentification"), __scope, false) } getOrElse {Nil},
        __obj.ServiceProvider map { scalaxb.toXML[opengis.ows.ServiceProvider](_, Some("http://www.opengis.net/ows/1.1"), Some("ServiceProvider"), __scope, false) } getOrElse {Nil},
        __obj.OperationsMetadata map { scalaxb.toXML[opengis.ows.OperationsMetadata](_, Some("http://www.opengis.net/ows/1.1"), Some("OperationsMetadata"), __scope, false) } getOrElse {Nil},
        __obj.Contents map { scalaxb.toXML[opengis.wcs.Contents](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("Contents"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswcs_GetCoverageFormat extends scalaxb.ElemNameParser[opengis.wcs.GetCoverage] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.GetCoverage] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Identifier")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "DomainSubset")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "RangeSubset")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Output")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.wcs.GetCoverage(scalaxb.fromXML[opengis.ows.CodeTypable](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.wcs.DomainSubsetType](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[opengis.wcs.RangeSubsetType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.wcs.OutputType](p4, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("WCS"), scalaxb.ElemName(node) :: stack))) map { "@service" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("1.1.1"), scalaxb.ElemName(node) :: stack))) map { "@version" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wcs.GetCoverage, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@service", _) => attr = scala.xml.Attribute(null, "service", __obj.service.toString, attr)
        case ("@version", _) => attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wcs.GetCoverage, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.ows.CodeTypable](__obj.Identifier, Some("http://www.opengis.net/ows/1.1"), Some("Identifier"), __scope, false),
        scalaxb.toXML[opengis.wcs.DomainSubsetType](__obj.DomainSubset, Some("http://www.opengis.net/wcs/1.1.1"), Some("DomainSubset"), __scope, false),
        __obj.RangeSubset map { scalaxb.toXML[opengis.wcs.RangeSubsetType](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("RangeSubset"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.wcs.OutputType](__obj.Output, Some("http://www.opengis.net/wcs/1.1.1"), Some("Output"), __scope, false))

  }

  trait DefaultOpengiswcs_OutputTypeFormat extends scalaxb.ElemNameParser[opengis.wcs.OutputType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    override def typeName: Option[String] = Some("OutputType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.OutputType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "GridCRS")) ^^
      { case p1 =>
      opengis.wcs.OutputType(p1.headOption map { scalaxb.fromXML[opengis.wcs.GridCrsType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@format").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@format" -> _ },
        (node \ "@store").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[Boolean](scala.xml.Text("false"), scalaxb.ElemName(node) :: stack))) map { "@store" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wcs.OutputType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@format", _) => __obj.format foreach { x => attr = scala.xml.Attribute(null, "format", x.toString, attr) }
        case ("@store", _) => if (__obj.store.toString != "false") attr = scala.xml.Attribute(null, "store", __obj.store.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wcs.OutputType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.GridCRS map { scalaxb.toXML[opengis.wcs.GridCrsType](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("GridCRS"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswcs_DomainSubsetTypeFormat extends scalaxb.ElemNameParser[opengis.wcs.DomainSubsetType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    override def typeName: Option[String] = Some("DomainSubsetType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.DomainSubsetType] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "WGS84BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.WGS84BoundingBoxType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "WGS84BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.WGS84BoundingBoxType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.BoundingBoxTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "TemporalSubset")) ^^
      { case p1 ~ p2 =>
      opengis.wcs.DomainSubsetType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.wcs.TimeSequenceType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wcs.DomainSubsetType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat((Some(__obj.BoundingBox) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get,
        __obj.TemporalSubset map { scalaxb.toXML[opengis.wcs.TimeSequenceType](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("TemporalSubset"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswcs_FieldSubsetFormat extends scalaxb.ElemNameParser[opengis.wcs.FieldSubset] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.FieldSubset] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Identifier")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "InterpolationType")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "AxisSubset")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.wcs.FieldSubset(scalaxb.fromXML[opengis.ows.CodeTypable](p1, scalaxb.ElemName(node) :: stack),
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.wcs.AxisSubset](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wcs.FieldSubset, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.ows.CodeTypable](__obj.Identifier, Some("http://www.opengis.net/ows/1.1"), Some("Identifier"), __scope, false),
        __obj.InterpolationType map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("InterpolationType"), __scope, false) } getOrElse {Nil},
        __obj.AxisSubset flatMap { scalaxb.toXML[opengis.wcs.AxisSubset](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("AxisSubset"), __scope, false) })

  }

  trait DefaultOpengiswcs_RangeSubsetTypeFormat extends scalaxb.ElemNameParser[opengis.wcs.RangeSubsetType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    override def typeName: Option[String] = Some("RangeSubsetType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.RangeSubsetType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "FieldSubset")) ^^
      { case p1 =>
      opengis.wcs.RangeSubsetType(p1 map { scalaxb.fromXML[opengis.wcs.FieldSubset](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wcs.RangeSubsetType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.FieldSubset flatMap { scalaxb.toXML[opengis.wcs.FieldSubset](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("FieldSubset"), __scope, false) })

  }

  trait DefaultOpengiswcs_AxisSubsetFormat extends scalaxb.ElemNameParser[opengis.wcs.AxisSubset] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.AxisSubset] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Identifier")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Key")) ^^
      { case p1 ~ p2 =>
      opengis.wcs.AxisSubset(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        p2 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wcs.AxisSubset, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.Identifier, Some("http://www.opengis.net/wcs/1.1.1"), Some("Identifier"), __scope, false),
        __obj.Key flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("Key"), __scope, false) })

  }

  trait DefaultOpengiswcs_GridCrsTypeFormat extends scalaxb.ElemNameParser[opengis.wcs.GridCrsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    override def typeName: Option[String] = Some("GridCrsType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.GridCrsType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "srsName")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "GridBaseCRS")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "GridType")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "GridOrigin")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "GridOffsets")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "GridCS")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.wcs.GridCrsType(p1.headOption map { scalaxb.fromXML[opengis.gml.CodeTypable](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[java.net.URI](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[Seq[Double]](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[Seq[Double]](p5, scalaxb.ElemName(node) :: stack),
        p6.headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wcs.GridCrsType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wcs.GridCrsType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.srsName map { scalaxb.toXML[opengis.gml.CodeTypable](_, Some("http://www.opengis.net/gml"), Some("srsName"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[java.net.URI](__obj.GridBaseCRS, Some("http://www.opengis.net/wcs/1.1.1"), Some("GridBaseCRS"), __scope, false),
        __obj.GridType map { scalaxb.toXML[java.net.URI](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("GridType"), __scope, false) } getOrElse {Nil},
        __obj.GridOrigin map { scalaxb.toXML[Seq[Double]](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("GridOrigin"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[Seq[Double]](__obj.GridOffsets, Some("http://www.opengis.net/wcs/1.1.1"), Some("GridOffsets"), __scope, false),
        __obj.GridCS map { scalaxb.toXML[java.net.URI](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("GridCS"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswcs_InterpolationMethodsFormat extends scalaxb.ElemNameParser[opengis.wcs.InterpolationMethods] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wcs.InterpolationMethods] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "InterpolationMethod")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wcs/1.1.1"), "Default")) ^^
      { case p1 ~ p2 =>
      opengis.wcs.InterpolationMethods(p1 map { scalaxb.fromXML[opengis.wcs.InterpolationMethodType](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wcs.InterpolationMethods, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.InterpolationMethod flatMap { scalaxb.toXML[opengis.wcs.InterpolationMethodType](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("InterpolationMethod"), __scope, false) },
        __obj.Default map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wcs/1.1.1"), Some("Default"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswcs_InterpolationMethodTypeFormat extends scalaxb.XMLFormat[opengis.wcs.InterpolationMethodType] with scalaxb.CanWriteChildNodes[opengis.wcs.InterpolationMethodType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wcs.InterpolationMethodType] = seq match {
      case node: scala.xml.Node => Right(opengis.wcs.InterpolationMethodType(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@codeSpace").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@codeSpace" -> _ },
        (node \ "@nullResistance").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@nullResistance" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.wcs.InterpolationMethodType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@codeSpace", _) => __obj.codeSpace foreach { x => attr = scala.xml.Attribute(null, "codeSpace", x.toString, attr) }
        case ("@nullResistance", _) => __obj.nullResistance foreach { x => attr = scala.xml.Attribute(null, "nullResistance", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wcs.InterpolationMethodType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengiswcs_InterpolationMethodBaseTypableFormat extends scalaxb.XMLFormat[opengis.wcs.InterpolationMethodBaseTypable] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wcs.InterpolationMethodBaseTypable] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/wcs/1.1.1"), Some("InterpolationMethodType")) => Right(scalaxb.fromXML[opengis.wcs.InterpolationMethodType](node, stack))
          case _ => Right(scalaxb.fromXML[opengis.wcs.InterpolationMethodBaseType](node, stack))
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.wcs.InterpolationMethodBaseTypable, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.wcs.InterpolationMethodType => scalaxb.toXML[opengis.wcs.InterpolationMethodType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wcs.InterpolationMethodBaseType => scalaxb.toXML[opengis.wcs.InterpolationMethodBaseType](x, __namespace, __elementLabel, __scope, __typeAttribute)
    }
  }

  trait DefaultOpengiswcs_InterpolationMethodBaseTypeFormat extends scalaxb.XMLFormat[opengis.wcs.InterpolationMethodBaseType] with scalaxb.CanWriteChildNodes[opengis.wcs.InterpolationMethodBaseType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wcs/1.1.1")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wcs.InterpolationMethodBaseType] = seq match {
      case node: scala.xml.Node => Right(opengis.wcs.InterpolationMethodBaseType(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@codeSpace").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@codeSpace" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.wcs.InterpolationMethodBaseType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@codeSpace", _) => __obj.codeSpace foreach { x => attr = scala.xml.Attribute(null, "codeSpace", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wcs.InterpolationMethodBaseType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengiswfs_BaseRequestTypeFormat extends scalaxb.XMLFormat[opengis.wfs.BaseRequestType] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wfs.BaseRequestType] = seq match {
      case node: scala.xml.Node =>     
        scalaxb.Helper.instanceType(node) match {
          case (Some("http://www.opengis.net/wfs"), Some("GetFeatureWithLockType")) => Right(scalaxb.fromXML[opengis.wfs.GetFeatureWithLockType](node, stack))
          case (Some("http://www.opengis.net/wfs"), Some("GetFeatureType")) => Right(scalaxb.fromXML[opengis.wfs.GetFeatureType](node, stack))
          case (Some("http://www.opengis.net/wfs"), Some("DescribeFeatureTypeType")) => Right(scalaxb.fromXML[opengis.wfs.DescribeFeatureTypeType](node, stack))
          case (Some("http://www.opengis.net/wfs"), Some("GetGmlObjectType")) => Right(scalaxb.fromXML[opengis.wfs.GetGmlObjectType](node, stack))
          case (Some("http://www.opengis.net/wfs"), Some("LockFeatureType")) => Right(scalaxb.fromXML[opengis.wfs.LockFeatureType](node, stack))
          case (Some("http://www.opengis.net/wfs"), Some("TransactionType")) => Right(scalaxb.fromXML[opengis.wfs.TransactionType](node, stack))
          case x => Left("Unknown type: " + x)
        }
      case _ => Left("reads failed: seq must be scala.xml.Node")  
    }
    
    def writes(__obj: opengis.wfs.BaseRequestType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq = __obj match {
      case x: opengis.wfs.GetFeatureWithLockType => scalaxb.toXML[opengis.wfs.GetFeatureWithLockType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wfs.GetFeatureType => scalaxb.toXML[opengis.wfs.GetFeatureType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wfs.DescribeFeatureTypeType => scalaxb.toXML[opengis.wfs.DescribeFeatureTypeType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wfs.GetGmlObjectType => scalaxb.toXML[opengis.wfs.GetGmlObjectType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wfs.LockFeatureType => scalaxb.toXML[opengis.wfs.LockFeatureType](x, __namespace, __elementLabel, __scope, true)
      case x: opengis.wfs.TransactionType => scalaxb.toXML[opengis.wfs.TransactionType](x, __namespace, __elementLabel, __scope, true)
      case _ => sys.error("Unknown type: " + __obj)
    }
  }

  trait DefaultOpengiswfs_XlinkPropertyNameFormat extends scalaxb.XMLFormat[opengis.wfs.XlinkPropertyName] with scalaxb.CanWriteChildNodes[opengis.wfs.XlinkPropertyName] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wfs.XlinkPropertyName] = seq match {
      case node: scala.xml.Node => Right(opengis.wfs.XlinkPropertyName(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@traverseXlinkDepth").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@traverseXlinkDepth" -> _ },
        (node \ "@traverseXlinkExpiry").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@traverseXlinkExpiry" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.wfs.XlinkPropertyName, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@traverseXlinkDepth", _) => attr = scala.xml.Attribute(null, "traverseXlinkDepth", __obj.traverseXlinkDepth.toString, attr)
        case ("@traverseXlinkExpiry", _) => __obj.traverseXlinkExpiry foreach { x => attr = scala.xml.Attribute(null, "traverseXlinkExpiry", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.XlinkPropertyName, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  def buildOpengiswfs_StarStringTypeFormat = new DefaultOpengiswfs_StarStringTypeFormat {}
  trait DefaultOpengiswfs_StarStringTypeFormat extends scalaxb.XMLFormat[opengis.wfs.StarStringType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.wfs.StarStringType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.wfs.StarStringType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("*")) => opengis.wfs.U42

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wfs.StarStringType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.wfs.StarStringType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengiswfs_GetCapabilitiesTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.GetCapabilitiesType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("GetCapabilitiesType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.GetCapabilitiesType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "AcceptVersions")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Sections")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "AcceptFormats")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.wfs.GetCapabilitiesType(p1.headOption map { scalaxb.fromXML[opengis.sld.ows.AcceptVersionsType](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.sld.ows.SectionsType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.sld.ows.AcceptFormatsType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@updateSequence").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@updateSequence" -> _ },
        (node \ "@service").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("WFS"), scalaxb.ElemName(node) :: stack))) map { "@service" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wfs.GetCapabilitiesType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@updateSequence", _) => __obj.updateSequence foreach { x => attr = scala.xml.Attribute(null, "updateSequence", x.toString, attr) }
        case ("@service", _) => if (__obj.service.toString != "WFS") attr = scala.xml.Attribute(null, "service", __obj.service.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.GetCapabilitiesType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.AcceptVersions map { scalaxb.toXML[opengis.sld.ows.AcceptVersionsType](_, Some("http://www.opengis.net/ows"), Some("AcceptVersions"), __scope, false) } getOrElse {Nil},
        __obj.Sections map { scalaxb.toXML[opengis.sld.ows.SectionsType](_, Some("http://www.opengis.net/ows"), Some("Sections"), __scope, false) } getOrElse {Nil},
        __obj.AcceptFormats map { scalaxb.toXML[opengis.sld.ows.AcceptFormatsType](_, Some("http://www.opengis.net/ows"), Some("AcceptFormats"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswfs_WFS_CapabilitiesTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.WFS_CapabilitiesType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("WFS_CapabilitiesType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.WFS_CapabilitiesType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "ServiceIdentification")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "ServiceProvider")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "OperationsMetadata")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "FeatureTypeList")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "ServesGMLObjectTypeList")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "SupportsGMLObjectTypeList")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Filter_Capabilities")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 =>
      opengis.wfs.WFS_CapabilitiesType(p1.headOption map { scalaxb.fromXML[opengis.sld.ows.ServiceIdentification](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.sld.ows.ServiceProvider](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.sld.ows.OperationsMetadata](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.wfs.FeatureTypeListType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[opengis.wfs.GMLObjectTypeListType](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[opengis.wfs.GMLObjectTypeListType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.ogc.Filter_Capabilities](p7, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@version" -> _ },
        (node \ "@updateSequence").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@updateSequence" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wfs.WFS_CapabilitiesType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@version", _) => attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case ("@updateSequence", _) => __obj.updateSequence foreach { x => attr = scala.xml.Attribute(null, "updateSequence", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.WFS_CapabilitiesType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.ServiceIdentification map { scalaxb.toXML[opengis.sld.ows.ServiceIdentification](_, Some("http://www.opengis.net/ows"), Some("ServiceIdentification"), __scope, false) } getOrElse {Nil},
        __obj.ServiceProvider map { scalaxb.toXML[opengis.sld.ows.ServiceProvider](_, Some("http://www.opengis.net/ows"), Some("ServiceProvider"), __scope, false) } getOrElse {Nil},
        __obj.OperationsMetadata map { scalaxb.toXML[opengis.sld.ows.OperationsMetadata](_, Some("http://www.opengis.net/ows"), Some("OperationsMetadata"), __scope, false) } getOrElse {Nil},
        __obj.FeatureTypeList map { scalaxb.toXML[opengis.wfs.FeatureTypeListType](_, Some("http://www.opengis.net/wfs"), Some("FeatureTypeList"), __scope, false) } getOrElse {Nil},
        __obj.ServesGMLObjectTypeList map { scalaxb.toXML[opengis.wfs.GMLObjectTypeListType](_, Some("http://www.opengis.net/wfs"), Some("ServesGMLObjectTypeList"), __scope, false) } getOrElse {Nil},
        __obj.SupportsGMLObjectTypeList map { scalaxb.toXML[opengis.wfs.GMLObjectTypeListType](_, Some("http://www.opengis.net/wfs"), Some("SupportsGMLObjectTypeList"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.ogc.Filter_Capabilities](__obj.Filter_Capabilities, Some("http://www.opengis.net/ogc"), Some("Filter_Capabilities"), __scope, false))

  }

  trait DefaultOpengiswfs_FeatureTypeListTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.FeatureTypeListType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("FeatureTypeListType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.FeatureTypeListType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Operations")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "FeatureType")) ^^
      { case p1 ~ p2 =>
      opengis.wfs.FeatureTypeListType(p1.headOption map { scalaxb.fromXML[opengis.wfs.OperationsType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.wfs.FeatureTypeType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wfs.FeatureTypeListType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Operations map { scalaxb.toXML[opengis.wfs.OperationsType](_, Some("http://www.opengis.net/wfs"), Some("Operations"), __scope, false) } getOrElse {Nil},
        __obj.FeatureType flatMap { scalaxb.toXML[opengis.wfs.FeatureTypeType](_, Some("http://www.opengis.net/wfs"), Some("FeatureType"), __scope, false) })

  }

  trait DefaultOpengiswfs_NoSRSFormat extends scalaxb.XMLFormat[opengis.wfs.NoSRS] with scalaxb.CanWriteChildNodes[opengis.wfs.NoSRS] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wfs.NoSRS] = seq match {
      case node: scala.xml.Node => Right(opengis.wfs.NoSRS())
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def writesChildNodes(__obj: opengis.wfs.NoSRS, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengiswfs_FeatureTypeTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.FeatureTypeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("FeatureTypeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.FeatureTypeType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Name")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Title")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Keywords")) ~ 
      ((((scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "DefaultSRS")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "OtherSRS"))) ^^ 
        { case p1 ~ p2 => scalaxb.DataRecord(opengis.wfs.FeatureTypeTypeSequence1(scalaxb.fromXML[java.net.URI](p1, scalaxb.ElemName(node) :: stack),
        p2 map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) })) }) ||| 
      ((scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "NoSRS")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wfs.NoSRS](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Operations")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "OutputFormats")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "WGS84BoundingBox")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "MetadataURL")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 =>
      opengis.wfs.FeatureTypeType(scalaxb.fromXML[javax.xml.namespace.QName](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.sld.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        p5,
        p6.headOption map { scalaxb.fromXML[opengis.wfs.OperationsType](_, scalaxb.ElemName(node) :: stack) },
        p7.headOption map { scalaxb.fromXML[opengis.wfs.OutputFormatListType](_, scalaxb.ElemName(node) :: stack) },
        p8 map { scalaxb.fromXML[opengis.sld.ows.WGS84BoundingBoxType](_, scalaxb.ElemName(node) :: stack) },
        p9 map { scalaxb.fromXML[opengis.wfs.MetadataURLType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wfs.FeatureTypeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[javax.xml.namespace.QName](__obj.Name, Some("http://www.opengis.net/wfs"), Some("Name"), __scope, false),
        scalaxb.toXML[String](__obj.Title, Some("http://www.opengis.net/wfs"), Some("Title"), __scope, false),
        __obj.AbstractValue map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wfs"), Some("Abstract"), __scope, false) } getOrElse {Nil},
        __obj.Keywords flatMap { scalaxb.toXML[opengis.sld.ows.KeywordsType](_, Some("http://www.opengis.net/ows"), Some("Keywords"), __scope, false) },
        (Some(__obj.featuretypetypeoption) map {x => scalaxb.toXML[scalaxb.DataRecord[opengis.wfs.FeatureTypeTypeOption]](x, x.namespace, x.key, __scope, false)}).get,
        __obj.Operations map { scalaxb.toXML[opengis.wfs.OperationsType](_, Some("http://www.opengis.net/wfs"), Some("Operations"), __scope, false) } getOrElse {Nil},
        __obj.OutputFormats map { scalaxb.toXML[opengis.wfs.OutputFormatListType](_, Some("http://www.opengis.net/wfs"), Some("OutputFormats"), __scope, false) } getOrElse {Nil},
        __obj.WGS84BoundingBox flatMap { scalaxb.toXML[opengis.sld.ows.WGS84BoundingBoxType](_, Some("http://www.opengis.net/ows"), Some("WGS84BoundingBox"), __scope, false) },
        __obj.MetadataURL flatMap { scalaxb.toXML[opengis.wfs.MetadataURLType](_, Some("http://www.opengis.net/wfs"), Some("MetadataURL"), __scope, false) })

  }

  trait DefaultOpengiswfs_FeatureTypeTypeSequence1Format extends scalaxb.XMLFormat[opengis.wfs.FeatureTypeTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wfs.FeatureTypeTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.wfs.FeatureTypeTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      Seq.concat(scalaxb.toXML[java.net.URI](__obj.DefaultSRS, Some("http://www.opengis.net/wfs"), Some("DefaultSRS"), __scope, false),
        __obj.OtherSRS flatMap { scalaxb.toXML[java.net.URI](_, Some("http://www.opengis.net/wfs"), Some("OtherSRS"), __scope, false) })


  }

  trait DefaultOpengiswfs_OperationsTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.OperationsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("OperationsType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.OperationsType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Operation")) ^^
      { case p1 =>
      opengis.wfs.OperationsType(p1 map { scalaxb.fromXML[opengis.wfs.OperationType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wfs.OperationsType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Operation flatMap { scalaxb.toXML[opengis.wfs.OperationType](_, Some("http://www.opengis.net/wfs"), Some("Operation"), __scope, false) })

  }

  def buildOpengiswfs_OperationTypeFormat = new DefaultOpengiswfs_OperationTypeFormat {}
  trait DefaultOpengiswfs_OperationTypeFormat extends scalaxb.XMLFormat[opengis.wfs.OperationType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.wfs.OperationType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.wfs.OperationType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Insert")) => opengis.wfs.Insert
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Update")) => opengis.wfs.Update
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Delete")) => opengis.wfs.Delete
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Query")) => opengis.wfs.Query
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("Lock")) => opengis.wfs.Lock
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("GetGmlObject")) => opengis.wfs.GetGmlObject

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wfs.OperationType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.wfs.OperationType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengiswfs_OutputFormatListTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.OutputFormatListType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("OutputFormatListType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.OutputFormatListType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Format"))) ^^ 
        { case p1 => opengis.wfs.OutputFormatListTypeSequence1(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.wfs.OutputFormatListType(p1) })
    
    def writesChildNodes(__obj: opengis.wfs.OutputFormatListType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.outputformatlisttypesequence1 flatMap { scalaxb.toXML[opengis.wfs.OutputFormatListTypeSequence1](_, None, Some("outputformatlisttypesequence1"), __scope, false) })

  }

  trait DefaultOpengiswfs_OutputFormatListTypeSequence1Format extends scalaxb.XMLFormat[opengis.wfs.OutputFormatListTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wfs.OutputFormatListTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.wfs.OutputFormatListTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[String](__obj.Format, Some("http://www.opengis.net/wfs"), Some("Format"), __scope, false)


  }

  def buildOpengiswfs_TypeFormat = new DefaultOpengiswfs_TypeFormat {}
  trait DefaultOpengiswfs_TypeFormat extends scalaxb.XMLFormat[opengis.wfs.Type] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.wfs.Type =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.wfs.Type] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("TC211")) => opengis.wfs.TC211
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("FGDC")) => opengis.wfs.FGDC
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("19115")) => opengis.wfs.Number19115
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("19139")) => opengis.wfs.Number19139

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wfs.Type] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.wfs.Type, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengiswfs_FormatFormat = new DefaultOpengiswfs_FormatFormat {}
  trait DefaultOpengiswfs_FormatFormat extends scalaxb.XMLFormat[opengis.wfs.Format] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.wfs.Format =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.wfs.Format] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("text/xml")) => opengis.wfs.Textu47xml
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("text/html")) => opengis.wfs.Textu47html
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("text/sgml")) => opengis.wfs.Textu47sgml
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("text/plain")) => opengis.wfs.Textu47plain

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wfs.Format] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.wfs.Format, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengiswfs_MetadataURLTypeFormat extends scalaxb.XMLFormat[opengis.wfs.MetadataURLType] with scalaxb.CanWriteChildNodes[opengis.wfs.MetadataURLType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wfs.MetadataURLType] = seq match {
      case node: scala.xml.Node => Right(opengis.wfs.MetadataURLType(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@type").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.wfs.Type](x, scalaxb.ElemName(node) :: stack)) } map { "@type" -> _ },
        (node \ "@format").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.wfs.Format](x, scalaxb.ElemName(node) :: stack)) } map { "@format" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.wfs.MetadataURLType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@type", _) => attr = scala.xml.Attribute(null, "type", __obj.typeValue.toString, attr)
        case ("@format", _) => attr = scala.xml.Attribute(null, "format", __obj.format.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.MetadataURLType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengiswfs_GMLObjectTypeListTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.GMLObjectTypeListType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("GMLObjectTypeListType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.GMLObjectTypeListType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "GMLObjectType")) ^^
      { case p1 =>
      opengis.wfs.GMLObjectTypeListType(p1 map { scalaxb.fromXML[opengis.wfs.GMLObjectTypeType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wfs.GMLObjectTypeListType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.GMLObjectType flatMap { scalaxb.toXML[opengis.wfs.GMLObjectTypeType](_, Some("http://www.opengis.net/wfs"), Some("GMLObjectType"), __scope, false) })

  }

  trait DefaultOpengiswfs_GMLObjectTypeTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.GMLObjectTypeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("GMLObjectTypeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.GMLObjectTypeType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Name")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Title")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows"), "Keywords")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "OutputFormats")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.wfs.GMLObjectTypeType(scalaxb.fromXML[javax.xml.namespace.QName](p1, scalaxb.ElemName(node) :: stack),
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.sld.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[opengis.wfs.OutputFormatListType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wfs.GMLObjectTypeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[javax.xml.namespace.QName](__obj.Name, Some("http://www.opengis.net/wfs"), Some("Name"), __scope, false),
        __obj.Title map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wfs"), Some("Title"), __scope, false) } getOrElse {Nil},
        __obj.AbstractValue map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wfs"), Some("Abstract"), __scope, false) } getOrElse {Nil},
        __obj.Keywords flatMap { scalaxb.toXML[opengis.sld.ows.KeywordsType](_, Some("http://www.opengis.net/ows"), Some("Keywords"), __scope, false) },
        __obj.OutputFormats map { scalaxb.toXML[opengis.wfs.OutputFormatListType](_, Some("http://www.opengis.net/wfs"), Some("OutputFormats"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswfs_DescribeFeatureTypeTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.DescribeFeatureTypeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("DescribeFeatureTypeType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.DescribeFeatureTypeType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "TypeName")) ^^
      { case p1 =>
      opengis.wfs.DescribeFeatureTypeType(p1 map { scalaxb.fromXML[javax.xml.namespace.QName](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@service").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("WFS"), scalaxb.ElemName(node) :: stack))) map { "@service" -> _ },
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("1.1.3"), scalaxb.ElemName(node) :: stack))) map { "@version" -> _ },
        (node \ "@handle").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@handle" -> _ },
        (node \ "@outputFormat").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("application/gml+xml; version=3.1"), scalaxb.ElemName(node) :: stack))) map { "@outputFormat" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wfs.DescribeFeatureTypeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@service", _) => if (__obj.service.toString != "WFS") attr = scala.xml.Attribute(null, "service", __obj.service.toString, attr)
        case ("@version", _) => if (__obj.version.toString != "1.1.3") attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case ("@handle", _) => __obj.handle foreach { x => attr = scala.xml.Attribute(null, "handle", x.toString, attr) }
        case ("@outputFormat", _) => if (__obj.outputFormat.toString != "application/gml+xml; version=3.1") attr = scala.xml.Attribute(null, "outputFormat", __obj.outputFormat.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.DescribeFeatureTypeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.TypeName flatMap { scalaxb.toXML[javax.xml.namespace.QName](_, Some("http://www.opengis.net/wfs"), Some("TypeName"), __scope, false) })

  }

  trait DefaultOpengiswfs_GetFeatureTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.GetFeatureType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("GetFeatureType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.GetFeatureType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Query")) ^^
      { case p1 =>
      opengis.wfs.GetFeatureType(p1 map { scalaxb.fromXML[opengis.wfs.QueryType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@service").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("WFS"), scalaxb.ElemName(node) :: stack))) map { "@service" -> _ },
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("1.1.3"), scalaxb.ElemName(node) :: stack))) map { "@version" -> _ },
        (node \ "@handle").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@handle" -> _ },
        (node \ "@resultType").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.wfs.ResultTypeType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.wfs.ResultTypeType](scala.xml.Text("results"), scalaxb.ElemName(node) :: stack))) map { "@resultType" -> _ },
        (node \ "@outputFormat").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("application/gml+xml; version=3.1"), scalaxb.ElemName(node) :: stack))) map { "@outputFormat" -> _ },
        (node \ "@maxFeatures").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@maxFeatures" -> _ },
        (node \ "@traverseXlinkDepth").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@traverseXlinkDepth" -> _ },
        (node \ "@traverseXlinkExpiry").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@traverseXlinkExpiry" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wfs.GetFeatureType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@service", _) => if (__obj.service.toString != "WFS") attr = scala.xml.Attribute(null, "service", __obj.service.toString, attr)
        case ("@version", _) => if (__obj.version.toString != "1.1.3") attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case ("@handle", _) => __obj.handle foreach { x => attr = scala.xml.Attribute(null, "handle", x.toString, attr) }
        case ("@resultType", _) => if (__obj.resultType.toString != "results") attr = scala.xml.Attribute(null, "resultType", __obj.resultType.toString, attr)
        case ("@outputFormat", _) => if (__obj.outputFormat.toString != "application/gml+xml; version=3.1") attr = scala.xml.Attribute(null, "outputFormat", __obj.outputFormat.toString, attr)
        case ("@maxFeatures", _) => __obj.maxFeatures foreach { x => attr = scala.xml.Attribute(null, "maxFeatures", x.toString, attr) }
        case ("@traverseXlinkDepth", _) => __obj.traverseXlinkDepth foreach { x => attr = scala.xml.Attribute(null, "traverseXlinkDepth", x.toString, attr) }
        case ("@traverseXlinkExpiry", _) => __obj.traverseXlinkExpiry foreach { x => attr = scala.xml.Attribute(null, "traverseXlinkExpiry", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.GetFeatureType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Query flatMap { scalaxb.toXML[opengis.wfs.QueryType](_, Some("http://www.opengis.net/wfs"), Some("Query"), __scope, false) })

  }

  def buildOpengiswfs_ResultTypeTypeFormat = new DefaultOpengiswfs_ResultTypeTypeFormat {}
  trait DefaultOpengiswfs_ResultTypeTypeFormat extends scalaxb.XMLFormat[opengis.wfs.ResultTypeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.wfs.ResultTypeType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.wfs.ResultTypeType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("results")) => opengis.wfs.Results
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("hits")) => opengis.wfs.Hits

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wfs.ResultTypeType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.wfs.ResultTypeType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengiswfs_QueryTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.QueryType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("QueryType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.QueryType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "PropertyName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "XlinkPropertyName")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wfs.XlinkPropertyName](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Function")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ogc.FunctionType](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Filter")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "SortBy")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.wfs.QueryType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.ogc.FilterType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.ogc.SortByType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@handle").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@handle" -> _ },
        (node \ "@typeName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@typeName" -> _ },
        (node \ "@featureVersion").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@featureVersion" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wfs.QueryType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@handle", _) => __obj.handle foreach { x => attr = scala.xml.Attribute(null, "handle", x.toString, attr) }
        case ("@typeName", _) => attr = scala.xml.Attribute(null, "typeName", __obj.typeName.toString, attr)
        case ("@featureVersion", _) => __obj.featureVersion foreach { x => attr = scala.xml.Attribute(null, "featureVersion", x.toString, attr) }
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.QueryType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.querytypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) },
        __obj.Filter map { scalaxb.toXML[opengis.ogc.FilterType](_, Some("http://www.opengis.net/ogc"), Some("Filter"), __scope, false) } getOrElse {Nil},
        __obj.SortBy map { scalaxb.toXML[opengis.ogc.SortByType](_, Some("http://www.opengis.net/ogc"), Some("SortBy"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswfs_FeatureCollectionTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.FeatureCollectionType] with Opengisgml_StandardObjectPropertiesGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("FeatureCollectionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.FeatureCollectionType] =
      phrase((parseStandardObjectPropertiesGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "boundedBy")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "priorityLocation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.PriorityLocationPropertyType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "location")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.LocationPropertyTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "featureMember")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/gml"), "featureMembers")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.wfs.FeatureCollectionType(p1,
        p2.headOption map { scalaxb.fromXML[opengis.gml.BoundingShapeType](_, scalaxb.ElemName(node) :: stack) },
        p3,
        p4 map { scalaxb.fromXML[opengis.gml.FeaturePropertyType](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[opengis.gml.FeatureArrayPropertyType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@{http://www.opengis.net/gml}id").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.opengis.net/gml}id" -> _ },
        (node \ "@lockId").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@lockId" -> _ },
        (node \ "@timeStamp").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[javax.xml.datatype.XMLGregorianCalendar](x, scalaxb.ElemName(node) :: stack)) } map { "@timeStamp" -> _ },
        (node \ "@numberOfFeatures").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@numberOfFeatures" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wfs.FeatureCollectionType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.opengis.net/gml}id", _) => __obj.gmlid foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.opengis.net/gml"), "id", x.toString, attr) }
        case ("@lockId", _) => __obj.lockId foreach { x => attr = scala.xml.Attribute(null, "lockId", x.toString, attr) }
        case ("@timeStamp", _) => __obj.timeStamp foreach { x => attr = scala.xml.Attribute(null, "timeStamp", x.toString, attr) }
        case ("@numberOfFeatures", _) => __obj.numberOfFeatures foreach { x => attr = scala.xml.Attribute(null, "numberOfFeatures", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.FeatureCollectionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.gml.StandardObjectPropertiesSequence](__obj.standardObjectPropertiesSequence1, None, Some("standardObjectPropertiesSequence1"), __scope, false),
        __obj.boundedBy map { scalaxb.toXML[opengis.gml.BoundingShapeType](_, Some("http://www.opengis.net/gml"), Some("boundedBy"), __scope, false) } getOrElse {Nil},
        __obj.location map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        __obj.featureMember flatMap { scalaxb.toXML[opengis.gml.FeaturePropertyType](_, Some("http://www.opengis.net/gml"), Some("featureMember"), __scope, false) },
        __obj.featureMembers map { scalaxb.toXML[opengis.gml.FeatureArrayPropertyType](_, Some("http://www.opengis.net/gml"), Some("featureMembers"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswfs_GetGmlObjectTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.GetGmlObjectType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("GetGmlObjectType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.GetGmlObjectType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "GmlObjectId")) ^^
      { case p1 =>
      opengis.wfs.GetGmlObjectType(scalaxb.fromXML[opengis.ogc.GmlObjectIdType](p1, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@service").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("WFS"), scalaxb.ElemName(node) :: stack))) map { "@service" -> _ },
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("1.1.3"), scalaxb.ElemName(node) :: stack))) map { "@version" -> _ },
        (node \ "@handle").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@handle" -> _ },
        (node \ "@outputFormat").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("application/gml+xml; version=3.1"), scalaxb.ElemName(node) :: stack))) map { "@outputFormat" -> _ },
        (node \ "@traverseXlinkDepth").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@traverseXlinkDepth" -> _ },
        (node \ "@traverseXlinkExpiry").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@traverseXlinkExpiry" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wfs.GetGmlObjectType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@service", _) => if (__obj.service.toString != "WFS") attr = scala.xml.Attribute(null, "service", __obj.service.toString, attr)
        case ("@version", _) => if (__obj.version.toString != "1.1.3") attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case ("@handle", _) => __obj.handle foreach { x => attr = scala.xml.Attribute(null, "handle", x.toString, attr) }
        case ("@outputFormat", _) => if (__obj.outputFormat.toString != "application/gml+xml; version=3.1") attr = scala.xml.Attribute(null, "outputFormat", __obj.outputFormat.toString, attr)
        case ("@traverseXlinkDepth", _) => attr = scala.xml.Attribute(null, "traverseXlinkDepth", __obj.traverseXlinkDepth.toString, attr)
        case ("@traverseXlinkExpiry", _) => __obj.traverseXlinkExpiry foreach { x => attr = scala.xml.Attribute(null, "traverseXlinkExpiry", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.GetGmlObjectType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.ogc.GmlObjectIdType](__obj.GmlObjectId, Some("http://www.opengis.net/ogc"), Some("GmlObjectId"), __scope, false))

  }

  trait DefaultOpengiswfs_GetFeatureWithLockTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.GetFeatureWithLockType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("GetFeatureWithLockType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.GetFeatureWithLockType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Query")) ^^
      { case p1 =>
      opengis.wfs.GetFeatureWithLockType(p1 map { scalaxb.fromXML[opengis.wfs.QueryType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@service").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("WFS"), scalaxb.ElemName(node) :: stack))) map { "@service" -> _ },
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("1.1.3"), scalaxb.ElemName(node) :: stack))) map { "@version" -> _ },
        (node \ "@handle").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@handle" -> _ },
        (node \ "@expiry").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("5"), scalaxb.ElemName(node) :: stack))) map { "@expiry" -> _ },
        (node \ "@resultType").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.wfs.ResultTypeType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.wfs.ResultTypeType](scala.xml.Text("results"), scalaxb.ElemName(node) :: stack))) map { "@resultType" -> _ },
        (node \ "@outputFormat").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("application/gml+xml; version=3.1"), scalaxb.ElemName(node) :: stack))) map { "@outputFormat" -> _ },
        (node \ "@maxFeatures").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@maxFeatures" -> _ },
        (node \ "@traverseXlinkDepth").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@traverseXlinkDepth" -> _ },
        (node \ "@traverseXlinkExpiry").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@traverseXlinkExpiry" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wfs.GetFeatureWithLockType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@service", _) => if (__obj.service.toString != "WFS") attr = scala.xml.Attribute(null, "service", __obj.service.toString, attr)
        case ("@version", _) => if (__obj.version.toString != "1.1.3") attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case ("@handle", _) => __obj.handle foreach { x => attr = scala.xml.Attribute(null, "handle", x.toString, attr) }
        case ("@expiry", _) => if (__obj.expiry.toString != "5") attr = scala.xml.Attribute(null, "expiry", __obj.expiry.toString, attr)
        case ("@resultType", _) => if (__obj.resultType.toString != "results") attr = scala.xml.Attribute(null, "resultType", __obj.resultType.toString, attr)
        case ("@outputFormat", _) => if (__obj.outputFormat.toString != "application/gml+xml; version=3.1") attr = scala.xml.Attribute(null, "outputFormat", __obj.outputFormat.toString, attr)
        case ("@maxFeatures", _) => __obj.maxFeatures foreach { x => attr = scala.xml.Attribute(null, "maxFeatures", x.toString, attr) }
        case ("@traverseXlinkDepth", _) => __obj.traverseXlinkDepth foreach { x => attr = scala.xml.Attribute(null, "traverseXlinkDepth", x.toString, attr) }
        case ("@traverseXlinkExpiry", _) => __obj.traverseXlinkExpiry foreach { x => attr = scala.xml.Attribute(null, "traverseXlinkExpiry", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.GetFeatureWithLockType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Query flatMap { scalaxb.toXML[opengis.wfs.QueryType](_, Some("http://www.opengis.net/wfs"), Some("Query"), __scope, false) })

  }

  trait DefaultOpengiswfs_LockFeatureTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.LockFeatureType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("LockFeatureType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.LockFeatureType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Lock")) ^^
      { case p1 =>
      opengis.wfs.LockFeatureType(p1 map { scalaxb.fromXML[opengis.wfs.LockType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@service").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("WFS"), scalaxb.ElemName(node) :: stack))) map { "@service" -> _ },
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("1.1.3"), scalaxb.ElemName(node) :: stack))) map { "@version" -> _ },
        (node \ "@handle").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@handle" -> _ },
        (node \ "@expiry").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[BigInt](scala.xml.Text("5"), scalaxb.ElemName(node) :: stack))) map { "@expiry" -> _ },
        (node \ "@lockAction").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.wfs.AllSomeType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.wfs.AllSomeType](scala.xml.Text("ALL"), scalaxb.ElemName(node) :: stack))) map { "@lockAction" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wfs.LockFeatureType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@service", _) => if (__obj.service.toString != "WFS") attr = scala.xml.Attribute(null, "service", __obj.service.toString, attr)
        case ("@version", _) => if (__obj.version.toString != "1.1.3") attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case ("@handle", _) => __obj.handle foreach { x => attr = scala.xml.Attribute(null, "handle", x.toString, attr) }
        case ("@expiry", _) => if (__obj.expiry.toString != "5") attr = scala.xml.Attribute(null, "expiry", __obj.expiry.toString, attr)
        case ("@lockAction", _) => if (__obj.lockAction.toString != "ALL") attr = scala.xml.Attribute(null, "lockAction", __obj.lockAction.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.LockFeatureType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Lock flatMap { scalaxb.toXML[opengis.wfs.LockType](_, Some("http://www.opengis.net/wfs"), Some("Lock"), __scope, false) })

  }

  def buildOpengiswfs_AllSomeTypeFormat = new DefaultOpengiswfs_AllSomeTypeFormat {}
  trait DefaultOpengiswfs_AllSomeTypeFormat extends scalaxb.XMLFormat[opengis.wfs.AllSomeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.wfs.AllSomeType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.wfs.AllSomeType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("ALL")) => opengis.wfs.ALL
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("SOME")) => opengis.wfs.SOME

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wfs.AllSomeType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.wfs.AllSomeType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengiswfs_LockTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.LockType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("LockType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.LockType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Filter")) ^^
      { case p1 =>
      opengis.wfs.LockType(p1.headOption map { scalaxb.fromXML[opengis.ogc.FilterType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@handle").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@handle" -> _ },
        (node \ "@typeName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[javax.xml.namespace.QName](x, scalaxb.ElemName(node) :: stack)(scalaxb.XMLStandardTypes.qnameXMLFormat(node.scope))) } map { "@typeName" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wfs.LockType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@handle", _) => __obj.handle foreach { x => attr = scala.xml.Attribute(null, "handle", x.toString, attr) }
        case ("@typeName", _) => attr = scala.xml.Attribute(null, "typeName", scalaxb.Helper.toString(__obj.typeName, __scope), attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.LockType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Filter map { scalaxb.toXML[opengis.ogc.FilterType](_, Some("http://www.opengis.net/ogc"), Some("Filter"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswfs_LockFeatureResponseTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.LockFeatureResponseType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("LockFeatureResponseType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.LockFeatureResponseType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "LockId")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "FeaturesLocked")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "FeaturesNotLocked")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.wfs.LockFeatureResponseType(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        p2.headOption map { scalaxb.fromXML[opengis.wfs.FeaturesLockedType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.wfs.FeaturesNotLockedType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wfs.LockFeatureResponseType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.LockId, Some("http://www.opengis.net/wfs"), Some("LockId"), __scope, false),
        __obj.FeaturesLocked map { scalaxb.toXML[opengis.wfs.FeaturesLockedType](_, Some("http://www.opengis.net/wfs"), Some("FeaturesLocked"), __scope, false) } getOrElse {Nil},
        __obj.FeaturesNotLocked map { scalaxb.toXML[opengis.wfs.FeaturesNotLockedType](_, Some("http://www.opengis.net/wfs"), Some("FeaturesNotLocked"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswfs_FeaturesLockedTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.FeaturesLockedType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("FeaturesLockedType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.FeaturesLockedType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "FeatureId"))) ^^ 
        { case p1 => opengis.wfs.FeaturesLockedTypeSequence1(scalaxb.fromXML[opengis.ogc.FeatureIdType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.wfs.FeaturesLockedType(p1) })
    
    def writesChildNodes(__obj: opengis.wfs.FeaturesLockedType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.featureslockedtypesequence1 flatMap { scalaxb.toXML[opengis.wfs.FeaturesLockedTypeSequence1](_, None, Some("featureslockedtypesequence1"), __scope, false) })

  }

  trait DefaultOpengiswfs_FeaturesLockedTypeSequence1Format extends scalaxb.XMLFormat[opengis.wfs.FeaturesLockedTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wfs.FeaturesLockedTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.wfs.FeaturesLockedTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.ogc.FeatureIdType](__obj.FeatureId, Some("http://www.opengis.net/ogc"), Some("FeatureId"), __scope, false)


  }

  trait DefaultOpengiswfs_FeaturesNotLockedTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.FeaturesNotLockedType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("FeaturesNotLockedType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.FeaturesNotLockedType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "FeatureId"))) ^^ 
        { case p1 => opengis.wfs.FeaturesNotLockedTypeSequence1(scalaxb.fromXML[opengis.ogc.FeatureIdType](p1, scalaxb.ElemName(node) :: stack)) }) ^^
      { case p1 =>
      opengis.wfs.FeaturesNotLockedType(p1) })
    
    def writesChildNodes(__obj: opengis.wfs.FeaturesNotLockedType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.featuresnotlockedtypesequence1 flatMap { scalaxb.toXML[opengis.wfs.FeaturesNotLockedTypeSequence1](_, None, Some("featuresnotlockedtypesequence1"), __scope, false) })

  }

  trait DefaultOpengiswfs_FeaturesNotLockedTypeSequence1Format extends scalaxb.XMLFormat[opengis.wfs.FeaturesNotLockedTypeSequence1] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wfs.FeaturesNotLockedTypeSequence1] = Left("don't call me.")
    
    def writes(__obj: opengis.wfs.FeaturesNotLockedTypeSequence1, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scalaxb.toXML[opengis.ogc.FeatureIdType](__obj.FeatureId, Some("http://www.opengis.net/ogc"), Some("FeatureId"), __scope, false)


  }

  trait DefaultOpengiswfs_TransactionTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.TransactionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("TransactionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.TransactionType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "LockId")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Insert")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wfs.InsertElementType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Update")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wfs.UpdateElementType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Delete")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wfs.DeleteElementType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Native")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wfs.NativeType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 =>
      opengis.wfs.TransactionType(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2,
        scala.collection.immutable.ListMap(List(
        (node \ "@service").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("WFS"), scalaxb.ElemName(node) :: stack))) map { "@service" -> _ },
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("1.1.3"), scalaxb.ElemName(node) :: stack))) map { "@version" -> _ },
        (node \ "@handle").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@handle" -> _ },
        (node \ "@releaseAction").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.wfs.AllSomeType](x, scalaxb.ElemName(node) :: stack)) } map { "@releaseAction" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wfs.TransactionType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@service", _) => if (__obj.service.toString != "WFS") attr = scala.xml.Attribute(null, "service", __obj.service.toString, attr)
        case ("@version", _) => if (__obj.version.toString != "1.1.3") attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case ("@handle", _) => __obj.handle foreach { x => attr = scala.xml.Attribute(null, "handle", x.toString, attr) }
        case ("@releaseAction", _) => __obj.releaseAction foreach { x => attr = scala.xml.Attribute(null, "releaseAction", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.TransactionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.LockId map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wfs"), Some("LockId"), __scope, false) } getOrElse {Nil},
        __obj.transactiontypeoption flatMap { x => scalaxb.toXML[scalaxb.DataRecord[opengis.wfs.TransactionTypeOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengiswfs_InsertElementTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.InsertElementType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("InsertElementType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.InsertElementType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "Observation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.ObservationTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "DirectedObservation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.DirectedObservationTypable](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/gml"), "FeatureCollection")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.gml.FeatureCollectionTypable](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.wfs.InsertElementType(p1,
        scala.collection.immutable.ListMap(List(
        (node \ "@idgen").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[opengis.wfs.IdentifierGenerationOptionType](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[opengis.wfs.IdentifierGenerationOptionType](scala.xml.Text("GenerateNew"), scalaxb.ElemName(node) :: stack))) map { "@idgen" -> _ },
        (node \ "@handle").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@handle" -> _ },
        (node \ "@inputFormat").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("application/gml+xml; version=3.1"), scalaxb.ElemName(node) :: stack))) map { "@inputFormat" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wfs.InsertElementType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@idgen", _) => if (__obj.idgen.toString != "GenerateNew") attr = scala.xml.Attribute(null, "idgen", __obj.idgen.toString, attr)
        case ("@handle", _) => __obj.handle foreach { x => attr = scala.xml.Attribute(null, "handle", x.toString, attr) }
        case ("@inputFormat", _) => if (__obj.inputFormat.toString != "application/gml+xml; version=3.1") attr = scala.xml.Attribute(null, "inputFormat", __obj.inputFormat.toString, attr)
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.InsertElementType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj._Feature flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  def buildOpengiswfs_IdentifierGenerationOptionTypeFormat = new DefaultOpengiswfs_IdentifierGenerationOptionTypeFormat {}
  trait DefaultOpengiswfs_IdentifierGenerationOptionTypeFormat extends scalaxb.XMLFormat[opengis.wfs.IdentifierGenerationOptionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.wfs.IdentifierGenerationOptionType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.wfs.IdentifierGenerationOptionType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("UseExisting")) => opengis.wfs.UseExisting
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("ReplaceDuplicate")) => opengis.wfs.ReplaceDuplicate
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("GenerateNew")) => opengis.wfs.GenerateNew

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wfs.IdentifierGenerationOptionType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.wfs.IdentifierGenerationOptionType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengiswfs_UpdateElementTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.UpdateElementType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("UpdateElementType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.UpdateElementType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Property")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Filter")) ^^
      { case p1 ~ p2 =>
      opengis.wfs.UpdateElementType(p1 map { scalaxb.fromXML[opengis.wfs.PropertyType](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.ogc.FilterType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@handle").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@handle" -> _ },
        (node \ "@typeName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[javax.xml.namespace.QName](x, scalaxb.ElemName(node) :: stack)(scalaxb.XMLStandardTypes.qnameXMLFormat(node.scope))) } map { "@typeName" -> _ },
        (node \ "@inputFormat").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("application/gml+xml; version=3.1"), scalaxb.ElemName(node) :: stack))) map { "@inputFormat" -> _ },
        (node \ "@srsName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@srsName" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wfs.UpdateElementType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@handle", _) => __obj.handle foreach { x => attr = scala.xml.Attribute(null, "handle", x.toString, attr) }
        case ("@typeName", _) => attr = scala.xml.Attribute(null, "typeName", scalaxb.Helper.toString(__obj.typeName, __scope), attr)
        case ("@inputFormat", _) => if (__obj.inputFormat.toString != "application/gml+xml; version=3.1") attr = scala.xml.Attribute(null, "inputFormat", __obj.inputFormat.toString, attr)
        case ("@srsName", _) => __obj.srsName foreach { x => attr = scala.xml.Attribute(null, "srsName", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.UpdateElementType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Property flatMap { scalaxb.toXML[opengis.wfs.PropertyType](_, Some("http://www.opengis.net/wfs"), Some("Property"), __scope, false) },
        __obj.Filter map { scalaxb.toXML[opengis.ogc.FilterType](_, Some("http://www.opengis.net/ogc"), Some("Filter"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswfs_PropertyTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.PropertyType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("PropertyType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.PropertyType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Name")) ~ 
      opt(any(_ => true)) ^^
      { case p1 ~ p2 =>
      opengis.wfs.PropertyType(scalaxb.fromXML[javax.xml.namespace.QName](p1, scalaxb.ElemName(node) :: stack),
        p2.headOption map { scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wfs.PropertyType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[javax.xml.namespace.QName](__obj.Name, Some("http://www.opengis.net/wfs"), Some("Name"), __scope, false),
        __obj.Value map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, true) } getOrElse {Nil})

  }

  trait DefaultOpengiswfs_DeleteElementTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.DeleteElementType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("DeleteElementType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.DeleteElementType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "Filter")) ^^
      { case p1 =>
      opengis.wfs.DeleteElementType(scalaxb.fromXML[opengis.ogc.FilterType](p1, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@handle").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@handle" -> _ },
        (node \ "@typeName").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[javax.xml.namespace.QName](x, scalaxb.ElemName(node) :: stack)(scalaxb.XMLStandardTypes.qnameXMLFormat(node.scope))) } map { "@typeName" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wfs.DeleteElementType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@handle", _) => __obj.handle foreach { x => attr = scala.xml.Attribute(null, "handle", x.toString, attr) }
        case ("@typeName", _) => attr = scala.xml.Attribute(null, "typeName", scalaxb.Helper.toString(__obj.typeName, __scope), attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.DeleteElementType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.ogc.FilterType](__obj.Filter, Some("http://www.opengis.net/ogc"), Some("Filter"), __scope, false))

  }

  trait DefaultOpengiswfs_NativeTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.NativeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("NativeType")

    override def isMixed: Boolean = true

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.NativeType] =
      phrase(optTextRecord ~ 
      opt(((any(_.namespace != Some("http://www.opengis.net/wfs")) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack))) ~
      optTextRecord) ^^ 
      { case p1 ~ p2 => Seq.concat(Seq(p1), p2.toList) }) ~ 
      optTextRecord ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.wfs.NativeType(Seq.concat(p1.toList,
        p2 getOrElse {Nil},
        p3.toList),
        scala.collection.immutable.ListMap(List(
        (node \ "@vendorId").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@vendorId" -> _ },
        (node \ "@safeToIgnore").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)) } map { "@safeToIgnore" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wfs.NativeType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@vendorId", _) => attr = scala.xml.Attribute(null, "vendorId", __obj.vendorId.toString, attr)
        case ("@safeToIgnore", _) => attr = scala.xml.Attribute(null, "safeToIgnore", __obj.safeToIgnore.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.NativeType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      __obj.mixed.toSeq flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) }

  }

  trait DefaultOpengiswfs_TransactionResponseTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.TransactionResponseType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("TransactionResponseType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.TransactionResponseType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "TransactionSummary")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "TransactionResults")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "InsertResults")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.wfs.TransactionResponseType(scalaxb.fromXML[opengis.wfs.TransactionSummaryType](p1, scalaxb.ElemName(node) :: stack),
        p2.headOption map { scalaxb.fromXML[opengis.wfs.TransactionResultsType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.wfs.InsertResultsType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("1.1.3"), scalaxb.ElemName(node) :: stack))) map { "@version" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wfs.TransactionResponseType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@version", _) => attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.TransactionResponseType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.wfs.TransactionSummaryType](__obj.TransactionSummary, Some("http://www.opengis.net/wfs"), Some("TransactionSummary"), __scope, false),
        __obj.TransactionResults map { scalaxb.toXML[opengis.wfs.TransactionResultsType](_, Some("http://www.opengis.net/wfs"), Some("TransactionResults"), __scope, false) } getOrElse {Nil},
        __obj.InsertResults map { scalaxb.toXML[opengis.wfs.InsertResultsType](_, Some("http://www.opengis.net/wfs"), Some("InsertResults"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswfs_TransactionSummaryTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.TransactionSummaryType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("TransactionSummaryType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.TransactionSummaryType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "totalInserted")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "totalUpdated")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "totalDeleted")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.wfs.TransactionSummaryType(p1.headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wfs.TransactionSummaryType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.totalInserted map { scalaxb.toXML[BigInt](_, Some("http://www.opengis.net/wfs"), Some("totalInserted"), __scope, false) } getOrElse {Nil},
        __obj.totalUpdated map { scalaxb.toXML[BigInt](_, Some("http://www.opengis.net/wfs"), Some("totalUpdated"), __scope, false) } getOrElse {Nil},
        __obj.totalDeleted map { scalaxb.toXML[BigInt](_, Some("http://www.opengis.net/wfs"), Some("totalDeleted"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswfs_TransactionResultsTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.TransactionResultsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("TransactionResultsType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.TransactionResultsType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Action")) ^^
      { case p1 =>
      opengis.wfs.TransactionResultsType(p1 map { scalaxb.fromXML[opengis.wfs.ActionType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wfs.TransactionResultsType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Action flatMap { scalaxb.toXML[opengis.wfs.ActionType](_, Some("http://www.opengis.net/wfs"), Some("Action"), __scope, false) })

  }

  trait DefaultOpengiswfs_ActionTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.ActionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("ActionType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.ActionType] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Message")) ^^
      { case p1 =>
      opengis.wfs.ActionType(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@locator").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@locator" -> _ },
        (node \ "@code").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@code" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wfs.ActionType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@locator", _) => attr = scala.xml.Attribute(null, "locator", __obj.locator.toString, attr)
        case ("@code", _) => __obj.code foreach { x => attr = scala.xml.Attribute(null, "code", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.ActionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Message map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wfs"), Some("Message"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswfs_InsertResultsTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.InsertResultsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("InsertResultsType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.InsertResultsType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "Feature")) ^^
      { case p1 =>
      opengis.wfs.InsertResultsType(p1 map { scalaxb.fromXML[opengis.wfs.InsertedFeatureType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wfs.InsertResultsType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Feature flatMap { scalaxb.toXML[opengis.wfs.InsertedFeatureType](_, Some("http://www.opengis.net/wfs"), Some("Feature"), __scope, false) })

  }

  trait DefaultOpengiswfs_InsertedFeatureTypeFormat extends scalaxb.ElemNameParser[opengis.wfs.InsertedFeatureType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wfs")
    
    override def typeName: Option[String] = Some("InsertedFeatureType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wfs.InsertedFeatureType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "FeatureId")) ^^
      { case p1 =>
      opengis.wfs.InsertedFeatureType(p1 map { scalaxb.fromXML[opengis.ogc.FeatureIdType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@handle").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@handle" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wfs.InsertedFeatureType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@handle", _) => __obj.handle foreach { x => attr = scala.xml.Attribute(null, "handle", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wfs.InsertedFeatureType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.FeatureId flatMap { scalaxb.toXML[opengis.ogc.FeatureIdType](_, Some("http://www.opengis.net/ogc"), Some("FeatureId"), __scope, false) })

  }

  trait DefaultOpengiswms_WMS_CapabilitiesFormat extends scalaxb.ElemNameParser[opengis.wms.WMS_Capabilities] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.WMS_Capabilities] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Service")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Capability")) ^^
      { case p1 ~ p2 =>
      opengis.wms.WMS_Capabilities(scalaxb.fromXML[opengis.wms.Service](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.wms.Capability](p2, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("1.3.0"), scalaxb.ElemName(node) :: stack))) map { "@version" -> _ },
        (node \ "@updateSequence").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@updateSequence" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wms.WMS_Capabilities, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@version", _) => attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case ("@updateSequence", _) => __obj.updateSequence foreach { x => attr = scala.xml.Attribute(null, "updateSequence", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wms.WMS_Capabilities, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.wms.Service](__obj.Service, Some("http://www.opengis.net/wms"), Some("Service"), __scope, false),
        scalaxb.toXML[opengis.wms.Capability](__obj.Capability, Some("http://www.opengis.net/wms"), Some("Capability"), __scope, false))

  }

  trait DefaultOpengiswms_KeywordListFormat extends scalaxb.ElemNameParser[opengis.wms.KeywordList] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.KeywordList] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Keyword")) ^^
      { case p1 =>
      opengis.wms.KeywordList(p1 map { scalaxb.fromXML[opengis.wms.Keyword](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wms.KeywordList, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Keyword flatMap { scalaxb.toXML[opengis.wms.Keyword](_, Some("http://www.opengis.net/wms"), Some("Keyword"), __scope, false) })

  }

  trait DefaultOpengiswms_KeywordFormat extends scalaxb.XMLFormat[opengis.wms.Keyword] with scalaxb.CanWriteChildNodes[opengis.wms.Keyword] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wms.Keyword] = seq match {
      case node: scala.xml.Node => Right(opengis.wms.Keyword(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@vocabulary").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@vocabulary" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.wms.Keyword, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@vocabulary", _) => __obj.vocabulary foreach { x => attr = scala.xml.Attribute(null, "vocabulary", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wms.Keyword, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengiswms_OnlineResourceFormat extends scalaxb.XMLFormat[opengis.wms.OnlineResource] with scalaxb.CanWriteChildNodes[opengis.wms.OnlineResource] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wms.OnlineResource] = seq match {
      case node: scala.xml.Node => Right(opengis.wms.OnlineResource(scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.wms.OnlineResource, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wms.OnlineResource, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  def buildOpengiswms_NameFormat = new DefaultOpengiswms_NameFormat {}
  trait DefaultOpengiswms_NameFormat extends scalaxb.XMLFormat[opengis.wms.Name] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.wms.Name =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.wms.Name] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("WMS")) => opengis.wms.WMS

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wms.Name] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.wms.Name, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengiswms_ServiceFormat extends scalaxb.ElemNameParser[opengis.wms.Service] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.Service] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Name")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Title")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Abstract")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "KeywordList")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "OnlineResource")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "ContactInformation")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Fees")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "AccessConstraints")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "LayerLimit")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "MaxWidth")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "MaxHeight")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 ~ p10 ~ p11 =>
      opengis.wms.Service(scalaxb.fromXML[opengis.wms.Name](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.wms.KeywordList](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.wms.OnlineResource](p5, scalaxb.ElemName(node) :: stack),
        p6.headOption map { scalaxb.fromXML[opengis.wms.ContactInformation](_, scalaxb.ElemName(node) :: stack) },
        p7.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p8.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p9.headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) },
        p10.headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) },
        p11.headOption map { scalaxb.fromXML[BigInt](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wms.Service, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.wms.Name](__obj.Name, Some("http://www.opengis.net/wms"), Some("Name"), __scope, false),
        scalaxb.toXML[String](__obj.Title, Some("http://www.opengis.net/wms"), Some("Title"), __scope, false),
        __obj.AbstractValue map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wms"), Some("Abstract"), __scope, false) } getOrElse {Nil},
        __obj.KeywordList map { scalaxb.toXML[opengis.wms.KeywordList](_, Some("http://www.opengis.net/wms"), Some("KeywordList"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[opengis.wms.OnlineResource](__obj.OnlineResource, Some("http://www.opengis.net/wms"), Some("OnlineResource"), __scope, false),
        __obj.ContactInformation map { scalaxb.toXML[opengis.wms.ContactInformation](_, Some("http://www.opengis.net/wms"), Some("ContactInformation"), __scope, false) } getOrElse {Nil},
        __obj.Fees map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wms"), Some("Fees"), __scope, false) } getOrElse {Nil},
        __obj.AccessConstraints map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wms"), Some("AccessConstraints"), __scope, false) } getOrElse {Nil},
        __obj.LayerLimit map { scalaxb.toXML[BigInt](_, Some("http://www.opengis.net/wms"), Some("LayerLimit"), __scope, false) } getOrElse {Nil},
        __obj.MaxWidth map { scalaxb.toXML[BigInt](_, Some("http://www.opengis.net/wms"), Some("MaxWidth"), __scope, false) } getOrElse {Nil},
        __obj.MaxHeight map { scalaxb.toXML[BigInt](_, Some("http://www.opengis.net/wms"), Some("MaxHeight"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswms_ContactInformationFormat extends scalaxb.ElemNameParser[opengis.wms.ContactInformation] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.ContactInformation] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "ContactPersonPrimary")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "ContactPosition")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "ContactAddress")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "ContactVoiceTelephone")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "ContactFacsimileTelephone")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "ContactElectronicMailAddress")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.wms.ContactInformation(p1.headOption map { scalaxb.fromXML[opengis.wms.ContactPersonPrimary](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.wms.ContactAddress](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wms.ContactInformation, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.ContactPersonPrimary map { scalaxb.toXML[opengis.wms.ContactPersonPrimary](_, Some("http://www.opengis.net/wms"), Some("ContactPersonPrimary"), __scope, false) } getOrElse {Nil},
        __obj.ContactPosition map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wms"), Some("ContactPosition"), __scope, false) } getOrElse {Nil},
        __obj.ContactAddress map { scalaxb.toXML[opengis.wms.ContactAddress](_, Some("http://www.opengis.net/wms"), Some("ContactAddress"), __scope, false) } getOrElse {Nil},
        __obj.ContactVoiceTelephone map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wms"), Some("ContactVoiceTelephone"), __scope, false) } getOrElse {Nil},
        __obj.ContactFacsimileTelephone map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wms"), Some("ContactFacsimileTelephone"), __scope, false) } getOrElse {Nil},
        __obj.ContactElectronicMailAddress map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wms"), Some("ContactElectronicMailAddress"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswms_ContactPersonPrimaryFormat extends scalaxb.ElemNameParser[opengis.wms.ContactPersonPrimary] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.ContactPersonPrimary] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "ContactPerson")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "ContactOrganization")) ^^
      { case p1 ~ p2 =>
      opengis.wms.ContactPersonPrimary(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.wms.ContactPersonPrimary, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.ContactPerson, Some("http://www.opengis.net/wms"), Some("ContactPerson"), __scope, false),
        scalaxb.toXML[String](__obj.ContactOrganization, Some("http://www.opengis.net/wms"), Some("ContactOrganization"), __scope, false))

  }

  trait DefaultOpengiswms_ContactAddressFormat extends scalaxb.ElemNameParser[opengis.wms.ContactAddress] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.ContactAddress] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "AddressType")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Address")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "City")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "StateOrProvince")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "PostCode")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Country")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.wms.ContactAddress(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p2, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p3, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p4, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p5, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p6, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.wms.ContactAddress, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.AddressType, Some("http://www.opengis.net/wms"), Some("AddressType"), __scope, false),
        scalaxb.toXML[String](__obj.Address, Some("http://www.opengis.net/wms"), Some("Address"), __scope, false),
        scalaxb.toXML[String](__obj.City, Some("http://www.opengis.net/wms"), Some("City"), __scope, false),
        scalaxb.toXML[String](__obj.StateOrProvince, Some("http://www.opengis.net/wms"), Some("StateOrProvince"), __scope, false),
        scalaxb.toXML[String](__obj.PostCode, Some("http://www.opengis.net/wms"), Some("PostCode"), __scope, false),
        scalaxb.toXML[String](__obj.Country, Some("http://www.opengis.net/wms"), Some("Country"), __scope, false))

  }

  trait DefaultOpengiswms_CapabilityFormat extends scalaxb.ElemNameParser[opengis.wms.Capability] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.Capability] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Request")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Exception")) ~ 
      safeRep(((any(_ => true) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "UserDefinedSymbolization")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.sld.UserDefinedSymbolization](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "UserDefinedSymbolization")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.sld.UserDefinedSymbolization](x, scalaxb.ElemName(node) :: stack))))) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Layer")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.wms.Capability(scalaxb.fromXML[opengis.wms.Request](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.wms.Exception](p2, scalaxb.ElemName(node) :: stack),
        p3,
        p4.headOption map { scalaxb.fromXML[opengis.wms.Layer](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wms.Capability, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.wms.Request](__obj.Request, Some("http://www.opengis.net/wms"), Some("Request"), __scope, false),
        scalaxb.toXML[opengis.wms.Exception](__obj.Exception, Some("http://www.opengis.net/wms"), Some("Exception"), __scope, false),
        __obj._ExtendedCapabilities flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) },
        __obj.Layer map { scalaxb.toXML[opengis.wms.Layer](_, Some("http://www.opengis.net/wms"), Some("Layer"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswms_RequestFormat extends scalaxb.ElemNameParser[opengis.wms.Request] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.Request] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "GetCapabilities")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "GetMap")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "GetFeatureInfo")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "_ExtendedOperation")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wms.OperationType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "GetLegendGraphic")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wms.OperationType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "DescribeLayer")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wms.OperationType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "GetLegendGraphic")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wms.OperationType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/sld"), "DescribeLayer")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wms.OperationType](x, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.wms.Request(scalaxb.fromXML[opengis.wms.OperationType](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.wms.OperationType](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[opengis.wms.OperationType](_, scalaxb.ElemName(node) :: stack) },
        p4) })
    
    def writesChildNodes(__obj: opengis.wms.Request, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.wms.OperationType](__obj.GetCapabilities, Some("http://www.opengis.net/wms"), Some("GetCapabilities"), __scope, false),
        scalaxb.toXML[opengis.wms.OperationType](__obj.GetMap, Some("http://www.opengis.net/wms"), Some("GetMap"), __scope, false),
        __obj.GetFeatureInfo map { scalaxb.toXML[opengis.wms.OperationType](_, Some("http://www.opengis.net/wms"), Some("GetFeatureInfo"), __scope, false) } getOrElse {Nil},
        __obj._ExtendedOperation flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultOpengiswms_OperationTypeFormat extends scalaxb.ElemNameParser[opengis.wms.OperationType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    override def typeName: Option[String] = Some("OperationType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.OperationType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Format")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "DCPType")) ^^
      { case p1 ~ p2 =>
      opengis.wms.OperationType(p1 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.wms.DCPType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wms.OperationType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Format flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/wms"), Some("Format"), __scope, false) },
        __obj.DCPType flatMap { scalaxb.toXML[opengis.wms.DCPType](_, Some("http://www.opengis.net/wms"), Some("DCPType"), __scope, false) })

  }

  trait DefaultOpengiswms_DCPTypeFormat extends scalaxb.ElemNameParser[opengis.wms.DCPType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.DCPType] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "HTTP")) ^^
      { case p1 =>
      opengis.wms.DCPType(scalaxb.fromXML[opengis.wms.HTTP](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.wms.DCPType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.wms.HTTP](__obj.HTTP, Some("http://www.opengis.net/wms"), Some("HTTP"), __scope, false))

  }

  trait DefaultOpengiswms_HTTPFormat extends scalaxb.ElemNameParser[opengis.wms.HTTP] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.HTTP] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Get")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Post")) ^^
      { case p1 ~ p2 =>
      opengis.wms.HTTP(scalaxb.fromXML[opengis.wms.Get](p1, scalaxb.ElemName(node) :: stack),
        p2.headOption map { scalaxb.fromXML[opengis.wms.Post](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wms.HTTP, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.wms.Get](__obj.Get, Some("http://www.opengis.net/wms"), Some("Get"), __scope, false),
        __obj.Post map { scalaxb.toXML[opengis.wms.Post](_, Some("http://www.opengis.net/wms"), Some("Post"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswms_GetFormat extends scalaxb.ElemNameParser[opengis.wms.Get] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.Get] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "OnlineResource")) ^^
      { case p1 =>
      opengis.wms.Get(scalaxb.fromXML[opengis.wms.OnlineResource](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.wms.Get, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.wms.OnlineResource](__obj.OnlineResource, Some("http://www.opengis.net/wms"), Some("OnlineResource"), __scope, false))

  }

  trait DefaultOpengiswms_PostFormat extends scalaxb.ElemNameParser[opengis.wms.Post] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.Post] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "OnlineResource")) ^^
      { case p1 =>
      opengis.wms.Post(scalaxb.fromXML[opengis.wms.OnlineResource](p1, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.wms.Post, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.wms.OnlineResource](__obj.OnlineResource, Some("http://www.opengis.net/wms"), Some("OnlineResource"), __scope, false))

  }

  trait DefaultOpengiswms_ExceptionFormat extends scalaxb.ElemNameParser[opengis.wms.Exception] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.Exception] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Format")) ^^
      { case p1 =>
      opengis.wms.Exception(p1 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wms.Exception, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Format flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/wms"), Some("Format"), __scope, false) })

  }

  trait DefaultOpengiswms_LayerFormat extends scalaxb.ElemNameParser[opengis.wms.Layer] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.Layer] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Name")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Title")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Abstract")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "KeywordList")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "CRS")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "EX_GeographicBoundingBox")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "BoundingBox")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Dimension")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Attribution")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "AuthorityURL")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Identifier")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "MetadataURL")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "DataURL")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "FeatureListURL")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Style")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "MinScaleDenominator")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "MaxScaleDenominator")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Layer")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 ~ p10 ~ p11 ~ p12 ~ p13 ~ p14 ~ p15 ~ p16 ~ p17 ~ p18 =>
      opengis.wms.Layer(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[String](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.wms.KeywordList](_, scalaxb.ElemName(node) :: stack) },
        p5 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[opengis.wms.EX_GeographicBoundingBox](_, scalaxb.ElemName(node) :: stack) },
        p7 map { scalaxb.fromXML[opengis.wms.BoundingBox](_, scalaxb.ElemName(node) :: stack) },
        p8 map { scalaxb.fromXML[opengis.wms.Dimension](_, scalaxb.ElemName(node) :: stack) },
        p9.headOption map { scalaxb.fromXML[opengis.wms.Attribution](_, scalaxb.ElemName(node) :: stack) },
        p10 map { scalaxb.fromXML[opengis.wms.AuthorityURL](_, scalaxb.ElemName(node) :: stack) },
        p11 map { scalaxb.fromXML[opengis.wms.Identifier](_, scalaxb.ElemName(node) :: stack) },
        p12 map { scalaxb.fromXML[opengis.wms.MetadataURL](_, scalaxb.ElemName(node) :: stack) },
        p13 map { scalaxb.fromXML[opengis.wms.DataURL](_, scalaxb.ElemName(node) :: stack) },
        p14 map { scalaxb.fromXML[opengis.wms.FeatureListURL](_, scalaxb.ElemName(node) :: stack) },
        p15 map { scalaxb.fromXML[opengis.wms.Style](_, scalaxb.ElemName(node) :: stack) },
        p16.headOption map { scalaxb.fromXML[Double](_, scalaxb.ElemName(node) :: stack) },
        p17.headOption map { scalaxb.fromXML[Double](_, scalaxb.ElemName(node) :: stack) },
        p18 map { scalaxb.fromXML[opengis.wms.Layer](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@queryable").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@queryable" -> _ },
        (node \ "@cascaded").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@cascaded" -> _ },
        (node \ "@opaque").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@opaque" -> _ },
        (node \ "@noSubsets").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } orElse Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("0"), scalaxb.ElemName(node) :: stack))) map { "@noSubsets" -> _ },
        (node \ "@fixedWidth").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@fixedWidth" -> _ },
        (node \ "@fixedHeight").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@fixedHeight" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wms.Layer, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@queryable", _) => if (__obj.queryable.toString != "0") attr = scala.xml.Attribute(null, "queryable", __obj.queryable.toString, attr)
        case ("@cascaded", _) => __obj.cascaded foreach { x => attr = scala.xml.Attribute(null, "cascaded", x.toString, attr) }
        case ("@opaque", _) => if (__obj.opaque.toString != "0") attr = scala.xml.Attribute(null, "opaque", __obj.opaque.toString, attr)
        case ("@noSubsets", _) => if (__obj.noSubsets.toString != "0") attr = scala.xml.Attribute(null, "noSubsets", __obj.noSubsets.toString, attr)
        case ("@fixedWidth", _) => __obj.fixedWidth foreach { x => attr = scala.xml.Attribute(null, "fixedWidth", x.toString, attr) }
        case ("@fixedHeight", _) => __obj.fixedHeight foreach { x => attr = scala.xml.Attribute(null, "fixedHeight", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wms.Layer, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Name map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wms"), Some("Name"), __scope, false) } getOrElse {Nil},
        scalaxb.toXML[String](__obj.Title, Some("http://www.opengis.net/wms"), Some("Title"), __scope, false),
        __obj.AbstractValue map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wms"), Some("Abstract"), __scope, false) } getOrElse {Nil},
        __obj.KeywordList map { scalaxb.toXML[opengis.wms.KeywordList](_, Some("http://www.opengis.net/wms"), Some("KeywordList"), __scope, false) } getOrElse {Nil},
        __obj.CRS flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/wms"), Some("CRS"), __scope, false) },
        __obj.EX_GeographicBoundingBox map { scalaxb.toXML[opengis.wms.EX_GeographicBoundingBox](_, Some("http://www.opengis.net/wms"), Some("EX_GeographicBoundingBox"), __scope, false) } getOrElse {Nil},
        __obj.BoundingBox flatMap { scalaxb.toXML[opengis.wms.BoundingBox](_, Some("http://www.opengis.net/wms"), Some("BoundingBox"), __scope, false) },
        __obj.Dimension flatMap { scalaxb.toXML[opengis.wms.Dimension](_, Some("http://www.opengis.net/wms"), Some("Dimension"), __scope, false) },
        __obj.Attribution map { scalaxb.toXML[opengis.wms.Attribution](_, Some("http://www.opengis.net/wms"), Some("Attribution"), __scope, false) } getOrElse {Nil},
        __obj.AuthorityURL flatMap { scalaxb.toXML[opengis.wms.AuthorityURL](_, Some("http://www.opengis.net/wms"), Some("AuthorityURL"), __scope, false) },
        __obj.Identifier flatMap { scalaxb.toXML[opengis.wms.Identifier](_, Some("http://www.opengis.net/wms"), Some("Identifier"), __scope, false) },
        __obj.MetadataURL flatMap { scalaxb.toXML[opengis.wms.MetadataURL](_, Some("http://www.opengis.net/wms"), Some("MetadataURL"), __scope, false) },
        __obj.DataURL flatMap { scalaxb.toXML[opengis.wms.DataURL](_, Some("http://www.opengis.net/wms"), Some("DataURL"), __scope, false) },
        __obj.FeatureListURL flatMap { scalaxb.toXML[opengis.wms.FeatureListURL](_, Some("http://www.opengis.net/wms"), Some("FeatureListURL"), __scope, false) },
        __obj.Style flatMap { scalaxb.toXML[opengis.wms.Style](_, Some("http://www.opengis.net/wms"), Some("Style"), __scope, false) },
        __obj.MinScaleDenominator map { scalaxb.toXML[Double](_, Some("http://www.opengis.net/wms"), Some("MinScaleDenominator"), __scope, false) } getOrElse {Nil},
        __obj.MaxScaleDenominator map { scalaxb.toXML[Double](_, Some("http://www.opengis.net/wms"), Some("MaxScaleDenominator"), __scope, false) } getOrElse {Nil},
        __obj.Layer flatMap { scalaxb.toXML[opengis.wms.Layer](_, Some("http://www.opengis.net/wms"), Some("Layer"), __scope, false) })

  }

  trait DefaultOpengiswms_EX_GeographicBoundingBoxFormat extends scalaxb.ElemNameParser[opengis.wms.EX_GeographicBoundingBox] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.EX_GeographicBoundingBox] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "westBoundLongitude")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "eastBoundLongitude")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "southBoundLatitude")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "northBoundLatitude")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.wms.EX_GeographicBoundingBox(scalaxb.fromXML[Double](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[Double](p2, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[Double](p3, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[Double](p4, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.wms.EX_GeographicBoundingBox, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[Double](__obj.westBoundLongitude, Some("http://www.opengis.net/wms"), Some("westBoundLongitude"), __scope, false),
        scalaxb.toXML[Double](__obj.eastBoundLongitude, Some("http://www.opengis.net/wms"), Some("eastBoundLongitude"), __scope, false),
        scalaxb.toXML[Double](__obj.southBoundLatitude, Some("http://www.opengis.net/wms"), Some("southBoundLatitude"), __scope, false),
        scalaxb.toXML[Double](__obj.northBoundLatitude, Some("http://www.opengis.net/wms"), Some("northBoundLatitude"), __scope, false))

  }

  trait DefaultOpengiswms_BoundingBoxFormat extends scalaxb.XMLFormat[opengis.wms.BoundingBox] with scalaxb.CanWriteChildNodes[opengis.wms.BoundingBox] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wms.BoundingBox] = seq match {
      case node: scala.xml.Node => Right(opengis.wms.BoundingBox(scala.collection.immutable.ListMap(List(
        (node \ "@CRS").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@CRS" -> _ },
        (node \ "@minx").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Double](x, scalaxb.ElemName(node) :: stack)) } map { "@minx" -> _ },
        (node \ "@miny").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Double](x, scalaxb.ElemName(node) :: stack)) } map { "@miny" -> _ },
        (node \ "@maxx").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Double](x, scalaxb.ElemName(node) :: stack)) } map { "@maxx" -> _ },
        (node \ "@maxy").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Double](x, scalaxb.ElemName(node) :: stack)) } map { "@maxy" -> _ },
        (node \ "@resx").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Double](x, scalaxb.ElemName(node) :: stack)) } map { "@resx" -> _ },
        (node \ "@resy").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Double](x, scalaxb.ElemName(node) :: stack)) } map { "@resy" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.wms.BoundingBox, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@CRS", _) => attr = scala.xml.Attribute(null, "CRS", __obj.CRS.toString, attr)
        case ("@minx", _) => attr = scala.xml.Attribute(null, "minx", __obj.minx.toString, attr)
        case ("@miny", _) => attr = scala.xml.Attribute(null, "miny", __obj.miny.toString, attr)
        case ("@maxx", _) => attr = scala.xml.Attribute(null, "maxx", __obj.maxx.toString, attr)
        case ("@maxy", _) => attr = scala.xml.Attribute(null, "maxy", __obj.maxy.toString, attr)
        case ("@resx", _) => __obj.resx foreach { x => attr = scala.xml.Attribute(null, "resx", x.toString, attr) }
        case ("@resy", _) => __obj.resy foreach { x => attr = scala.xml.Attribute(null, "resy", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wms.BoundingBox, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengiswms_DimensionFormat extends scalaxb.XMLFormat[opengis.wms.Dimension] with scalaxb.CanWriteChildNodes[opengis.wms.Dimension] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wms.Dimension] = seq match {
      case node: scala.xml.Node => Right(opengis.wms.Dimension(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@name").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@name" -> _ },
        (node \ "@units").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@units" -> _ },
        (node \ "@unitSymbol").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@unitSymbol" -> _ },
        (node \ "@default").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@default" -> _ },
        (node \ "@multipleValues").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@multipleValues" -> _ },
        (node \ "@nearestValue").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@nearestValue" -> _ },
        (node \ "@current").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@current" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.wms.Dimension, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@name", _) => attr = scala.xml.Attribute(null, "name", __obj.name.toString, attr)
        case ("@units", _) => attr = scala.xml.Attribute(null, "units", __obj.units.toString, attr)
        case ("@unitSymbol", _) => __obj.unitSymbol foreach { x => attr = scala.xml.Attribute(null, "unitSymbol", x.toString, attr) }
        case ("@default", _) => __obj.default foreach { x => attr = scala.xml.Attribute(null, "default", x.toString, attr) }
        case ("@multipleValues", _) => __obj.multipleValues foreach { x => attr = scala.xml.Attribute(null, "multipleValues", x.toString, attr) }
        case ("@nearestValue", _) => __obj.nearestValue foreach { x => attr = scala.xml.Attribute(null, "nearestValue", x.toString, attr) }
        case ("@current", _) => __obj.current foreach { x => attr = scala.xml.Attribute(null, "current", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wms.Dimension, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengiswms_AttributionFormat extends scalaxb.ElemNameParser[opengis.wms.Attribution] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.Attribution] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Title")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "OnlineResource")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "LogoURL")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.wms.Attribution(p1.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.wms.OnlineResource](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.wms.LogoURL](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wms.Attribution, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wms"), Some("Title"), __scope, false) } getOrElse {Nil},
        __obj.OnlineResource map { scalaxb.toXML[opengis.wms.OnlineResource](_, Some("http://www.opengis.net/wms"), Some("OnlineResource"), __scope, false) } getOrElse {Nil},
        __obj.LogoURL map { scalaxb.toXML[opengis.wms.LogoURL](_, Some("http://www.opengis.net/wms"), Some("LogoURL"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswms_LogoURLFormat extends scalaxb.ElemNameParser[opengis.wms.LogoURL] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.LogoURL] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Format")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "OnlineResource")) ^^
      { case p1 ~ p2 =>
      opengis.wms.LogoURL(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.wms.OnlineResource](p2, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@width").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@width" -> _ },
        (node \ "@height").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@height" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wms.LogoURL, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@width", _) => __obj.width foreach { x => attr = scala.xml.Attribute(null, "width", x.toString, attr) }
        case ("@height", _) => __obj.height foreach { x => attr = scala.xml.Attribute(null, "height", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wms.LogoURL, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.Format, Some("http://www.opengis.net/wms"), Some("Format"), __scope, false),
        scalaxb.toXML[opengis.wms.OnlineResource](__obj.OnlineResource, Some("http://www.opengis.net/wms"), Some("OnlineResource"), __scope, false))

  }

  trait DefaultOpengiswms_MetadataURLFormat extends scalaxb.ElemNameParser[opengis.wms.MetadataURL] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.MetadataURL] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Format")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "OnlineResource")) ^^
      { case p1 ~ p2 =>
      opengis.wms.MetadataURL(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.wms.OnlineResource](p2, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@type").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@type" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wms.MetadataURL, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@type", _) => attr = scala.xml.Attribute(null, "type", __obj.typeValue.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wms.MetadataURL, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.Format, Some("http://www.opengis.net/wms"), Some("Format"), __scope, false),
        scalaxb.toXML[opengis.wms.OnlineResource](__obj.OnlineResource, Some("http://www.opengis.net/wms"), Some("OnlineResource"), __scope, false))

  }

  trait DefaultOpengiswms_AuthorityURLFormat extends scalaxb.ElemNameParser[opengis.wms.AuthorityURL] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.AuthorityURL] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "OnlineResource")) ^^
      { case p1 =>
      opengis.wms.AuthorityURL(scalaxb.fromXML[opengis.wms.OnlineResource](p1, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@name").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@name" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wms.AuthorityURL, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@name", _) => attr = scala.xml.Attribute(null, "name", __obj.name.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wms.AuthorityURL, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[opengis.wms.OnlineResource](__obj.OnlineResource, Some("http://www.opengis.net/wms"), Some("OnlineResource"), __scope, false))

  }

  trait DefaultOpengiswms_IdentifierFormat extends scalaxb.XMLFormat[opengis.wms.Identifier] with scalaxb.CanWriteChildNodes[opengis.wms.Identifier] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wms.Identifier] = seq match {
      case node: scala.xml.Node => Right(opengis.wms.Identifier(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@authority").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@authority" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.wms.Identifier, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@authority", _) => attr = scala.xml.Attribute(null, "authority", __obj.authority.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wms.Identifier, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengiswms_DataURLFormat extends scalaxb.ElemNameParser[opengis.wms.DataURL] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.DataURL] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Format")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "OnlineResource")) ^^
      { case p1 ~ p2 =>
      opengis.wms.DataURL(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.wms.OnlineResource](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.wms.DataURL, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.Format, Some("http://www.opengis.net/wms"), Some("Format"), __scope, false),
        scalaxb.toXML[opengis.wms.OnlineResource](__obj.OnlineResource, Some("http://www.opengis.net/wms"), Some("OnlineResource"), __scope, false))

  }

  trait DefaultOpengiswms_FeatureListURLFormat extends scalaxb.ElemNameParser[opengis.wms.FeatureListURL] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.FeatureListURL] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Format")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "OnlineResource")) ^^
      { case p1 ~ p2 =>
      opengis.wms.FeatureListURL(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.wms.OnlineResource](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.wms.FeatureListURL, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.Format, Some("http://www.opengis.net/wms"), Some("Format"), __scope, false),
        scalaxb.toXML[opengis.wms.OnlineResource](__obj.OnlineResource, Some("http://www.opengis.net/wms"), Some("OnlineResource"), __scope, false))

  }

  trait DefaultOpengiswms_StyleFormat extends scalaxb.ElemNameParser[opengis.wms.Style] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.Style] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Name")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Title")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "LegendURL")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "StyleSheetURL")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wms"), "StyleURL")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.wms.Style(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p2, scalaxb.ElemName(node) :: stack),
        p3.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.wms.LegendURL](_, scalaxb.ElemName(node) :: stack) },
        p5.headOption map { scalaxb.fromXML[opengis.wms.StyleSheetURL](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[opengis.wms.StyleURL](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wms.Style, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.Name, Some("http://www.opengis.net/wms"), Some("Name"), __scope, false),
        scalaxb.toXML[String](__obj.Title, Some("http://www.opengis.net/wms"), Some("Title"), __scope, false),
        __obj.AbstractValue map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wms"), Some("Abstract"), __scope, false) } getOrElse {Nil},
        __obj.LegendURL flatMap { scalaxb.toXML[opengis.wms.LegendURL](_, Some("http://www.opengis.net/wms"), Some("LegendURL"), __scope, false) },
        __obj.StyleSheetURL map { scalaxb.toXML[opengis.wms.StyleSheetURL](_, Some("http://www.opengis.net/wms"), Some("StyleSheetURL"), __scope, false) } getOrElse {Nil},
        __obj.StyleURL map { scalaxb.toXML[opengis.wms.StyleURL](_, Some("http://www.opengis.net/wms"), Some("StyleURL"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswms_LegendURLFormat extends scalaxb.ElemNameParser[opengis.wms.LegendURL] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.LegendURL] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Format")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "OnlineResource")) ^^
      { case p1 ~ p2 =>
      opengis.wms.LegendURL(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.wms.OnlineResource](p2, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@width").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@width" -> _ },
        (node \ "@height").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@height" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wms.LegendURL, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@width", _) => __obj.width foreach { x => attr = scala.xml.Attribute(null, "width", x.toString, attr) }
        case ("@height", _) => __obj.height foreach { x => attr = scala.xml.Attribute(null, "height", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wms.LegendURL, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.Format, Some("http://www.opengis.net/wms"), Some("Format"), __scope, false),
        scalaxb.toXML[opengis.wms.OnlineResource](__obj.OnlineResource, Some("http://www.opengis.net/wms"), Some("OnlineResource"), __scope, false))

  }

  trait DefaultOpengiswms_StyleSheetURLFormat extends scalaxb.ElemNameParser[opengis.wms.StyleSheetURL] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.StyleSheetURL] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Format")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "OnlineResource")) ^^
      { case p1 ~ p2 =>
      opengis.wms.StyleSheetURL(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.wms.OnlineResource](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.wms.StyleSheetURL, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.Format, Some("http://www.opengis.net/wms"), Some("Format"), __scope, false),
        scalaxb.toXML[opengis.wms.OnlineResource](__obj.OnlineResource, Some("http://www.opengis.net/wms"), Some("OnlineResource"), __scope, false))

  }

  trait DefaultOpengiswms_StyleURLFormat extends scalaxb.ElemNameParser[opengis.wms.StyleURL] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wms")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wms.StyleURL] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wms"), "Format")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wms"), "OnlineResource")) ^^
      { case p1 ~ p2 =>
      opengis.wms.StyleURL(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[opengis.wms.OnlineResource](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.wms.StyleURL, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.Format, Some("http://www.opengis.net/wms"), Some("Format"), __scope, false),
        scalaxb.toXML[opengis.wms.OnlineResource](__obj.OnlineResource, Some("http://www.opengis.net/wms"), Some("OnlineResource"), __scope, false))

  }

  trait DefaultOpengisogc_ServiceExceptionReportFormat extends scalaxb.ElemNameParser[opengis.ogc.ServiceExceptionReport] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.ogc.ServiceExceptionReport] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ogc"), "ServiceException")) ^^
      { case p1 =>
      opengis.ogc.ServiceExceptionReport(p1 map { scalaxb.fromXML[opengis.ogc.ServiceExceptionType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("1.3.0"), scalaxb.ElemName(node) :: stack))) map { "@version" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.ogc.ServiceExceptionReport, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@version", _) => attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ogc.ServiceExceptionReport, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.ServiceException flatMap { scalaxb.toXML[opengis.ogc.ServiceExceptionType](_, Some("http://www.opengis.net/ogc"), Some("ServiceException"), __scope, false) })

  }

  trait DefaultOpengisogc_ServiceExceptionTypeFormat extends scalaxb.XMLFormat[opengis.ogc.ServiceExceptionType] with scalaxb.CanWriteChildNodes[opengis.ogc.ServiceExceptionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/ogc")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.ogc.ServiceExceptionType] = seq match {
      case node: scala.xml.Node => Right(opengis.ogc.ServiceExceptionType(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@code").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@code" -> _ },
        (node \ "@locator").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@locator" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.ogc.ServiceExceptionType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@code", _) => __obj.code foreach { x => attr = scala.xml.Attribute(null, "code", x.toString, attr) }
        case ("@locator", _) => __obj.locator foreach { x => attr = scala.xml.Attribute(null, "locator", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.ogc.ServiceExceptionType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  trait DefaultOpengiswmts_GetCapabilitiesFormat extends scalaxb.ElemNameParser[opengis.wmts.GetCapabilities] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wmts.GetCapabilities] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "AcceptVersions")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Sections")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "AcceptFormats")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.wmts.GetCapabilities(p1.headOption map { scalaxb.fromXML[opengis.ows.AcceptVersionsType](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.ows.SectionsType](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.ows.AcceptFormatsType](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@updateSequence").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@updateSequence" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("WMTS"), scalaxb.ElemName(node) :: stack))) map { "@service" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wmts.GetCapabilities, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@updateSequence", _) => __obj.updateSequence foreach { x => attr = scala.xml.Attribute(null, "updateSequence", x.toString, attr) }
        case ("@service", _) => attr = scala.xml.Attribute(null, "service", __obj.service.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wmts.GetCapabilities, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.AcceptVersions map { scalaxb.toXML[opengis.ows.AcceptVersionsType](_, Some("http://www.opengis.net/ows/1.1"), Some("AcceptVersions"), __scope, false) } getOrElse {Nil},
        __obj.Sections map { scalaxb.toXML[opengis.ows.SectionsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Sections"), __scope, false) } getOrElse {Nil},
        __obj.AcceptFormats map { scalaxb.toXML[opengis.ows.AcceptFormatsType](_, Some("http://www.opengis.net/ows/1.1"), Some("AcceptFormats"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswmts_CapabilitiesFormat extends scalaxb.ElemNameParser[opengis.wmts.Capabilities] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wmts.Capabilities] =
      phrase(opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ServiceIdentification")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "ServiceProvider")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "OperationsMetadata")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Contents")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Themes")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "WSDL")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "ServiceMetadataURL")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 =>
      opengis.wmts.Capabilities(p1.headOption map { scalaxb.fromXML[opengis.ows.ServiceIdentification](_, scalaxb.ElemName(node) :: stack) },
        p2.headOption map { scalaxb.fromXML[opengis.ows.ServiceProvider](_, scalaxb.ElemName(node) :: stack) },
        p3.headOption map { scalaxb.fromXML[opengis.ows.OperationsMetadata](_, scalaxb.ElemName(node) :: stack) },
        p4.headOption map { scalaxb.fromXML[opengis.wmts.ContentsType](_, scalaxb.ElemName(node) :: stack) },
        p5 map { scalaxb.fromXML[opengis.wmts.Themes](_, scalaxb.ElemName(node) :: stack) },
        p6 map { scalaxb.fromXML[opengis.ows.OnlineResourceTypable](_, scalaxb.ElemName(node) :: stack) },
        p7 map { scalaxb.fromXML[opengis.ows.OnlineResourceTypable](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@version").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@version" -> _ },
        (node \ "@updateSequence").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@updateSequence" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wmts.Capabilities, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@version", _) => attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case ("@updateSequence", _) => __obj.updateSequence foreach { x => attr = scala.xml.Attribute(null, "updateSequence", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wmts.Capabilities, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.ServiceIdentification map { scalaxb.toXML[opengis.ows.ServiceIdentification](_, Some("http://www.opengis.net/ows/1.1"), Some("ServiceIdentification"), __scope, false) } getOrElse {Nil},
        __obj.ServiceProvider map { scalaxb.toXML[opengis.ows.ServiceProvider](_, Some("http://www.opengis.net/ows/1.1"), Some("ServiceProvider"), __scope, false) } getOrElse {Nil},
        __obj.OperationsMetadata map { scalaxb.toXML[opengis.ows.OperationsMetadata](_, Some("http://www.opengis.net/ows/1.1"), Some("OperationsMetadata"), __scope, false) } getOrElse {Nil},
        __obj.Contents map { scalaxb.toXML[opengis.wmts.ContentsType](_, Some("http://www.opengis.net/wmts/1.0"), Some("Contents"), __scope, false) } getOrElse {Nil},
        __obj.Themes flatMap { scalaxb.toXML[opengis.wmts.Themes](_, Some("http://www.opengis.net/wmts/1.0"), Some("Themes"), __scope, false) },
        __obj.WSDL flatMap { scalaxb.toXML[opengis.ows.OnlineResourceTypable](_, Some("http://www.opengis.net/wmts/1.0"), Some("WSDL"), __scope, false) },
        __obj.ServiceMetadataURL flatMap { scalaxb.toXML[opengis.ows.OnlineResourceTypable](_, Some("http://www.opengis.net/wmts/1.0"), Some("ServiceMetadataURL"), __scope, false) })

  }

  trait DefaultOpengiswmts_ContentsTypeFormat extends scalaxb.ElemNameParser[opengis.wmts.ContentsType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    override def typeName: Option[String] = Some("ContentsType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wmts.ContentsType] =
      phrase(safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Layer")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wmts.LayerType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Layer")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wmts.LayerType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "DatasetDescriptionSummary")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.DatasetDescriptionSummaryBaseTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "OtherSource")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "TileMatrixSet")) ^^
      { case p1 ~ p2 ~ p3 =>
      opengis.wmts.ContentsType(p1,
        p2 map { scalaxb.fromXML[opengis.ows.MetadataType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.wmts.TileMatrixSet](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wmts.ContentsType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.DatasetDescriptionSummary flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) },
        __obj.OtherSource flatMap { scalaxb.toXML[opengis.ows.MetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("OtherSource"), __scope, false) },
        __obj.TileMatrixSet flatMap { scalaxb.toXML[opengis.wmts.TileMatrixSet](_, Some("http://www.opengis.net/wmts/1.0"), Some("TileMatrixSet"), __scope, false) })

  }

  trait DefaultOpengiswmts_LayerTypeFormat extends scalaxb.ElemNameParser[opengis.wmts.LayerType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    override def typeName: Option[String] = Some("LayerType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wmts.LayerType] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Title")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Keywords")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "WGS84BoundingBox")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Identifier")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "WGS84BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.WGS84BoundingBoxType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "WGS84BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.WGS84BoundingBoxType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.BoundingBoxTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Metadata")) ~ 
      safeRep(((scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Layer")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wmts.LayerType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Layer")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wmts.LayerType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "DatasetDescriptionSummary")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.DatasetDescriptionSummaryBaseTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Style")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Format")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "InfoFormat")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Dimension")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "TileMatrixSetLink")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "ResourceURL")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 ~ p10 ~ p11 ~ p12 ~ p13 ~ p14 =>
      opengis.wmts.LayerType(p1 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        p4 map { scalaxb.fromXML[opengis.ows.WGS84BoundingBoxType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.ows.CodeTypable](p5, scalaxb.ElemName(node) :: stack),
        p6,
        p7 map { scalaxb.fromXML[opengis.ows.MetadataType](_, scalaxb.ElemName(node) :: stack) },
        p8,
        p9 map { scalaxb.fromXML[opengis.wmts.Style](_, scalaxb.ElemName(node) :: stack) },
        p10 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p11 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p12 map { scalaxb.fromXML[opengis.wmts.Dimension](_, scalaxb.ElemName(node) :: stack) },
        p13 map { scalaxb.fromXML[opengis.wmts.TileMatrixSetLink](_, scalaxb.ElemName(node) :: stack) },
        p14 map { scalaxb.fromXML[opengis.wmts.URLTemplateType](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wmts.LayerType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Title"), __scope, false) },
        __obj.AbstractValue flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Abstract"), __scope, false) },
        __obj.Keywords flatMap { scalaxb.toXML[opengis.ows.KeywordsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Keywords"), __scope, false) },
        __obj.WGS84BoundingBox flatMap { scalaxb.toXML[opengis.ows.WGS84BoundingBoxType](_, Some("http://www.opengis.net/ows/1.1"), Some("WGS84BoundingBox"), __scope, false) },
        scalaxb.toXML[opengis.ows.CodeTypable](__obj.Identifier, Some("http://www.opengis.net/ows/1.1"), Some("Identifier"), __scope, false),
        __obj.BoundingBox flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) },
        __obj.Metadata flatMap { scalaxb.toXML[opengis.ows.MetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("Metadata"), __scope, false) },
        __obj.DatasetDescriptionSummary flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) },
        __obj.Style flatMap { scalaxb.toXML[opengis.wmts.Style](_, Some("http://www.opengis.net/wmts/1.0"), Some("Style"), __scope, false) },
        __obj.Format flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/wmts/1.0"), Some("Format"), __scope, false) },
        __obj.InfoFormat flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/wmts/1.0"), Some("InfoFormat"), __scope, false) },
        __obj.Dimension flatMap { scalaxb.toXML[opengis.wmts.Dimension](_, Some("http://www.opengis.net/wmts/1.0"), Some("Dimension"), __scope, false) },
        __obj.TileMatrixSetLink flatMap { scalaxb.toXML[opengis.wmts.TileMatrixSetLink](_, Some("http://www.opengis.net/wmts/1.0"), Some("TileMatrixSetLink"), __scope, false) },
        __obj.ResourceURL flatMap { scalaxb.toXML[opengis.wmts.URLTemplateType](_, Some("http://www.opengis.net/wmts/1.0"), Some("ResourceURL"), __scope, false) })

  }

  trait DefaultOpengiswmts_StyleFormat extends scalaxb.ElemNameParser[opengis.wmts.Style] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wmts.Style] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Title")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Keywords")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Identifier")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "LegendURL")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.wmts.Style(p1 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.ows.CodeTypable](p4, scalaxb.ElemName(node) :: stack),
        p5 map { scalaxb.fromXML[opengis.wmts.LegendURL](_, scalaxb.ElemName(node) :: stack) },
        scala.collection.immutable.ListMap(List(
        (node \ "@isDefault").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Boolean](x, scalaxb.ElemName(node) :: stack)) } map { "@isDefault" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wmts.Style, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@isDefault", _) => __obj.isDefault foreach { x => attr = scala.xml.Attribute(null, "isDefault", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wmts.Style, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Title"), __scope, false) },
        __obj.AbstractValue flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Abstract"), __scope, false) },
        __obj.Keywords flatMap { scalaxb.toXML[opengis.ows.KeywordsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Keywords"), __scope, false) },
        scalaxb.toXML[opengis.ows.CodeTypable](__obj.Identifier, Some("http://www.opengis.net/ows/1.1"), Some("Identifier"), __scope, false),
        __obj.LegendURL flatMap { scalaxb.toXML[opengis.wmts.LegendURL](_, Some("http://www.opengis.net/wmts/1.0"), Some("LegendURL"), __scope, false) })

  }

  trait DefaultOpengiswmts_LegendURLFormat extends scalaxb.XMLFormat[opengis.wmts.LegendURL] with scalaxb.CanWriteChildNodes[opengis.wmts.LegendURL] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wmts.LegendURL] = seq match {
      case node: scala.xml.Node => Right(opengis.wmts.LegendURL(scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@format").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@format" -> _ },
        (node \ "@minScaleDenominator").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Double](x, scalaxb.ElemName(node) :: stack)) } map { "@minScaleDenominator" -> _ },
        (node \ "@maxScaleDenominator").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[Double](x, scalaxb.ElemName(node) :: stack)) } map { "@maxScaleDenominator" -> _ },
        (node \ "@width").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@width" -> _ },
        (node \ "@height").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[BigInt](x, scalaxb.ElemName(node) :: stack)) } map { "@height" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.wmts.LegendURL, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@format", _) => __obj.format foreach { x => attr = scala.xml.Attribute(null, "format", x.toString, attr) }
        case ("@minScaleDenominator", _) => __obj.minScaleDenominator foreach { x => attr = scala.xml.Attribute(null, "minScaleDenominator", x.toString, attr) }
        case ("@maxScaleDenominator", _) => __obj.maxScaleDenominator foreach { x => attr = scala.xml.Attribute(null, "maxScaleDenominator", x.toString, attr) }
        case ("@width", _) => __obj.width foreach { x => attr = scala.xml.Attribute(null, "width", x.toString, attr) }
        case ("@height", _) => __obj.height foreach { x => attr = scala.xml.Attribute(null, "height", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wmts.LegendURL, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengiswmts_DimensionFormat extends scalaxb.ElemNameParser[opengis.wmts.Dimension] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wmts.Dimension] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Title")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Keywords")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Identifier")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "UOM")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "UnitSymbol")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Default")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Current")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Value")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 =>
      opengis.wmts.Dimension(p1 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.ows.CodeTypable](p4, scalaxb.ElemName(node) :: stack),
        p5.headOption map { scalaxb.fromXML[opengis.ows.DomainMetadataType](_, scalaxb.ElemName(node) :: stack) },
        p6.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p7.headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
        p8.headOption map { scalaxb.fromXML[Boolean](_, scalaxb.ElemName(node) :: stack) },
        p9 map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wmts.Dimension, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Title"), __scope, false) },
        __obj.AbstractValue flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Abstract"), __scope, false) },
        __obj.Keywords flatMap { scalaxb.toXML[opengis.ows.KeywordsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Keywords"), __scope, false) },
        scalaxb.toXML[opengis.ows.CodeTypable](__obj.Identifier, Some("http://www.opengis.net/ows/1.1"), Some("Identifier"), __scope, false),
        __obj.UOM map { scalaxb.toXML[opengis.ows.DomainMetadataType](_, Some("http://www.opengis.net/ows/1.1"), Some("UOM"), __scope, false) } getOrElse {Nil},
        __obj.UnitSymbol map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wmts/1.0"), Some("UnitSymbol"), __scope, false) } getOrElse {Nil},
        __obj.Default map { scalaxb.toXML[String](_, Some("http://www.opengis.net/wmts/1.0"), Some("Default"), __scope, false) } getOrElse {Nil},
        __obj.Current map { scalaxb.toXML[Boolean](_, Some("http://www.opengis.net/wmts/1.0"), Some("Current"), __scope, false) } getOrElse {Nil},
        __obj.Value flatMap { scalaxb.toXML[String](_, Some("http://www.opengis.net/wmts/1.0"), Some("Value"), __scope, false) })

  }

  trait DefaultOpengiswmts_TileMatrixSetLinkFormat extends scalaxb.ElemNameParser[opengis.wmts.TileMatrixSetLink] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wmts.TileMatrixSetLink] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "TileMatrixSet")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "TileMatrixSetLimits")) ^^
      { case p1 ~ p2 =>
      opengis.wmts.TileMatrixSetLink(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        p2.headOption map { scalaxb.fromXML[opengis.wmts.TileMatrixSetLimits](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wmts.TileMatrixSetLink, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.TileMatrixSet, Some("http://www.opengis.net/wmts/1.0"), Some("TileMatrixSet"), __scope, false),
        __obj.TileMatrixSetLimits map { scalaxb.toXML[opengis.wmts.TileMatrixSetLimits](_, Some("http://www.opengis.net/wmts/1.0"), Some("TileMatrixSetLimits"), __scope, false) } getOrElse {Nil})

  }

  trait DefaultOpengiswmts_TileMatrixSetLimitsFormat extends scalaxb.ElemNameParser[opengis.wmts.TileMatrixSetLimits] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wmts.TileMatrixSetLimits] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "TileMatrixLimits")) ^^
      { case p1 =>
      opengis.wmts.TileMatrixSetLimits(p1 map { scalaxb.fromXML[opengis.wmts.TileMatrixLimits](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wmts.TileMatrixSetLimits, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.TileMatrixLimits flatMap { scalaxb.toXML[opengis.wmts.TileMatrixLimits](_, Some("http://www.opengis.net/wmts/1.0"), Some("TileMatrixLimits"), __scope, false) })

  }

  trait DefaultOpengiswmts_TileMatrixLimitsFormat extends scalaxb.ElemNameParser[opengis.wmts.TileMatrixLimits] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wmts.TileMatrixLimits] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "TileMatrix")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "MinTileRow")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "MaxTileRow")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "MinTileCol")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "MaxTileCol")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 =>
      opengis.wmts.TileMatrixLimits(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[BigInt](p2, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[BigInt](p3, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[BigInt](p4, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[BigInt](p5, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.wmts.TileMatrixLimits, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.TileMatrix, Some("http://www.opengis.net/wmts/1.0"), Some("TileMatrix"), __scope, false),
        scalaxb.toXML[BigInt](__obj.MinTileRow, Some("http://www.opengis.net/wmts/1.0"), Some("MinTileRow"), __scope, false),
        scalaxb.toXML[BigInt](__obj.MaxTileRow, Some("http://www.opengis.net/wmts/1.0"), Some("MaxTileRow"), __scope, false),
        scalaxb.toXML[BigInt](__obj.MinTileCol, Some("http://www.opengis.net/wmts/1.0"), Some("MinTileCol"), __scope, false),
        scalaxb.toXML[BigInt](__obj.MaxTileCol, Some("http://www.opengis.net/wmts/1.0"), Some("MaxTileCol"), __scope, false))

  }

  def buildOpengiswmts_KnownResourceTypeCodeTypeFormat = new DefaultOpengiswmts_KnownResourceTypeCodeTypeFormat {}
  trait DefaultOpengiswmts_KnownResourceTypeCodeTypeFormat extends scalaxb.XMLFormat[opengis.wmts.KnownResourceTypeCodeType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.wmts.KnownResourceTypeCodeType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.wmts.KnownResourceTypeCodeType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("tile")) => opengis.wmts.Tile
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("FeatureInfo")) => opengis.wmts.FeatureInfo

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wmts.KnownResourceTypeCodeType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.wmts.KnownResourceTypeCodeType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengiswmts_URLTemplateTypeFormat extends scalaxb.XMLFormat[opengis.wmts.URLTemplateType] with scalaxb.CanWriteChildNodes[opengis.wmts.URLTemplateType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wmts.URLTemplateType] = seq match {
      case node: scala.xml.Node => Right(opengis.wmts.URLTemplateType(scala.collection.immutable.ListMap(List(
        (node \ "@format").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@format" -> _ },
        (node \ "@resourceType").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@resourceType" -> _ },
        (node \ "@template").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@template" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.wmts.URLTemplateType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@format", _) => attr = scala.xml.Attribute(null, "format", __obj.format.toString, attr)
        case ("@resourceType", _) => attr = scala.xml.Attribute(null, "resourceType", __obj.resourceType.toString, attr)
        case ("@template", _) => attr = scala.xml.Attribute(null, "template", __obj.template.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wmts.URLTemplateType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Nil


  }

  trait DefaultOpengiswmts_TileMatrixSetFormat extends scalaxb.ElemNameParser[opengis.wmts.TileMatrixSet] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wmts.TileMatrixSet] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Title")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Keywords")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Identifier")) ~ 
      opt(((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "WGS84BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.WGS84BoundingBoxType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "WGS84BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.WGS84BoundingBoxType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "BoundingBox")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.ows.BoundingBoxTypable](x, scalaxb.ElemName(node) :: stack))))) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "SupportedCRS")) ~ 
      opt(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "WellKnownScaleSet")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "TileMatrix")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 =>
      opengis.wmts.TileMatrixSet(p1 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.ows.CodeTypable](p4, scalaxb.ElemName(node) :: stack),
        p5,
        scalaxb.fromXML[java.net.URI](p6, scalaxb.ElemName(node) :: stack),
        p7.headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
        p8 map { scalaxb.fromXML[opengis.wmts.TileMatrix](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wmts.TileMatrixSet, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Title"), __scope, false) },
        __obj.AbstractValue flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Abstract"), __scope, false) },
        __obj.Keywords flatMap { scalaxb.toXML[opengis.ows.KeywordsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Keywords"), __scope, false) },
        scalaxb.toXML[opengis.ows.CodeTypable](__obj.Identifier, Some("http://www.opengis.net/ows/1.1"), Some("Identifier"), __scope, false),
        __obj.BoundingBox map { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) } getOrElse {Nil},
        scalaxb.toXML[java.net.URI](__obj.SupportedCRS, Some("http://www.opengis.net/ows/1.1"), Some("SupportedCRS"), __scope, false),
        __obj.WellKnownScaleSet map { scalaxb.toXML[java.net.URI](_, Some("http://www.opengis.net/wmts/1.0"), Some("WellKnownScaleSet"), __scope, false) } getOrElse {Nil},
        __obj.TileMatrix flatMap { scalaxb.toXML[opengis.wmts.TileMatrix](_, Some("http://www.opengis.net/wmts/1.0"), Some("TileMatrix"), __scope, false) })

  }

  trait DefaultOpengiswmts_TileMatrixFormat extends scalaxb.ElemNameParser[opengis.wmts.TileMatrix] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wmts.TileMatrix] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Title")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Keywords")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Identifier")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "ScaleDenominator")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "TopLeftCorner")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "TileWidth")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "TileHeight")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "MatrixWidth")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "MatrixHeight")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 ~ p9 ~ p10 =>
      opengis.wmts.TileMatrix(p1 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.ows.CodeTypable](p4, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[Double](p5, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[Seq[Double]](p6, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[BigInt](p7, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[BigInt](p8, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[BigInt](p9, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[BigInt](p10, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.wmts.TileMatrix, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Title"), __scope, false) },
        __obj.AbstractValue flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Abstract"), __scope, false) },
        __obj.Keywords flatMap { scalaxb.toXML[opengis.ows.KeywordsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Keywords"), __scope, false) },
        scalaxb.toXML[opengis.ows.CodeTypable](__obj.Identifier, Some("http://www.opengis.net/ows/1.1"), Some("Identifier"), __scope, false),
        scalaxb.toXML[Double](__obj.ScaleDenominator, Some("http://www.opengis.net/wmts/1.0"), Some("ScaleDenominator"), __scope, false),
        scalaxb.toXML[Seq[Double]](__obj.TopLeftCorner, Some("http://www.opengis.net/wmts/1.0"), Some("TopLeftCorner"), __scope, false),
        scalaxb.toXML[BigInt](__obj.TileWidth, Some("http://www.opengis.net/wmts/1.0"), Some("TileWidth"), __scope, false),
        scalaxb.toXML[BigInt](__obj.TileHeight, Some("http://www.opengis.net/wmts/1.0"), Some("TileHeight"), __scope, false),
        scalaxb.toXML[BigInt](__obj.MatrixWidth, Some("http://www.opengis.net/wmts/1.0"), Some("MatrixWidth"), __scope, false),
        scalaxb.toXML[BigInt](__obj.MatrixHeight, Some("http://www.opengis.net/wmts/1.0"), Some("MatrixHeight"), __scope, false))

  }

  trait DefaultOpengiswmts_ThemesFormat extends scalaxb.ElemNameParser[opengis.wmts.Themes] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wmts.Themes] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Theme")) ^^
      { case p1 =>
      opengis.wmts.Themes(p1 map { scalaxb.fromXML[opengis.wmts.Theme](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wmts.Themes, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.Theme flatMap { scalaxb.toXML[opengis.wmts.Theme](_, Some("http://www.opengis.net/wmts/1.0"), Some("Theme"), __scope, false) })

  }

  trait DefaultOpengiswmts_ThemeFormat extends scalaxb.ElemNameParser[opengis.wmts.Theme] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wmts.Theme] =
      phrase(safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Title")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Abstract")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Keywords")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/ows/1.1"), "Identifier")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Theme")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "LayerRef")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 =>
      opengis.wmts.Theme(p1 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p2 map { scalaxb.fromXML[opengis.ows.LanguageStringType](_, scalaxb.ElemName(node) :: stack) },
        p3 map { scalaxb.fromXML[opengis.ows.KeywordsType](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[opengis.ows.CodeTypable](p4, scalaxb.ElemName(node) :: stack),
        p5 map { scalaxb.fromXML[opengis.wmts.Theme](_, scalaxb.ElemName(node) :: stack) },
        p6 map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) }) })
    
    def writesChildNodes(__obj: opengis.wmts.Theme, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(__obj.Title flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Title"), __scope, false) },
        __obj.AbstractValue flatMap { scalaxb.toXML[opengis.ows.LanguageStringType](_, Some("http://www.opengis.net/ows/1.1"), Some("Abstract"), __scope, false) },
        __obj.Keywords flatMap { scalaxb.toXML[opengis.ows.KeywordsType](_, Some("http://www.opengis.net/ows/1.1"), Some("Keywords"), __scope, false) },
        scalaxb.toXML[opengis.ows.CodeTypable](__obj.Identifier, Some("http://www.opengis.net/ows/1.1"), Some("Identifier"), __scope, false),
        __obj.Theme flatMap { scalaxb.toXML[opengis.wmts.Theme](_, Some("http://www.opengis.net/wmts/1.0"), Some("Theme"), __scope, false) },
        __obj.LayerRef flatMap { scalaxb.toXML[java.net.URI](_, Some("http://www.opengis.net/wmts/1.0"), Some("LayerRef"), __scope, false) })

  }

  trait DefaultOpengiswmts_GetFeatureInfoFormat extends scalaxb.ElemNameParser[opengis.wmts.GetFeatureInfo] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wmts.GetFeatureInfo] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "GetTile")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "J")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "I")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "InfoFormat")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 =>
      opengis.wmts.GetFeatureInfo(scalaxb.fromXML[opengis.wmts.GetTile](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[BigInt](p2, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[BigInt](p3, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p4, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("WMTS"), scalaxb.ElemName(node) :: stack))) map { "@service" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("1.0.0"), scalaxb.ElemName(node) :: stack))) map { "@version" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wmts.GetFeatureInfo, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@service", _) => attr = scala.xml.Attribute(null, "service", __obj.service.toString, attr)
        case ("@version", _) => attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wmts.GetFeatureInfo, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[opengis.wmts.GetTile](__obj.GetTile, Some("http://www.opengis.net/wmts/1.0"), Some("GetTile"), __scope, false),
        scalaxb.toXML[BigInt](__obj.J, Some("http://www.opengis.net/wmts/1.0"), Some("J"), __scope, false),
        scalaxb.toXML[BigInt](__obj.I, Some("http://www.opengis.net/wmts/1.0"), Some("I"), __scope, false),
        scalaxb.toXML[String](__obj.InfoFormat, Some("http://www.opengis.net/wmts/1.0"), Some("InfoFormat"), __scope, false))

  }

  trait DefaultOpengiswmts_FeatureInfoResponseFormat extends scalaxb.ElemNameParser[opengis.wmts.FeatureInfoResponse] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wmts.FeatureInfoResponse] =
      phrase((((scalaxb.ElemName(Some("http://www.opengis.net/wfs"), "FeatureCollection")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wfs.FeatureCollectionType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "TextPayload")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wmts.TextPayload](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "BinaryPayload")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[opengis.wmts.BinaryPayload](x, scalaxb.ElemName(node) :: stack)))) | 
      ((any(_ => true) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack))))) ^^
      { case p1 =>
      opengis.wmts.FeatureInfoResponse(p1) })
    
    def writesChildNodes(__obj: opengis.wmts.FeatureInfoResponse, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      ((Some(__obj.featureinforesponseoption) map {x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false)}).get)

  }

  trait DefaultOpengiswmts_GetTileFormat extends scalaxb.ElemNameParser[opengis.wmts.GetTile] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wmts.GetTile] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Layer")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Style")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Format")) ~ 
      safeRep(scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "DimensionNameValue")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "TileMatrixSet")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "TileMatrix")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "TileRow")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "TileCol")) ^^
      { case p1 ~ p2 ~ p3 ~ p4 ~ p5 ~ p6 ~ p7 ~ p8 =>
      opengis.wmts.GetTile(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p2, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p3, scalaxb.ElemName(node) :: stack),
        p4 map { scalaxb.fromXML[opengis.wmts.DimensionNameValue](_, scalaxb.ElemName(node) :: stack) },
        scalaxb.fromXML[String](p5, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p6, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[BigInt](p7, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[BigInt](p8, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("WMTS"), scalaxb.ElemName(node) :: stack))) map { "@service" -> _ },
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[String](scala.xml.Text("1.0.0"), scalaxb.ElemName(node) :: stack))) map { "@version" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: opengis.wmts.GetTile, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@service", _) => attr = scala.xml.Attribute(null, "service", __obj.service.toString, attr)
        case ("@version", _) => attr = scala.xml.Attribute(null, "version", __obj.version.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wmts.GetTile, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.Layer, Some("http://www.opengis.net/wmts/1.0"), Some("Layer"), __scope, false),
        scalaxb.toXML[String](__obj.Style, Some("http://www.opengis.net/wmts/1.0"), Some("Style"), __scope, false),
        scalaxb.toXML[String](__obj.Format, Some("http://www.opengis.net/wmts/1.0"), Some("Format"), __scope, false),
        __obj.DimensionNameValue flatMap { scalaxb.toXML[opengis.wmts.DimensionNameValue](_, Some("http://www.opengis.net/wmts/1.0"), Some("DimensionNameValue"), __scope, false) },
        scalaxb.toXML[String](__obj.TileMatrixSet, Some("http://www.opengis.net/wmts/1.0"), Some("TileMatrixSet"), __scope, false),
        scalaxb.toXML[String](__obj.TileMatrix, Some("http://www.opengis.net/wmts/1.0"), Some("TileMatrix"), __scope, false),
        scalaxb.toXML[BigInt](__obj.TileRow, Some("http://www.opengis.net/wmts/1.0"), Some("TileRow"), __scope, false),
        scalaxb.toXML[BigInt](__obj.TileCol, Some("http://www.opengis.net/wmts/1.0"), Some("TileCol"), __scope, false))

  }

  trait DefaultOpengiswmts_DimensionNameValueFormat extends scalaxb.XMLFormat[opengis.wmts.DimensionNameValue] with scalaxb.CanWriteChildNodes[opengis.wmts.DimensionNameValue] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wmts.DimensionNameValue] = seq match {
      case node: scala.xml.Node => Right(opengis.wmts.DimensionNameValue(scalaxb.fromXML[String](node, scalaxb.ElemName(node) :: stack),
        scala.collection.immutable.ListMap(List(
        (node \ "@name").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@name" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    override def writesAttribute(__obj: opengis.wmts.DimensionNameValue, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@name", _) => attr = scala.xml.Attribute(null, "name", __obj.name.toString, attr)
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: opengis.wmts.DimensionNameValue, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq(scala.xml.Text(__obj.value.toString))


  }

  def buildOpengiswmts_RequestServiceTypeFormat = new DefaultOpengiswmts_RequestServiceTypeFormat {}
  trait DefaultOpengiswmts_RequestServiceTypeFormat extends scalaxb.XMLFormat[opengis.wmts.RequestServiceType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.wmts.RequestServiceType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.wmts.RequestServiceType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("WMTS")) => opengis.wmts.WMTS

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wmts.RequestServiceType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.wmts.RequestServiceType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengiswmts_VersionTypeFormat = new DefaultOpengiswmts_VersionTypeFormat {}
  trait DefaultOpengiswmts_VersionTypeFormat extends scalaxb.XMLFormat[opengis.wmts.VersionType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.wmts.VersionType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.wmts.VersionType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("1.0.0")) => opengis.wmts.Number1u460u460

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wmts.VersionType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.wmts.VersionType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengiswmts_GetCapabilitiesValueTypeFormat = new DefaultOpengiswmts_GetCapabilitiesValueTypeFormat {}
  trait DefaultOpengiswmts_GetCapabilitiesValueTypeFormat extends scalaxb.XMLFormat[opengis.wmts.GetCapabilitiesValueType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.wmts.GetCapabilitiesValueType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.wmts.GetCapabilitiesValueType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("GetCapabilities")) => opengis.wmts.GetCapabilitiesValue

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wmts.GetCapabilitiesValueType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.wmts.GetCapabilitiesValueType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengiswmts_GetTileValueTypeFormat = new DefaultOpengiswmts_GetTileValueTypeFormat {}
  trait DefaultOpengiswmts_GetTileValueTypeFormat extends scalaxb.XMLFormat[opengis.wmts.GetTileValueType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.wmts.GetTileValueType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.wmts.GetTileValueType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("GetTile")) => opengis.wmts.GetTileValue

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wmts.GetTileValueType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.wmts.GetTileValueType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildOpengiswmts_GetFeatureInfoValueTypeFormat = new DefaultOpengiswmts_GetFeatureInfoValueTypeFormat {}
  trait DefaultOpengiswmts_GetFeatureInfoValueTypeFormat extends scalaxb.XMLFormat[opengis.wmts.GetFeatureInfoValueType] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): opengis.wmts.GetFeatureInfoValueType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, opengis.wmts.GetFeatureInfoValueType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("GetFeatureInfo")) => opengis.wmts.GetFeatureInfoValue

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, opengis.wmts.GetFeatureInfoValueType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: opengis.wmts.GetFeatureInfoValueType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultOpengiswmts_BinaryPayloadFormat extends scalaxb.ElemNameParser[opengis.wmts.BinaryPayload] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wmts.BinaryPayload] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Format")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "BinaryContent")) ^^
      { case p1 ~ p2 =>
      opengis.wmts.BinaryPayload(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[scalaxb.Base64Binary](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.wmts.BinaryPayload, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.Format, Some("http://www.opengis.net/wmts/1.0"), Some("Format"), __scope, false),
        scalaxb.toXML[scalaxb.Base64Binary](__obj.BinaryContent, Some("http://www.opengis.net/wmts/1.0"), Some("BinaryContent"), __scope, false))

  }

  trait DefaultOpengiswmts_TextPayloadFormat extends scalaxb.ElemNameParser[opengis.wmts.TextPayload] {
    val targetNamespace: Option[String] = Some("http://www.opengis.net/wmts/1.0")
    
    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[opengis.wmts.TextPayload] =
      phrase((scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "Format")) ~ 
      (scalaxb.ElemName(Some("http://www.opengis.net/wmts/1.0"), "TextContent")) ^^
      { case p1 ~ p2 =>
      opengis.wmts.TextPayload(scalaxb.fromXML[String](p1, scalaxb.ElemName(node) :: stack),
        scalaxb.fromXML[String](p2, scalaxb.ElemName(node) :: stack)) })
    
    def writesChildNodes(__obj: opengis.wmts.TextPayload, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      Seq.concat(scalaxb.toXML[String](__obj.Format, Some("http://www.opengis.net/wmts/1.0"), Some("Format"), __scope, false),
        scalaxb.toXML[String](__obj.TextContent, Some("http://www.opengis.net/wmts/1.0"), Some("TextContent"), __scope, false))

  }

  def buildXlink_TypeTypeFormat = new DefaultXlink_TypeTypeFormat {}
  trait DefaultXlink_TypeTypeFormat extends scalaxb.XMLFormat[xlink.TypeType] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/1999/xlink")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): xlink.TypeType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, xlink.TypeType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("simple")) => xlink.Simple
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("extended")) => xlink.ExtendedValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("title")) => xlink.Title
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("resource")) => xlink.Resource
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("locator")) => xlink.Locator
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("arc")) => xlink.Arc

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, xlink.TypeType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: xlink.TypeType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildXlink_ShowTypeFormat = new DefaultXlink_ShowTypeFormat {}
  trait DefaultXlink_ShowTypeFormat extends scalaxb.XMLFormat[xlink.ShowType] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/1999/xlink")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): xlink.ShowType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, xlink.ShowType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("new")) => xlink.New
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("replace")) => xlink.Replace
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("embed")) => xlink.Embed
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("other")) => xlink.Other
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("none")) => xlink.NoneType

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, xlink.ShowType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: xlink.ShowType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  def buildXlink_ActuateTypeFormat = new DefaultXlink_ActuateTypeFormat {}
  trait DefaultXlink_ActuateTypeFormat extends scalaxb.XMLFormat[xlink.ActuateType] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/1999/xlink")
    
    def fromString(value: String, scope: scala.xml.NamespaceBinding): xlink.ActuateType =
        (fromString0(value, scope)).apply(scalaxb.fromXML[String](scala.xml.Text(value)))

    private def fromString0(value: String, scope: scala.xml.NamespaceBinding): PartialFunction[Any, xlink.ActuateType] = {
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("onLoad")) => xlink.OnLoad
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("onRequest")) => xlink.OnRequest
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("other")) => xlink.OtherValue
      case x: String if x == scalaxb.fromXML[String](scala.xml.Text("none")) => xlink.NoneTypeValue

    }



    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, xlink.ActuateType] = seq match {
      case elem: scala.xml.Elem => Right(fromString(elem.text, elem.scope))
      case _ => Right(fromString(seq.text, scala.xml.TopScope))
    }
    
    def writes(__obj: xlink.ActuateType, __namespace: Option[String], __elementLabel: Option[String],
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      scala.xml.Elem(scalaxb.Helper.getPrefix(__namespace, __scope).orNull, 
        __elementLabel getOrElse { sys.error("missing element label.") },
        scala.xml.Null, __scope, true, scala.xml.Text(__obj.toString))
  }

  trait DefaultXlink_SimpleTypeFormat extends scalaxb.ElemNameParser[xlink.SimpleType] with Xlink_SimpleModelGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.w3.org/1999/xlink")
    
    override def typeName: Option[String] = Some("simple")

    override def isMixed: Boolean = true

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[xlink.SimpleType] =
      phrase(optTextRecord ~ 
      (parsemixedSimpleModelGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      optTextRecord ^^
      { case p1 ~ p2 ~ p3 =>
      xlink.SimpleType(Seq.concat(p1.toList,
        p2,
        p3.toList),
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: xlink.SimpleType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: xlink.SimpleType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      __obj.mixed.toSeq flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) }

  }

  trait DefaultXlink_ExtendedFormat extends scalaxb.ElemNameParser[xlink.Extended] with Xlink_ExtendedModelGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.w3.org/1999/xlink")
    
    override def typeName: Option[String] = Some("extended")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[xlink.Extended] =
      phrase(safeRep(parseExtendedModelGroup(node, scalaxb.ElemName(node) :: stack)) ^^
      { case p1 =>
      xlink.Extended(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("extended"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: xlink.Extended, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: xlink.Extended, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (__obj.extendedModelOption1 flatMap { x => scalaxb.toXML[scalaxb.DataRecord[xlink.ExtendedModelOption]](x, x.namespace, x.key, __scope, false) })

  }

  trait DefaultXlink_TitleEltTypeFormat extends scalaxb.ElemNameParser[xlink.TitleEltType] with Xlink_TitleModelGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.w3.org/1999/xlink")
    
    override def typeName: Option[String] = Some("titleEltType")

    override def isMixed: Boolean = true

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[xlink.TitleEltType] =
      phrase(optTextRecord ~ 
      (parsemixedTitleModelGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      optTextRecord ^^
      { case p1 ~ p2 ~ p3 =>
      xlink.TitleEltType(Seq.concat(p1.toList,
        p2,
        p3.toList),
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("title"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/XML/1998/namespace}lang").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/XML/1998/namespace}lang" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: xlink.TitleEltType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/XML/1998/namespace}lang", _) => __obj.xmllang foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/XML/1998/namespace"), "lang", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: xlink.TitleEltType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      __obj.mixed.toSeq flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) }

  }

  trait DefaultXlink_ResourceTypeFormat extends scalaxb.ElemNameParser[xlink.ResourceType] with Xlink_ResourceModelGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.w3.org/1999/xlink")
    
    override def typeName: Option[String] = Some("resourceType")

    override def isMixed: Boolean = true

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[xlink.ResourceType] =
      phrase(optTextRecord ~ 
      (parsemixedResourceModelGroup(node, scalaxb.ElemName(node) :: stack)) ~ 
      optTextRecord ^^
      { case p1 ~ p2 ~ p3 =>
      xlink.ResourceType(Seq.concat(p1.toList,
        p2,
        p3.toList),
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("resource"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}label").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}label" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: xlink.ResourceType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}label", _) => __obj.xlinklabel foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "label", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: xlink.ResourceType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      __obj.mixed.toSeq flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, false) }

  }

  trait DefaultXlink_LocatorTypeFormat extends scalaxb.ElemNameParser[xlink.LocatorType] with Xlink_LocatorModelGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.w3.org/1999/xlink")
    
    override def typeName: Option[String] = Some("locatorType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[xlink.LocatorType] =
      phrase((parseLocatorModelGroup(node, scalaxb.ElemName(node) :: stack)) ^^
      { case p1 =>
      xlink.LocatorType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("locator"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}href" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}role" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}label").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}label" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: xlink.LocatorType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}href", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", __obj.xlinkhref.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}role", _) => __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}label", _) => __obj.xlinklabel foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "label", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: xlink.LocatorType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[xlink.LocatorModelSequence](__obj.locatorModelSequence1, None, Some("locatorModelSequence1"), __scope, false))

  }

  trait DefaultXlink_ArcTypeFormat extends scalaxb.ElemNameParser[xlink.ArcType] with Xlink_ArcModelGroupFormat {
    val targetNamespace: Option[String] = Some("http://www.w3.org/1999/xlink")
    
    override def typeName: Option[String] = Some("arcType")

    def parser(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[xlink.ArcType] =
      phrase((parseArcModelGroup(node, scalaxb.ElemName(node) :: stack)) ^^
      { case p1 =>
      xlink.ArcType(p1,
        scala.collection.immutable.ListMap(List(
        Some(scalaxb.DataRecord(None, None, scalaxb.fromXML[xlink.TypeType](scala.xml.Text("arc"), scalaxb.ElemName(node) :: stack))) map { "@{http://www.w3.org/1999/xlink}type" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[java.net.URI](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}arcrole" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}title" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ShowType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}show" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[xlink.ActuateType](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}actuate" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}from").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}from" -> _ },
        (node \ "@{http://www.w3.org/1999/xlink}to").headOption map { x => scalaxb.DataRecord(x, node, scalaxb.fromXML[String](x, scalaxb.ElemName(node) :: stack)) } map { "@{http://www.w3.org/1999/xlink}to" -> _ }
        ).flatten[(String, scalaxb.DataRecord[Any])]: _*)) })
    
    override def writesAttribute(__obj: xlink.ArcType, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = scala.xml.Null
      __obj.attributes.toList map {
        case ("@{http://www.w3.org/1999/xlink}type", _) => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
        case ("@{http://www.w3.org/1999/xlink}arcrole", _) => __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}title", _) => __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}show", _) => __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}actuate", _) => __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}from", _) => __obj.xlinkfrom foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "from", x.toString, attr) }
        case ("@{http://www.w3.org/1999/xlink}to", _) => __obj.xlinkto foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "to", x.toString, attr) }
        case (key, x) => attr = scala.xml.Attribute((x.namespace map { __scope.getPrefix(_) }).orNull, x.key.orNull, x.value.toString, attr)
      }
      attr
    }

    def writesChildNodes(__obj: xlink.ArcType, __scope: scala.xml.NamespaceBinding): Seq[scala.xml.Node] =
      (scalaxb.toXML[xlink.ArcModelSequence](__obj.arcModelSequence1, None, Some("arcModelSequence1"), __scope, false))

  }


  trait Xlink_ArcModelGroupFormat extends scalaxb.AnyElemNameParser {
    def parseArcModelGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[xlink.ArcModelSequence] =
      ((safeRep(scalaxb.ElemName(Some("http://www.w3.org/1999/xlink"), "title"))) ^^ 
        { case p1 => xlink.ArcModelSequence(p1 map { scalaxb.fromXML[xlink.TitleEltType](_, scalaxb.ElemName(node) :: stack) }: _*) })
  
    def parseArcModelGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[Any]] =
      ((safeRep(scalaxb.ElemName(Some("http://www.w3.org/1999/xlink"), "title"))) ^^ 
        { case p1 => scalaxb.DataRecord(xlink.ArcModelSequence(p1 map { scalaxb.fromXML[xlink.TitleEltType](_, scalaxb.ElemName(node) :: stack) }: _*)) })
    
    def parsemixedArcModelGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      (((safeRep(scalaxb.ElemName(Some("http://www.w3.org/1999/xlink"), "title")) ^^ 
      (_.toSeq map { x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[xlink.TitleEltType](x, scalaxb.ElemName(node) :: stack)) })) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(p1,
        p2.toList) })
  }

  trait DefaultXlink_ArcModelSequenceFormat extends scalaxb.XMLFormat[xlink.ArcModelSequence] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, xlink.ArcModelSequence] = Left("don't call me.")
    
    def writes(__obj: xlink.ArcModelSequence, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      __obj.title flatMap { scalaxb.toXML[xlink.TitleEltType](_, Some("http://www.w3.org/1999/xlink"), Some("title"), __scope, false) }


  }


  trait Xlink_ResourceModelGroupFormat extends scalaxb.AnyElemNameParser {
    def parseResourceModelGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[xlink.ResourceModelSequence] =
      ((safeRep(any(_ => true))) ^^ 
        { case p1 => xlink.ResourceModelSequence(p1 map { scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack) }: _*) })
  
    def parseResourceModelGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[Any]] =
      ((safeRep(any(_ => true))) ^^ 
        { case p1 => scalaxb.DataRecord(xlink.ResourceModelSequence(p1 map { scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack) }: _*)) })
    
    def parsemixedResourceModelGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      ((safeRep(((any(_ => true) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack))) ~
      optTextRecord) ^^ 
      { case p1 ~ p2 => Seq.concat(Seq(p1), p2.toList) }) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(p1.flatten,
        p2.toList) })
  }

  trait DefaultXlink_ResourceModelSequenceFormat extends scalaxb.XMLFormat[xlink.ResourceModelSequence] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, xlink.ResourceModelSequence] = Left("don't call me.")
    
    def writes(__obj: xlink.ResourceModelSequence, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      __obj.any flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, true) }


  }


  trait Xlink_ExtendedModelGroupFormat extends scalaxb.AnyElemNameParser {
    def parseExtendedModelGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[scalaxb.DataRecord[xlink.ExtendedModelOption]] =
      (((scalaxb.ElemName(Some("http://www.w3.org/1999/xlink"), "title")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[xlink.TitleEltType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.w3.org/1999/xlink"), "resource")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[xlink.ResourceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.w3.org/1999/xlink"), "locator")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[xlink.LocatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.w3.org/1999/xlink"), "arc")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[xlink.ArcType](x, scalaxb.ElemName(node) :: stack)))))
  
    def parseExtendedModelGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[xlink.ExtendedModelOption]] =
      (((scalaxb.ElemName(Some("http://www.w3.org/1999/xlink"), "title")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[xlink.TitleEltType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.w3.org/1999/xlink"), "resource")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[xlink.ResourceType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.w3.org/1999/xlink"), "locator")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[xlink.LocatorType](x, scalaxb.ElemName(node) :: stack)))) | 
      ((scalaxb.ElemName(Some("http://www.w3.org/1999/xlink"), "arc")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[xlink.ArcType](x, scalaxb.ElemName(node) :: stack)))))
    
    def parsemixedExtendedModelGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      (((((scalaxb.ElemName(Some("http://www.w3.org/1999/xlink"), "title")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[xlink.TitleEltType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.w3.org/1999/xlink"), "resource")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[xlink.ResourceType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.w3.org/1999/xlink"), "locator")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[xlink.LocatorType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }) ||| 
      ((((scalaxb.ElemName(Some("http://www.w3.org/1999/xlink"), "arc")) ^^ 
      (x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[xlink.ArcType](x, scalaxb.ElemName(node) :: stack)))) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(Seq(p1),
        p2.toList) }))
  }


  trait Xlink_SimpleModelGroupFormat extends scalaxb.AnyElemNameParser {
    def parseSimpleModelGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[xlink.SimpleModelSequence] =
      ((safeRep(any(_ => true))) ^^ 
        { case p1 => xlink.SimpleModelSequence(p1 map { scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack) }: _*) })
  
    def parseSimpleModelGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[Any]] =
      ((safeRep(any(_ => true))) ^^ 
        { case p1 => scalaxb.DataRecord(xlink.SimpleModelSequence(p1 map { scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack) }: _*)) })
    
    def parsemixedSimpleModelGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      ((safeRep(((any(_ => true) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack))) ~
      optTextRecord) ^^ 
      { case p1 ~ p2 => Seq.concat(Seq(p1), p2.toList) }) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(p1.flatten,
        p2.toList) })
  }

  trait DefaultXlink_SimpleModelSequenceFormat extends scalaxb.XMLFormat[xlink.SimpleModelSequence] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, xlink.SimpleModelSequence] = Left("don't call me.")
    
    def writes(__obj: xlink.SimpleModelSequence, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      __obj.any2 flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, true) }


  }


  trait Xlink_TitleModelGroupFormat extends scalaxb.AnyElemNameParser {
    def parseTitleModelGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[xlink.TitleModelSequence] =
      ((safeRep(any(_ => true))) ^^ 
        { case p1 => xlink.TitleModelSequence(p1 map { scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack) }: _*) })
  
    def parseTitleModelGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[Any]] =
      ((safeRep(any(_ => true))) ^^ 
        { case p1 => scalaxb.DataRecord(xlink.TitleModelSequence(p1 map { scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack) }: _*)) })
    
    def parsemixedTitleModelGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      ((safeRep(((any(_ => true) ^^ (scalaxb.fromXML[scalaxb.DataRecord[Any]](_, scalaxb.ElemName(node) :: stack))) ~
      optTextRecord) ^^ 
      { case p1 ~ p2 => Seq.concat(Seq(p1), p2.toList) }) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(p1.flatten,
        p2.toList) })
  }

  trait DefaultXlink_TitleModelSequenceFormat extends scalaxb.XMLFormat[xlink.TitleModelSequence] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, xlink.TitleModelSequence] = Left("don't call me.")
    
    def writes(__obj: xlink.TitleModelSequence, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      __obj.any3 flatMap { x => scalaxb.toXML[scalaxb.DataRecord[Any]](x, x.namespace, x.key, __scope, true) }


  }


  trait Xlink_LocatorModelGroupFormat extends scalaxb.AnyElemNameParser {
    def parseLocatorModelGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[xlink.LocatorModelSequence] =
      ((safeRep(scalaxb.ElemName(Some("http://www.w3.org/1999/xlink"), "title"))) ^^ 
        { case p1 => xlink.LocatorModelSequence(p1 map { scalaxb.fromXML[xlink.TitleEltType](_, scalaxb.ElemName(node) :: stack) }: _*) })
  
    def parseLocatorModelGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName], wrap: Boolean): Parser[scalaxb.DataRecord[Any]] =
      ((safeRep(scalaxb.ElemName(Some("http://www.w3.org/1999/xlink"), "title"))) ^^ 
        { case p1 => scalaxb.DataRecord(xlink.LocatorModelSequence(p1 map { scalaxb.fromXML[xlink.TitleEltType](_, scalaxb.ElemName(node) :: stack) }: _*)) })
    
    def parsemixedLocatorModelGroup(node: scala.xml.Node, stack: List[scalaxb.ElemName]): Parser[Seq[scalaxb.DataRecord[Any]]] =
      (((safeRep(scalaxb.ElemName(Some("http://www.w3.org/1999/xlink"), "title")) ^^ 
      (_.toSeq map { x => scalaxb.DataRecord(x.namespace, Some(x.name), scalaxb.fromXML[xlink.TitleEltType](x, scalaxb.ElemName(node) :: stack)) })) ~ 
      optTextRecord) ^^ 
        { case p1 ~ p2 => Seq.concat(p1,
        p2.toList) })
  }

  trait DefaultXlink_LocatorModelSequenceFormat extends scalaxb.XMLFormat[xlink.LocatorModelSequence] {
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, xlink.LocatorModelSequence] = Left("don't call me.")
    
    def writes(__obj: xlink.LocatorModelSequence, __namespace: Option[String], __elementLabel: Option[String], 
        __scope: scala.xml.NamespaceBinding, __typeAttribute: Boolean): scala.xml.NodeSeq =
      __obj.title flatMap { scalaxb.toXML[xlink.TitleEltType](_, Some("http://www.w3.org/1999/xlink"), Some("title"), __scope, false) }


  }

  trait DefaultXlink_ArcAttrsFormat extends scalaxb.AttributeGroupFormat[xlink.ArcAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/1999/xlink")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, xlink.ArcAttrs] = seq match {
      case node: scala.xml.Node => Right(xlink.ArcAttrs(scalaxb.fromXML[xlink.TypeType](scala.xml.Text("arc"), scalaxb.ElemName(node) :: stack),
      (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { scalaxb.fromXML[xlink.ShowType](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { scalaxb.fromXML[xlink.ActuateType](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}from").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}to").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: xlink.ArcAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
    __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
    __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
    __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
    __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
    __obj.xlinkfrom foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "from", x.toString, attr) }
    __obj.xlinkto foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "to", x.toString, attr) }
      attr
    }
  }

  trait DefaultXlink_ResourceAttrsFormat extends scalaxb.AttributeGroupFormat[xlink.ResourceAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/1999/xlink")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, xlink.ResourceAttrs] = seq match {
      case node: scala.xml.Node => Right(xlink.ResourceAttrs(scalaxb.fromXML[xlink.TypeType](scala.xml.Text("resource"), scalaxb.ElemName(node) :: stack),
      (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}label").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: xlink.ResourceAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
    __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
    __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
    __obj.xlinklabel foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "label", x.toString, attr) }
      attr
    }
  }

  trait DefaultXlink_ExtendedAttrsFormat extends scalaxb.AttributeGroupFormat[xlink.ExtendedAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/1999/xlink")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, xlink.ExtendedAttrs] = seq match {
      case node: scala.xml.Node => Right(xlink.ExtendedAttrs(scalaxb.fromXML[xlink.TypeType](scala.xml.Text("extended"), scalaxb.ElemName(node) :: stack),
      (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: xlink.ExtendedAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
    __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
    __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
      attr
    }
  }

  trait DefaultXlink_SimpleAttrsFormat extends scalaxb.AttributeGroupFormat[xlink.SimpleAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/1999/xlink")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, xlink.SimpleAttrs] = seq match {
      case node: scala.xml.Node => Right(xlink.SimpleAttrs(scalaxb.fromXML[xlink.TypeType](scala.xml.Text("simple"), scalaxb.ElemName(node) :: stack),
      (node \ "@{http://www.w3.org/1999/xlink}href").headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}arcrole").headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}show").headOption map { scalaxb.fromXML[xlink.ShowType](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}actuate").headOption map { scalaxb.fromXML[xlink.ActuateType](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: xlink.SimpleAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
    __obj.xlinkhref foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", x.toString, attr) }
    __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
    __obj.xlinkarcrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "arcrole", x.toString, attr) }
    __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
    __obj.xlinkshow foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "show", x.toString, attr) }
    __obj.xlinkactuate foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "actuate", x.toString, attr) }
      attr
    }
  }

  trait DefaultXlink_TitleAttrsFormat extends scalaxb.AttributeGroupFormat[xlink.TitleAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/1999/xlink")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, xlink.TitleAttrs] = seq match {
      case node: scala.xml.Node => Right(xlink.TitleAttrs(scalaxb.fromXML[xlink.TypeType](scala.xml.Text("title"), scalaxb.ElemName(node) :: stack),
      (node \ "@{http://www.w3.org/XML/1998/namespace}lang").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: xlink.TitleAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
    __obj.xmllang foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/XML/1998/namespace"), "lang", x.toString, attr) }
      attr
    }
  }

  trait DefaultXlink_LocatorAttrsFormat extends scalaxb.AttributeGroupFormat[xlink.LocatorAttrs] {
    val targetNamespace: Option[String] = Some("http://www.w3.org/1999/xlink")
    
    def reads(seq: scala.xml.NodeSeq, stack: List[scalaxb.ElemName]): Either[String, xlink.LocatorAttrs] = seq match {
      case node: scala.xml.Node => Right(xlink.LocatorAttrs(scalaxb.fromXML[xlink.TypeType](scala.xml.Text("locator"), scalaxb.ElemName(node) :: stack),
      scalaxb.fromXML[java.net.URI]((node \ "@{http://www.w3.org/1999/xlink}href"), scalaxb.ElemName(node) :: stack),
      (node \ "@{http://www.w3.org/1999/xlink}role").headOption map { scalaxb.fromXML[java.net.URI](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}title").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) },
      (node \ "@{http://www.w3.org/1999/xlink}label").headOption map { scalaxb.fromXML[String](_, scalaxb.ElemName(node) :: stack) }))
      case _ => Left("reads failed: seq must be scala.xml.Node")
    }
    
    def toAttribute(__obj: xlink.LocatorAttrs, __attr: scala.xml.MetaData, __scope: scala.xml.NamespaceBinding): scala.xml.MetaData = {
      var attr: scala.xml.MetaData  = __attr
      attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "type", __obj.xlinktype.toString, attr)
    attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "href", __obj.xlinkhref.toString, attr)
    __obj.xlinkrole foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "role", x.toString, attr) }
    __obj.xlinktitle foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "title", x.toString, attr) }
    __obj.xlinklabel foreach { x => attr = scala.xml.Attribute(__scope.getPrefix("http://www.w3.org/1999/xlink"), "label", x.toString, attr) }
      attr
    }
  }


}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy