Greetings,
In the interest of supporting NCName validity checking in CXML[1],
I've attached a diff that adds an NCName comparator function,
VALID-NCNAME-P, to CXML's xml-name-rune-p.lisp. Essentially, the
NCName comparator function assumes much of the code used in
VALID-NAME-P albeit not accepting colon "#\:" as a valid
non-colonized name (NCName) character.
In addition, the patch:
* narrows the type declaration for rune-as-code to (UNSIGNED-BYTE
16) namely in the interest of some albeit small, possible math
optimization in the compiler
* adds 'rod' as a type declaration in the rod-as-rod comparator
functions such that will be defined in the global namespace -- such
that hopefully may be of some assistance to the compiler, towards
determining the type of sequence that may be expected for the
'every' function calls
Lastly, in the patch's code formatting, the patch
* trims end-of-line whitespace - cf. Emacs 23.4 'whitespace.el'
* might be transforming space->tabs in a few spots - such that
seems to me as it being oddly difficult to undo, that even when
indent-tabs-mode is nil the changes as such are retained in the
file. So, I hope that won't be a bother.
Cheers.
[1] cf. XSD string data types, also cf. OMG XMI -- in which,
essentially every UML element name should be valid as an NCName, as
would be implicit with regards to XMI serialization of UML models -
cf. Project Lupine[2]
[2]
https://github.com/GazeboHub/lupine-m2