def test_data_type(self): ns_map = {"bar": "xsdata"} attrs = {} self.assertEqual(DataType.STRING, ParserUtils.data_type(attrs, ns_map)) ns_map = {"xs": Namespace.XS.uri} attrs = {QNames.XSI_TYPE: "xs:foo"} self.assertEqual(DataType.STRING, ParserUtils.data_type(attrs, ns_map)) attrs = {QNames.XSI_TYPE: "xs:float"} self.assertEqual(DataType.FLOAT, ParserUtils.data_type(attrs, ns_map))
def bind(self, qname: str, text: NoneStr, tail: NoneStr, objects: List) -> bool: obj: Any = None if self.has_children: obj = AnyElement( qname=qname, text=ParserUtils.normalize_content(text), tail=ParserUtils.normalize_content(tail), attributes=ParserUtils.parse_any_attributes(self.attrs, self.ns_map), children=ParserUtils.fetch_any_children(self.position, objects), ) objects.append((self.var.qname, obj)) else: var = self.var ns_map = self.ns_map datatype = ParserUtils.data_type(self.attrs, self.ns_map) obj = ParserUtils.parse_value(text, [datatype.type], var.default, ns_map) if var.derived: obj = DerivedElement(qname=qname, value=obj) objects.append((qname, obj)) if self.mixed: tail = ParserUtils.normalize_content(tail) if tail: objects.append((None, tail)) return True