def processSchema(self, messageSchema_element):
    'process xml elements beginning with root messageSchema_element'
    attrib = messageSchema_element.attrib
    version = parse_version(attrib.get('version'))
    byteOrder = parse_byteOrder((attrib.get('byteOrder') or 'littleEndian'))
    package = parse_optionalString(attrib.get('package'))
    semanticVersion = parse_optionalString(attrib.get('semanticVersion'))
    description = parse_optionalString(attrib.get('description'))
    headerType = parse_optionalString((attrib.get('headerType') or 'messageHeader'))
    messageSchema = createMessageSchema(version=version, byteOrder=byteOrder, package=package, semanticVersion=semanticVersion, description=description, headerType=headerType)
    types_elements = messageSchema_element.findall('types')
    types_parser = TypesParser()
    for element in types_elements:
        types_parser.parse_types(messageSchema, element)
    message_elements = messageSchema_element.findall('sbe:message', namespaces=self.NS)
    message_parser = MessageParser()
    for element in message_elements:
        message_parser.parse_message(messageSchema, element)
    return messageSchema
process xml elements beginning with root messageSchema_element
def processSchema(self, messageSchema_element):
    
    attrib = messageSchema_element.attrib
    version = parse_version(attrib.get('version'))
    byteOrder = parse_byteOrder((attrib.get('byteOrder') or 'littleEndian'))
    package = parse_optionalString(attrib.get('package'))
    semanticVersion = parse_optionalString(attrib.get('semanticVersion'))
    description = parse_optionalString(attrib.get('description'))
    headerType = parse_optionalString((attrib.get('headerType') or 'messageHeader'))
    messageSchema = createMessageSchema(version=version, byteOrder=byteOrder, package=package, semanticVersion=semanticVersion, description=description, headerType=headerType)
    types_elements = messageSchema_element.findall('types')
    types_parser = TypesParser()
    for element in types_elements:
        types_parser.parse_types(messageSchema, element)
    message_elements = messageSchema_element.findall('sbe:message', namespaces=self.NS)
    message_parser = MessageParser()
    for element in message_elements:
        message_parser.parse_message(messageSchema, element)
    return messageSchema