implementing XSD parser