XSTypeDefinition baseType = SimpleTypeDescription.getBaseTypeRecursive(stypedef);
AbstractTypeDescription.appendBaseType(signature, baseType);
// get facets
Map<Short, String> facets = SimpleTypeDescription.getFacets(stypedef);
StringList patterns = stypedef.getLexicalPattern();
for (Short facet : XSAnalyzerConstants.USED_FACETS) {
signature.append(facet).append(":");
signature.append(facets.get(facet)).append(":");
}
for (int i = 0; i < patterns.getLength(); ++i) {
signature.append(patterns.item(i)).append(":");
}
// handle enumeration
StringList enumeration = stypedef.getLexicalEnumeration();
List<String> enumCollection = XSListHelper.asList(enumeration);
Collections.sort(enumCollection);
for (String value : enumCollection) {
signature.append(value).append(":");
}