Search code examples
xmlxsdoxygenxml

Can I extend ID and IDREF to make it support characters:colon,slash,space?


I have some xml document and this xml has some elements whose attribute value is unique(eg: name). I want to use xs:ID to identify it in XSD. My question is: Is there any way to extend xs:ID to make it support characters: colon, slash, space? Because the attribute "name" maybe have these characters.

I know there are some alternatives, eg: using xsd:key in XSD or using XSLT to validate by xsl:key. But I still like to ask if there is a way to extend xs:ID (eg: override some facts).

The main reason is the auto-completion feature of my xml editor (Oxygen XML Editor) only support xs:ID and xs:IDREF. (Maybe we can write some Editor plugin to support it, but it's very ugly. Because it will lead to editor dependency and we will write java code instead of xml.)


Solution

  • No, ID and IDREF values are constrained (for arcane reasons connected with SGML) to have the syntax of XML names.