示例#1
0
def _toXML(filter, pretty=True, version=1.0):
  """
  Encodes a filter object as XML.

  """

  ogc, ogcconfig = _ogc(version)
  e = Encoder(ogcconfig)
  e.indenting = pretty
  e.omitXMLDeclaration = True
  out = io.ByteArrayOutputStream()
  e.encode(filter, ogc.Filter, out)
  return str(lang.String(out.toByteArray()))
示例#2
0
  def toGML(self,out=sys.stdout):
    try:
      from net.opengis.wfs import WfsFactory
      from org.geotools.wfs.v1_1 import WFS, WFSConfiguration
      from org.geotools.xml import Encoder
    except ImportError:
      raise Exception('toGML() not available, GML libraries not on classpath.') 

    features = self._source.features
    fc = WfsFactory.eINSTANCE.createFeatureCollectionType()
    fc.feature.add(features)

    e = Encoder(WFSConfiguration())        
    uri = self._source.name.namespaceURI
    prefix = 'gt'
    e.namespaces.declarePrefix(prefix,uri)
    e.indenting = True
    e.encode(fc, WFS.FeatureCollection, out)
示例#3
0
    def toGML(self, out=sys.stdout):
        try:
            from net.opengis.wfs import WfsFactory
            from org.geotools.wfs.v1_1 import WFS, WFSConfiguration
            from org.geotools.xml import Encoder
        except ImportError:
            raise Exception(
                'toGML() not available, GML libraries not on classpath.')

        features = self._source.features
        fc = WfsFactory.eINSTANCE.createFeatureCollectionType()
        fc.feature.add(features)

        e = Encoder(WFSConfiguration())
        uri = self._source.name.namespaceURI
        prefix = 'gt'
        e.namespaces.declarePrefix(prefix, uri)
        e.indenting = True
        e.encode(fc, WFS.FeatureCollection, out)
示例#4
0
def _toXML(filter, pretty=True, version=1.0):
  """
  Encodes a filter object as XML.

  """

  ogc, ogcconfig = _ogc(version)
  e = Encoder(ogcconfig)
  e.indenting = pretty
  e.omitXMLDeclaration = True
  out = io.ByteArrayOutputStream()
  e.encode(filter, ogc.Filter, out)
  return str(lang.String(out.toByteArray()))
示例#5
0
def doEncode(cls,
             obj,
             el,
             ver,
             format,
             bounds,
             xmldecl,
             namespaces=True,
             nsmappings={},
             out=None):

    cfg = cls.config(ver)
    if not bounds:
        cfg.getProperties().add(GML2.NO_FEATURE_BOUNDS)

    e = Encoder(cfg)
    if not xmldecl:
        e.setOmitXMLDeclaration(True)
    if format:
        e.setIndenting(True)
    if namespaces:
        for pre, uri in nsmappings.iteritems():
            if uri:
                e.getNamespaces().declarePrefix(pre, uri)
    else:
        e.setNamespaceAware(False)

    if not isinstance(el, tuple):
        el = (cls.uri(ver), el)

    qname = QName(el[0], el[1])

    if out:
        return doOutput(lambda output: e.encode(obj, qname, output), out)
    else:
        return e.encodeAsString(obj, qname)
示例#6
0
def doEncode(cls, obj, el, ver, format, bounds, xmldecl, namespaces=True, 
             nsmappings={}, out=None):

  cfg = cls.config(ver)
  if not bounds:
    cfg.getProperties().add(GML2.NO_FEATURE_BOUNDS)

  e = Encoder(cfg)
  if not xmldecl:
    e.setOmitXMLDeclaration(True)
  if format:
    e.setIndenting(True)
  if namespaces:
    for pre,uri in nsmappings.iteritems():
      if uri:
        e.getNamespaces().declarePrefix(pre, uri)
  else:
    e.setNamespaceAware(False)

  if not isinstance(el, tuple):
    el = (cls.uri(ver), el) 

  qname = QName(el[0], el[1])
  
  if out:
    return doOutput(lambda output: e.encode(obj, qname, output), out)
  else:
    return e.encodeAsString(obj, qname)