docs: function(node) {
              /**
               * Three coordinate variations to consider:
               * 1) <gml:pos>x y z</gml:pos>
               * 2) <gml:coordinates>x, y, z</gml:coordinates>
               * 3) <gml:coord><gml:X>x</gml:X><gml:Y>y</gml:Y></gml:coord>
               */
              var nodeList, coordString;
              var coords = [];
  
              // look for <gml:pos>
              var nodeList = this.getElementsByTagNameNS(node, this.gmlns, "pos");
              if(nodeList.length > 0) {
                  coordString = nodeList[0].firstChild.nodeValue;
                  coordString = coordString.replace(this.regExes.trimSpace, "");
                  coords = coordString.split(this.regExes.splitSpace);
              }
  
              // look for <gml:coordinates>
              if(coords.length == 0) {
                  nodeList = this.getElementsByTagNameNS(node, this.gmlns,
                                                         "coordinates");
                  if(nodeList.length > 0) {
                      coordString = nodeList[0].firstChild.nodeValue;
                      coordString = coordString.replace(this.regExes.removeSpace,
                                                        "");
                      coords = coordString.split(",");
                  }
              }
  
              // look for <gml:coord>
              if(coords.length == 0) {
                  nodeList = this.getElementsByTagNameNS(node, this.gmlns,
                                                         "coord");
                  if(nodeList.length > 0) {
                      var xList = this.getElementsByTagNameNS(nodeList[0],
                                                              this.gmlns, "X");
                      var yList = this.getElementsByTagNameNS(nodeList[0],
                                                              this.gmlns, "Y");
                      if(xList.length > 0 && yList.length > 0) {
                          coords = [xList[0].firstChild.nodeValue,
                                    yList[0].firstChild.nodeValue];
                      }
                  }
              }
                  
              // preserve third dimension
              if(coords.length == 2) {
                  coords[2] = null;
              }
              
              if (this.xy) {
                  return new OpenLayers.Geometry.Point(coords[0], coords[1],
                                                   coords[2]);
              }
              else{
                  return new OpenLayers.Geometry.Point(coords[1], coords[0],
                                                   coords[2]);
              }
          }