I ran into a problem with one of my XSD’s that heavily uses namespaces with elements. The problem occurred because Misc::strip_element_name() removes the namespace. This is called at the beginning of matchFieldsCallback(). So as an example, I have a field dct:accessRights. In the xsd_display_matchfields table, the xsdmf_element gets stored as !dct:accessRights when the field is defined. In matchFieldsCallback(), the dct: is stripped causing a search for !accessRights which doesn’t exist.
In my local code, I fixed this by adding code to strip_element_name to not strip off my namespaces. This doesn’t seem to have had a negative effect on other areas of Fez. But I don’t like this hardcoded fix.
What is the purpose of stripping off the namespace before creating the full element name? If this really is needed for other parts of Fez to operate correctly, then it seems like a better fix would be to generate the xsdmf_element name without namespaces when the field is defined. Am I missing something here?