SIMPLE TYPE RESOLUTION HERE
Simple types can be declared as lists, unions, or restrictions.
These three cases are treated separately in resolveListType,
resolveUnionType, and resolveSimpleRestrictionType.
The intricate work with facets is done in the restriction case,
using method called resolveFacets (the union and list cases have
trivial facet rules). Then all simple types call resolveProperties
in the end to have their "fundamental facets" resolved.