Source code for soapbox.xsdspec

# -*- coding: utf-8 -*-
################################################################################

'''
'''

################################################################################
# Imports


from . import xsd


################################################################################
# Constants


XSD_NAMESPACE = 'http://www.w3.org/2001/XMLSchema'


################################################################################
# Classes


[docs]class Enumeration(xsd.ComplexType): ''' ''' value = xsd.Attribute(xsd.String) @classmethod
[docs] def create(cls, value): ''' ''' enum = Enumeration() enum.value = value return enum
[docs]class Pattern(xsd.ComplexType): ''' ''' NAMESPACE = 'http://www.w3.org/2001/XMLSchema' value = xsd.Attribute(xsd.String)
[docs]class RestrictionValue(xsd.ComplexType): ''' ''' NAMESPACE = 'http://www.w3.org/2001/XMLSchema' value = xsd.Attribute(xsd.String)
[docs]class Restriction(xsd.ComplexType): ''' ''' NAMESPACE = 'http://www.w3.org/2001/XMLSchema' base = xsd.Attribute(xsd.String) enumerations = xsd.ListElement(Enumeration, 'enumeration') pattern = xsd.Element(Pattern) minInclusive = xsd.Element(RestrictionValue) minExclusive = xsd.Element(RestrictionValue) maxExclusive = xsd.Element(RestrictionValue) maxInclusive = xsd.Element(RestrictionValue) fractionDigits = xsd.Element(RestrictionValue) totalDigits = xsd.Element(RestrictionValue)
[docs] def to_python(self): enum_values = map(lambda e: '\'%s\'' % e.value, self.enumerations) return '[%s]' % ','.join(enum_values)
[docs]class List(xsd.ComplexType): ''' ''' NAMESPACE = 'http://www.w3.org/2001/XMLSchema' pass
[docs]class SimpleType(xsd.ComplexType): ''' ''' NAMESPACE = 'http://www.w3.org/2001/XMLSchema' name = xsd.Attribute(xsd.String, use=xsd.Use.OPTIONAL) restriction = xsd.Element(Restriction, minOccurs=0) list = xsd.Element(List, minOccurs=0)
[docs]class Element(xsd.ComplexType): ''' ''' NAMESPACE = 'http://www.w3.org/2001/XMLSchema' name = xsd.Attribute(xsd.String, use=xsd.Use.OPTIONAL) type = xsd.Attribute(xsd.String, use=xsd.Use.OPTIONAL) ref = xsd.Attribute(xsd.String, use=xsd.Use.OPTIONAL) minOccurs = xsd.Attribute(xsd.Integer, use=xsd.Use.OPTIONAL) maxOccurs = xsd.Attribute(xsd.String, use=xsd.Use.OPTIONAL) nillable = xsd.Attribute(xsd.Boolean, use=xsd.Use.OPTIONAL) simpleType = xsd.Element(SimpleType, minOccurs=0) complexType = xsd.Element('XSDComplexType')
[docs]class Sequence(xsd.ComplexType): ''' ''' NAMESPACE = 'http://www.w3.org/2001/XMLSchema' elements = xsd.ListElement(Element, 'element')
[docs]class Attribute(xsd.ComplexType): ''' ''' NAMESPACE = 'http://www.w3.org/2001/XMLSchema' name = xsd.Attribute(xsd.String) ref = xsd.Attribute(xsd.String) type = xsd.Attribute(xsd.String) use = xsd.Attribute(xsd.String)
[docs]class AttributeGroup(xsd.ComplexType): ''' ''' NAMESPACE = 'http://www.w3.org/2001/XMLSchema' name = xsd.Attribute(xsd.String) attributes = xsd.ListElement(Attribute, 'attribute')
[docs]class AttributeGroupReference(xsd.ComplexType): ''' ''' NAMESPACE = 'http://www.w3.org/2001/XMLSchema' ref = xsd.Attribute(xsd.String)
[docs] def to_python(self): typename = get_type(self.ref) data = {'name': typename.lower(), 'type': typename} return ''' %(name)s = xsd.Ref(%(type)s)\n''' % data
[docs]class Extension(xsd.ComplexType): ''' ''' NAMESPACE = 'http://www.w3.org/2001/XMLSchema' base = xsd.Attribute(xsd.String) sequence = xsd.Element(Sequence) attributes = xsd.ListElement(Attribute, 'attribute') attributeGroups = xsd.ListElement(AttributeGroupReference, 'attributeGroup')
[docs]class ComplexContent(xsd.ComplexType): ''' ''' NAMESPACE = 'http://www.w3.org/2001/XMLSchema' mixed = xsd.Attribute(xsd.Boolean) extension = xsd.Element(Extension) restriction = xsd.Element(Extension)
[docs]class XSDComplexType(xsd.ComplexType): ''' ''' NAMESPACE = 'http://www.w3.org/2001/XMLSchema' name = xsd.Attribute(xsd.String, use=xsd.Use.OPTIONAL) sequence = xsd.Element(Sequence) all = xsd.Element(Sequence) complexContent = xsd.Element(ComplexContent) attributes = xsd.ListElement(Attribute, 'attribute') attributeGroups = xsd.ListElement(AttributeGroupReference, 'attributeGroup')
[docs]class Group(xsd.ComplexType): ''' ''' NAMESPACE = 'http://www.w3.org/2001/XMLSchema' name = xsd.Attribute(xsd.String) sequence = xsd.Element(Sequence)
[docs]class Import(xsd.ComplexType): ''' ''' schemaLocation = xsd.Attribute(xsd.String, use=xsd.Use.OPTIONAL) namespace = xsd.Attribute(xsd.String)
[docs]class Schema(xsd.ComplexType): ''' ''' NAMESPACE = 'http://www.w3.org/2001/XMLSchema' targetNamespace = xsd.Attribute(xsd.String) elementFormDefault = xsd.Attribute( xsd.String(enumeration=['qualified', 'unqualified']), use=xsd.Use.OPTIONAL, default='unqualified', ) imports = xsd.ListElement(Import, 'import') simpleTypes = xsd.ListElement(SimpleType, 'simpleType') groups = xsd.ListElement(Group, 'group') attributeGroups = xsd.ListElement(AttributeGroup, 'attributeGroup') complexTypes = xsd.ListElement(XSDComplexType, 'complexType') elements = xsd.ListElement(Element, 'element')
SCHEMA = xsd.Schema( targetNamespace='http://www.w3.org/2001/XMLSchema', elementFormDefault=xsd.ElementFormDefault.QUALIFIED, simpleTypes=[], attributeGroups=[], groups=[], complexTypes=[Enumeration, Pattern, RestrictionValue, Restriction, List, SimpleType, Element, Sequence, Attribute, AttributeGroup, AttributeGroupReference, Extension, ComplexContent, XSDComplexType, Group, Schema], elements={}, ) ################################################################################ # vim:et:ft=python:nowrap:sts=4:sw=4:ts=4