docs: def getXMLNS(self, prefix=None):
          """deference prefix or by default xmlns, returns namespace. 
          """
          if prefix == XMLSchemaComponent.xml:
              return XMLNS.XML
          parent = self
          ns = self.attributes[XMLSchemaComponent.xmlns].get(prefix or\
                  XMLSchemaComponent.xmlns_key)
          while not ns:
              parent = parent._parent()
              ns = parent.attributes[XMLSchemaComponent.xmlns].get(prefix or\
                      XMLSchemaComponent.xmlns_key)
              if not ns and isinstance(parent, WSDLToolsAdapter):
                  if prefix is None:
                      return ''
                  raise SchemaError, 'unknown prefix %s' %prefix
          return ns