@@ -22,34 +22,30 @@ def getDomModule(DomImplementation):
2222
2323def getDomBuilder (DomImplementation ):
2424Dom = DomImplementation
25- infoset_filter = ihatexml .InfosetFilter ()
2625class AttrList :
2726def __init__ (self ,element ):
2827self .element = element
2928def __iter__ (self ):
3029return self .element .attributes .items ().__iter__ ()
3130def __setitem__ (self ,name ,value ):
32- self .element .setAttribute (infoset_filter .coerceAttribute (name ),
33- infoset_filter .coerceCharacters (value ))
31+ self .element .setAttribute (name ,value )
3432def items (self ):
35- return [(infoset_filter . fromXmlName ( item [0 ]) ,item [1 ])for item in
33+ return [(item [0 ],item [1 ])for item in
3634self .element .attributes .items ()]
3735def keys (self ):
38- return [infoset_filter .fromXmlName (item )for item in
39- self .element .attributes .keys ()]
36+ return self .element .attributes .keys ()
4037def __getitem__ (self ,name ):
41- name = infoset_filter .toXmlName (name )
4238return self .element .getAttribute (name )
4339
4440def __contains__ (self ,name ):
4541if isinstance (name ,tuple ):
4642raise NotImplementedError
4743else :
48- return self .element .hasAttribute (infoset_filter . toXmlName ( name ) )
44+ return self .element .hasAttribute (name )
4945
5046class NodeBuilder (_base .Node ):
5147def __init__ (self ,element ):
52- _base .Node .__init__ (self ,element .localName )
48+ _base .Node .__init__ (self ,element .nodeName )
5349self .element = element
5450
5551namespace = property (lambda self :hasattr (self .element ,"namespaceURI" )
@@ -60,7 +56,6 @@ def appendChild(self, node):
6056self .element .appendChild (node .element )
6157
6258def insertText (self ,data ,insertBefore = None ):
63- data = infoset_filter .coerceCharacters (data )
6459text = self .element .ownerDocument .createTextNode (data )
6560if insertBefore :
6661self .element .insertBefore (text ,insertBefore .element )
@@ -91,17 +86,14 @@ def setAttributes(self, attributes):
9186for name ,value in attributes .items ():
9287if isinstance (name ,tuple ):
9388if name [0 ]is not None :
94- qualifiedName = (name [0 ]+ ":" +
95- infoset_filter .coerceAttribute (
96- name [1 ]))
89+ qualifiedName = (name [0 ]+ ":" + name [1 ])
9790else :
98- qualifiedName = infoset_filter .coerceAttribute (
99- name [1 ])
91+ qualifiedName = name [1 ]
10092self .element .setAttributeNS (name [2 ],qualifiedName ,
10193value )
10294else :
10395self .element .setAttribute (
104- infoset_filter . coerceAttribute ( name ) ,value )
96+ name ,value )
10597attributes = property (getAttributes ,setAttributes )
10698
10799def cloneNode (self ):
@@ -161,7 +153,7 @@ def getFragment(self):
161153return _base .TreeBuilder .getFragment (self ).element
162154
163155def insertText (self ,data ,parent = None ):
164- data = infoset_filter . coerceCharacters ( data )
156+ data = data
165157if parent <> self :
166158_base .TreeBuilder .insertText (self ,data ,parent )
167159else :
@@ -210,11 +202,13 @@ def serializeElement(element, indent=0):
210202i = 0
211203attr = element .attributes .item (i )
212204while attr :
213- name = infoset_filter . fromXmlName ( attr .localName )
205+ name = attr .nodeName
214206value = attr .value
215207ns = attr .namespaceURI
216208if ns :
217- name = "%s %s" % (constants .prefixes [ns ],name )
209+ name = "%s %s" % (constants .prefixes [ns ],attr .localName )
210+ else :
211+ name = attr .nodeName
218212i += 1
219213attr = element .attributes .item (i )
220214
@@ -241,21 +235,21 @@ def dom2sax(node, handler, nsmap={'xml':XML_NAMESPACE}):
241235attr = node .getAttributeNode (attrname )
242236if (attr .namespaceURI == XMLNS_NAMESPACE or
243237 (attr .namespaceURI == None and attr .nodeName .startswith ('xmlns' ))):
244- prefix = (attr .localName != 'xmlns' and attr .localName or None )
238+ prefix = (attr .nodeName != 'xmlns' and attr .nodeName or None )
245239handler .startPrefixMapping (prefix ,attr .nodeValue )
246240prefixes .append (prefix )
247241nsmap = nsmap .copy ()
248242nsmap [prefix ]= attr .nodeValue
249- del attributes [(attr .namespaceURI ,attr .localName )]
243+ del attributes [(attr .namespaceURI ,attr .nodeName )]
250244
251245# apply namespace declarations
252246for attrname in node .attributes .keys ():
253247attr = node .getAttributeNode (attrname )
254248if attr .namespaceURI == None and ':' in attr .nodeName :
255249prefix = attr .nodeName .split (':' )[0 ]
256250if nsmap .has_key (prefix ):
257- del attributes [(attr .namespaceURI ,attr .localName )]
258- attributes [(nsmap [prefix ],attr .localName )]= attr .nodeValue
251+ del attributes [(attr .namespaceURI ,attr .nodeName )]
252+ attributes [(nsmap [prefix ],attr .nodeName )]= attr .nodeValue
259253
260254# SAX events
261255ns = node .namespaceURI or nsmap .get (None ,None )