В ответ на Ваше разъяснение...
Вы могли использовать ctypes для выполнения функции c "strcasecmp". Ctypes включен в Python 2.5. Это обеспечивает способность обратиться к dll и совместно использованным библиотекам, таким как libc. Вот быстрый пример (Python на Linux; см. ссылку для справки Win32):
from ctypes import *
libc = CDLL("libc.so.6") // see link above for Win32 help
libc.strcasecmp("THIS", "this") // returns 0
libc.strcasecmp("THIS", "THAT") // returns 8
может также хотеть к ссылке strcasecmp документация
Едва ли уверенный, что это немного быстрее, или медленнее (не протестировали), но это - способ использовать функцию C, чтобы сделать нечувствительные к регистру сравнения строк.
Код ~~~~~~~~~~~~~~
ActiveState - Рецепт 194371: Нечувствительные к регистру Строки являются рецептом для создания нечувствительного к регистру строкового класса. Это могло бы быть закончено уничтожения для чего-то быстрого, но могло предоставить Вам распространенный способ обработать нечувствительные к регистру строки, если Вы планируете использование их часто.
Типы можно расширять, например:
<xsd:complexType name="MySubType">
<xsd:complexContent>
<xsd:extension base="Identifier">
<xsd:sequence>
<!-- More elements here -->
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
этот сложный тип всегда будет преобразован в
<Identifier>
<Id>string</Id>
<Version>string</Version>
</Identifier>
, если вам не нужна дочерняя структура, вы можете определить Id и Version как элементы и ссылаться на них, используя
<xsd:element ref="Id"/>
<xsd:element ref="Version"/>
позже. Но тогда у вас нет гарантии, что они оба произойдут
Вы также можете сделать атрибуты Id и Version для элемента Identifier в сложном типе
удачи Майк