def xsd(self): base = self.xsd_complex_type() seq = base.new('sequence') for (key, sub) in sorted(self.mandatory.items()): if isinstance(sub, tuple): typ, desc = ExtType.instance(sub[0]), sub[1] else: typ, desc = ExtType.instance(sub), None x = seq.new("element", name=key, type="myxsd:" + typ.xsd_name()) if desc: x.new('annotation').new('documentation').cdata(XMLNode.escape(desc)) opt = seq.new('element', name='optionals') optseq = opt.new('complexType').new('sequence') for (key, sub) in sorted(self.optional.items()): if isinstance(sub, tuple): typ, desc = ExtType.instance(sub[0]), sub[1] else: typ, desc = ExtType.instance(sub), None elemname = self.capsify(key) x = optseq.new("element", name=elemname, type="myxsd:" + typ.xsd_name(), maxOccurs="1", minOccurs="0") if desc: x.new('annotation').new('documentation').cdata(XMLNode.escape(desc)) return base
def xsd(self): base = self.xsd_complex_type() seq = base.new('sequence') for (key, sub) in sorted(self.mandatory.items()): if isinstance(sub, tuple): typ, desc = ExtType.instance(sub[0]), sub[1] else: typ, desc = ExtType.instance(sub), None x = seq.new("element", name=key, type="myxsd:" + typ.xsd_name()) if desc: x.new('annotation').new('documentation').cdata( XMLNode.escape(desc)) opt = seq.new('element', name='optionals') optseq = opt.new('complexType').new('sequence') for (key, sub) in sorted(self.optional.items()): if isinstance(sub, tuple): typ, desc = ExtType.instance(sub[0]), sub[1] else: typ, desc = ExtType.instance(sub), None elemname = self.capsify(key) x = optseq.new("element", name=elemname, type="myxsd:" + typ.xsd_name(), maxOccurs="1", minOccurs="0") if desc: x.new('annotation').new('documentation').cdata( XMLNode.escape(desc)) return base
def xsd_complex_type(self): node = XMLNode('complexType', name=self.xsd_name()) if self.desc: node.new('annotation').new('documentation').cdata(XMLNode.escape(self.desc)) return node
def xsd_complex_type(self): node = XMLNode('complexType', name=self.xsd_name()) if self.desc: node.new('annotation').new('documentation').cdata( XMLNode.escape(self.desc)) return node