1484{
1485 xmlNodePtr xa;
1486 int patch;
1488 bool found=false;
1489
1491
1492
1493 for (xa = xnode->children ; xa != NULL ; xa = xa->next)
1494 {
1495 if (xa->type != XML_ELEMENT_NODE) continue;
1498 {
1499 found = true;
1500 break;
1501 }
1502 }
1503 if (!found)
gml_lwpgerror(
"invalid GML representation", 51);
1504
1505
1506 for (patch=0, xa = xa->children ; xa != NULL ; xa = xa->next)
1507 {
1508 if (xa->type != XML_ELEMENT_NODE) continue;
1511 patch++;
1512
1513
1514
1515 if (patch > 1)
gml_lwpgerror(
"invalid GML representation", 52);
1516
1518 }
1519
1520 if (!patch)
gml_lwpgerror(
"invalid GML representation", 53);
1521
1522 return geom;
1523}
static xmlNodePtr get_xlink_node(xmlNodePtr xnode)
Return a xmlNodePtr on a node referenced by a XLink or NULL otherwise.
static bool is_xlink(xmlNodePtr node)
Return true if current node contains a simple XLink Return false otherwise.
static LWGEOM * parse_gml_patch(xmlNodePtr xnode, bool *hasz, int *root_srid)
Parse GML PolygonPatch (3.1.1)
static bool is_gml_namespace(xmlNodePtr xnode, bool is_strict)
Return false if current element namespace is not a GML one Return true otherwise.
static void gml_lwpgerror(char *msg, __attribute__((__unused__)) int error_code)
static bool is_gml_element(xmlNodePtr xn, const char *gml_name)