15 #ifndef QGSGMLSCHEMA_H
16 #define QGSGMLSCHEMA_H
32 #include <QDomElement>
33 #include <QStringList>
47 QList<QgsField> &
fields() {
return mFields; }
49 int fieldIndex(
const QString & name );
51 QString
path()
const {
return mPath; }
84 bool parseXSD(
const QByteArray &xml );
91 bool guessSchema(
const QByteArray &data );
94 QStringList typeNames()
const;
97 QList<QgsField> fields(
const QString & typeName );
100 QStringList geometryAttributes(
const QString & typeName );
119 void startElement(
const XML_Char* el,
const XML_Char** attr );
120 void endElement(
const XML_Char* el );
121 void characters(
const XML_Char* chars,
int len );
122 static void start(
void* data,
const XML_Char* el,
const XML_Char** attr )
124 static_cast<QgsGmlSchema*
>( data )->startElement( el, attr );
126 static void end(
void* data,
const XML_Char* el )
130 static void chars(
void* data,
const XML_Char* chars,
int len )
132 static_cast<QgsGmlSchema*
>( data )->characters( chars, len );
135 void addAttribute(
const QString& name,
const QString& value );
141 QString readAttribute(
const QString& attributeName,
const XML_Char** attr )
const;
144 QWidget* findMainWindow()
const;
147 QList<QDomElement> domElements(
const QDomElement &element,
const QString & path );
150 QDomElement domElement(
const QDomElement &element,
const QString & path );
153 QList<QDomElement> domElements( QList<QDomElement> &elements,
const QString & attr,
const QString & attrVal );
156 QDomElement domElement(
const QDomElement &element,
const QString & path,
const QString & attr,
const QString & attrVal );
159 QString stripNS(
const QString & name );
166 QString xsdComplexTypeGmlBaseType(
const QDomElement &element,
const QString & name );
169 bool xsdFeatureClass(
const QDomElement &element,
const QString & typeName,
QgsGmlFeatureClass & featureClass );
A rectangle specified with double values.
int mSkipLevel
Skip all levels under this.
QStringList mGeometryTypes
QMap< QString, QgsGmlFeatureClass > mFeatureClassMap
static void start(void *data, const XML_Char *el, const XML_Char **attr)
QStringList mParsePathStack
Path to current level.
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
QList< QgsField > mFields
QList< QgsField > & fields()
QStack< ParseMode > mParseModeStack
Keep track about the most important nested elements.
ParseMode modeStackTop()
Get safely (if empty) top from mode stack.
static void chars(void *data, const XML_Char *chars, int len)
QString mCurrentFeatureName
QString mCoordinateSeparator
Coordinate separator for coordinate strings.
static void end(void *data, const XML_Char *el)
QString mTupleSeparator
Tuple separator for coordinate strings.
int mLevel
Depth level, root element is 0.
QgsError is container for error messages (report).
Class for storing a coordinate reference system (CRS)
QgsError error() const
Get error if parseXSD() or guessSchema() failed.
ParseMode modeStackPop()
Safely (if empty) pop from mode stack.
QStringList & geometryAttributes()
QStringList mGeometryAttributes
QString mStringCash
This contains the character data if an important element has been encountered.
QgsFeature * mCurrentFeature
QString mCurrentFeatureId