def createElementNS(self, namespaceURI, qualifiedName): from Element import Element if not g_namePattern.match(qualifiedName): raise InvalidCharacterErr() (prefix, localName) = SplitQName(qualifiedName) if prefix == 'xml' and namespaceURI != XML_NAMESPACE: raise NamespaceErr() if prefix and not namespaceURI: raise NamespaceErr() return Element(self, qualifiedName, namespaceURI, prefix, localName)
def createElementNS(self, namespaceURI, qualifiedName): from Element import Element if not get_name_pattern().match(qualifiedName): raise InvalidCharacterErr() (prefix, localName) = SplitQName(qualifiedName) if prefix == 'xml' and namespaceURI != XML_NAMESPACE: raise NamespaceErr() if prefix and not namespaceURI: raise NamespaceErr() elif namespaceURI == '': raise NamespaceErr("Use None instead of '' for empty namespace") return Element(self, qualifiedName, namespaceURI, prefix, localName)
def createAttributeNS(self, namespaceURI, qualifiedName): if not g_namePattern.match(qualifiedName): raise InvalidCharacterErr() from Attr import Attr (prefix, localName) = SplitQName(qualifiedName) if prefix == 'xml' and namespaceURI != XML_NAMESPACE: raise NamespaceErr() if localName == 'xmlns': if namespaceURI != XMLNS_NAMESPACE: raise NamespaceErr() return Attr(self, qualifiedName, XMLNS_NAMESPACE, 'xmlns', prefix) else: if (not namespaceURI and prefix) or (not prefix and namespaceURI): raise NamespaceErr() return Attr(self, qualifiedName, namespaceURI, prefix, localName)
def setAttributeNS(self, namespaceURI, qualifiedName, value): if not IsDOMString(value): raise SyntaxErr() if not g_namePattern.match(qualifiedName): raise InvalidCharacterErr() prefix, localName = SplitQName(qualifiedName) attr = self.attributes.getNamedItemNS(namespaceURI, localName) if attr: attr.value = value else: attr = self.ownerDocument.createAttributeNS(namespaceURI, qualifiedName) attr.value = value self.setAttributeNodeNS(attr) return