Ejemplo n.º 1
0
 def testConstructor (self):
     ln = 'local'
     ns_uri = 'urn:ns'
     en = ExpandedName(ln)
     self.assertEqual(en.namespace(), None)
     self.assertEqual(en.localName(), ln)
     en2 = ExpandedName(en)
     self.assertEqual(en2, en)
     dom = pyxb.utils.domutils.StringToDOM('<ns1:%s xmlns:ns1="%s" attr="52">content</ns1:%s>' % (ln, ns_uri, ln))
     en = ExpandedName(dom.documentElement)
     ns = pyxb.namespace.NamespaceForURI(ns_uri)
     self.assertTrue(ns is not None)
     self.assertEqual(ns, en.namespace())
     self.assertEqual(ln, en.localName())
     en2 = ExpandedName(ns, ln)
     self.assertEqual(en, en2)
     attr = dom.documentElement.getAttributeNodeNS(None, 'attr')
     self.assertTrue(attr is not None)
     en = ExpandedName(attr)
     self.assertEqual(xml.dom.EMPTY_NAMESPACE, en.namespaceURI())
     self.assertEqual('attr', en.localName())
     child = dom.documentElement.firstChild
     self.assertTrue(child is not None)
     self.assertEqual(xml.dom.Node.TEXT_NODE, child.nodeType)
     self.assertRaises(pyxb.LogicError, ExpandedName, child)
Ejemplo n.º 2
0
 def testConstructor (self):
     ln = 'local'
     ns_uri = 'urn:ns'
     en = ExpandedName(ln)
     self.assertEqual(en.namespace(), None)
     self.assertEqual(en.localName(), ln)
     en2 = ExpandedName(en)
     self.assertEqual(en2, en)
     dom = pyxb.utils.domutils.StringToDOM('<ns1:%s xmlns:ns1="%s" attr="52">content</ns1:%s>' % (ln, ns_uri, ln))
     en = ExpandedName(dom.documentElement)
     ns = pyxb.namespace.NamespaceForURI(ns_uri)
     self.assertTrue(ns is not None)
     self.assertEqual(ns, en.namespace())
     self.assertEqual(ln, en.localName())
     en2 = ExpandedName(ns, ln)
     self.assertEqual(en, en2)
     attr = dom.documentElement.getAttributeNodeNS(None, 'attr')
     self.assertTrue(attr is not None)
     en = ExpandedName(attr)
     self.assertEqual(xml.dom.EMPTY_NAMESPACE, en.namespaceURI())
     self.assertEqual('attr', en.localName())
     child = dom.documentElement.firstChild
     self.assertTrue(child is not None)
     self.assertEqual(xml.dom.Node.TEXT_NODE, child.nodeType)
     self.assertRaises(pyxb.LogicError, ExpandedName, child)
Ejemplo n.º 3
0
 def testEquivalence (self):
     an1 = ExpandedName(None, 'string')
     en1 = ExpandedName(xsd, 'string')
     en2 = ExpandedName(xsd, 'string')
     en3 = ExpandedName(xsd, 'notString')
     self.assertEqual(en1, en2)
     self.assertEqual(en1, ( en1.namespace(), en1.localName() ))
     self.assertTrue(en1 == en2)
     self.assertFalse(en1 == en3)
     self.assertTrue(en1 != en3)
     self.assertTrue(an1 == an1.localName())
     self.assertFalse(an1 == en3.localName())
     self.assertTrue(an1 != en3.localName())
     self.assertFalse(an1 != an1.localName())
Ejemplo n.º 4
0
 def testEquivalence (self):
     an1 = ExpandedName(None, 'string')
     en1 = ExpandedName(xsd, 'string')
     en2 = ExpandedName(xsd, 'string')
     en3 = ExpandedName(xsd, 'notString')
     self.assertEqual(en1, en2)
     self.assertEqual(en1, ( en1.namespace(), en1.localName() ))
     self.assertTrue(en1 == en2)
     self.assertFalse(en1 == en3)
     self.assertTrue(en1 != en3)
     self.assertTrue(an1 == an1.localName())
     self.assertFalse(an1 == en3.localName())
     self.assertTrue(an1 != en3.localName())
     self.assertFalse(an1 != an1.localName())
Ejemplo n.º 5
0
 def testMapping (self):
     an1 = ExpandedName(None, 'string')
     en1 = ExpandedName(xsd, 'string')
     en2 = ExpandedName(xsd, 'string')
     mymap = { }
     mymap[en1] = 'Yes'
     mymap[an1] = 'No'
     mymap['key'] = 'Key'
     self.assertEqual(mymap[en2], 'Yes')
     self.assertEqual(mymap[an1], 'No')
     self.assertEqual(mymap[an1.localName()], 'No')
     self.assertNotEqual(mymap[en2.localName()], 'Yes')
     self.assertEqual(mymap['key'], 'Key')
     self.assertEqual(mymap[ExpandedName(None, 'key')], 'Key')
     self.assertEqual(None, mymap.get('nokey'))
     del mymap[en2]
     self.assertEqual(None, mymap.get(en1))
Ejemplo n.º 6
0
 def testMapping (self):
     an1 = ExpandedName(None, 'string')
     en1 = ExpandedName(xsd, 'string')
     en2 = ExpandedName(xsd, 'string')
     mymap = { }
     mymap[en1] = 'Yes'
     mymap[an1] = 'No'
     mymap['key'] = 'Key'
     self.assertEqual(mymap[en2], 'Yes')
     self.assertEqual(mymap[an1], 'No')
     self.assertEqual(mymap[an1.localName()], 'No')
     self.assertNotEqual(mymap[en2.localName()], 'Yes')
     self.assertEqual(mymap['key'], 'Key')
     self.assertEqual(mymap[ExpandedName(None, 'key')], 'Key')
     self.assertEqual(None, mymap.get('nokey'))
     del mymap[en2]
     self.assertEqual(None, mymap.get(en1))
Ejemplo n.º 7
0
 def get_attribute_value(self, att_name):
     """
     This function is a handy extension that allows us to easily look up attribute values regardless whether they
     are local or namespaced attribute names. I did not find its equivalent in PyXB.
     :param att_name:
     :return:
     """
     attr_en = ExpandedName(*att_name.split(':'))
     # NOTE: At this point we should go to attribute map locate the attribute but for that the namespace has to be
     # located too because its fully qualified name is required... etc. cutting corners here as we don't mix local
     # and namespaced attributes of the same name so fairly safe to just take the localname bit. But this
     # is not a fully XML compliant way to support all possibilities in all cases.
     return getattr(self, attr_en.localName())
Ejemplo n.º 8
0
def fulluri(n: ExpandedName) -> URIRef:
    """ Return the full uri of the expanded name
    :param n: expanded name
    :return: full URI
    """
    return URIRef(nsuri(n) + n.localName())