EMF provides code generation for building applications from structured data models and allows model specifications with UML. Xtext can infer EMF metamodels for domain-specific languages and uses EMF to create abstract syntax trees. EMF classes must be instantiated through static factories and fields are initialized via getters and setters.