Modified Files:
Utility.py
XMLSchema.py -- just moved SplitQName out of here and into Utility
Added Files:
Namespaces.py -- WSDL, SOAP, SCHEMA, XMLNS namespaces here. Doesn't
require PyXml
----------------------------------------------------------------------
main
| @@ -0,0 +1,31 @@ | |||||
| #! /usr/bin/env python | |||||
| """Namespace module, so you don't need PyXML | |||||
| """ | |||||
| try: | |||||
| from xml.ns import SOAP, SCHEMA, WSDL, XMLNS | |||||
| except: | |||||
| class SOAP: | |||||
| ENV = "http://schemas.xmlsoap.org/soap/envelope/" | |||||
| ENC = "http://schemas.xmlsoap.org/soap/encoding/" | |||||
| ACTOR_NEXT = "http://schemas.xmlsoap.org/soap/actor/next" | |||||
| class SCHEMA: | |||||
| XSD1 = "http://www.w3.org/1999/XMLSchema" | |||||
| XSD2 = "http://www.w3.org/2000/10/XMLSchema" | |||||
| XSD3 = "http://www.w3.org/2001/XMLSchema" | |||||
| XSI1 = "http://www.w3.org/1999/XMLSchema-instance" | |||||
| XSI2 = "http://www.w3.org/2000/10/XMLSchema-instance" | |||||
| XSI3 = "http://www.w3.org/2001/XMLSchema-instance" | |||||
| BASE = XSD3 | |||||
| class WSDL: | |||||
| BASE = 'http://schemas.xmlsoap.org/wsdl/' | |||||
| BIND_HTTP = 'http://schemas.xmlsoap.org/wsdl/http/' | |||||
| BIND_MIME = 'http://schemas.xmlsoap.org/wsdl/mime/' | |||||
| BIND_SOAP = 'http://schemas.xmlsoap.org/wsdl/soap/' | |||||
| class XMLNS: | |||||
| BASE = "http://www.w3.org/2000/xmlns/" | |||||
| XML = "http://www.w3.org/XML/1998/namespace" | |||||
| HTML = "http://www.w3.org/TR/REC-html40" | |||||
| @@ -10,18 +10,42 @@ | |||||
| ident = "$Id$" | ident = "$Id$" | ||||
| import types | import types | ||||
| import string, httplib, smtplib, urllib, socket, weakref | |||||
| import xml.dom.minidom | |||||
| from string import join, strip, split | from string import join, strip, split | ||||
| from UserDict import UserDict | from UserDict import UserDict | ||||
| from StringIO import StringIO | from StringIO import StringIO | ||||
| import xml.dom.minidom, weakref | |||||
| import string, httplib, smtplib, urllib, socket | |||||
| from TimeoutSocket import TimeoutSocket, TimeoutError | from TimeoutSocket import TimeoutSocket, TimeoutError | ||||
| from StringIO import StringIO | |||||
| from urlparse import urlparse | from urlparse import urlparse | ||||
| from httplib import HTTPConnection, HTTPSConnection | from httplib import HTTPConnection, HTTPSConnection | ||||
| from exceptions import Exception | from exceptions import Exception | ||||
| try: | |||||
| from xml.dom.ext import SplitQName | |||||
| except: | |||||
| def SplitQName(qname): | |||||
| '''SplitQName(qname) -> (string, string) | |||||
| Split Qualified Name into a tuple of len 2, consisting | |||||
| of the prefix and the local name. | |||||
| (prefix, localName) | |||||
| Special Cases: | |||||
| xmlns -- (localName, 'xmlns') | |||||
| None -- (None, localName) | |||||
| ''' | |||||
| l = qname.split(':') | |||||
| if len(l) == 1: | |||||
| l.insert(0, None) | |||||
| elif len(l) == 2: | |||||
| if l[0] == 'xmlns': | |||||
| l.reverse() | |||||
| else: | |||||
| return | |||||
| return tuple(l) | |||||
| class RecursionError(Exception): | class RecursionError(Exception): | ||||
| """Used to indicate a HTTP redirect recursion.""" | """Used to indicate a HTTP redirect recursion.""" | ||||
| pass | pass | ||||
| @@ -16,40 +16,9 @@ ident = "$Id$" | |||||
| import types, weakref, urllib, sys | import types, weakref, urllib, sys | ||||
| from threading import RLock | from threading import RLock | ||||
| try: | |||||
| from xml.ns import XMLNS | |||||
| except ImportError: | |||||
| # ref: | |||||
| # http://cvs.sourceforge.net/viewcvs.py/pyxml/xml/xml/ns.py?view=markup | |||||
| class XMLNS: | |||||
| """XMLNS, Namespaces in XML | |||||
| XMLNS (14-Jan-1999) is a W3C Recommendation. It is specified in | |||||
| http://www.w3.org/TR/REC-xml-names | |||||
| BASE -- the basic namespace defined by the specification | |||||
| XML -- the namespace for XML 1.0 | |||||
| HTML -- the namespace for HTML4.0 | |||||
| """ | |||||
| BASE = "http://www.w3.org/2000/xmlns/" | |||||
| XML = "http://www.w3.org/XML/1998/namespace" | |||||
| HTML = "http://www.w3.org/TR/REC-html40" | |||||
| from Utility import DOM, DOMException, Collection | |||||
| from Namespaces import XMLNS | |||||
| from Utility import DOM, DOMException, Collection, SplitQName | |||||
| from StringIO import StringIO | from StringIO import StringIO | ||||
| try: | |||||
| from xml.dom.ext import SplitQName | |||||
| except ImportError, ex: | |||||
| def SplitQName(qname): | |||||
| l = qname.split(':') | |||||
| if len(l) == 1: | |||||
| l.insert(0, None) | |||||
| elif len(l) == 2: | |||||
| if l[0] == 'xmlns': | |||||
| l.reverse() | |||||
| else: | |||||
| return | |||||
| return tuple(l) | |||||
| def GetSchema(component): | def GetSchema(component): | ||||
| """convience function for finding the parent XMLSchema instance. | """convience function for finding the parent XMLSchema instance. | ||||