Вы можете сделать:
lst = ["A","a","b","B","CC","c"]
result = sorted(lst, key= lambda x: (x.lower(), not x.islower()))
print(result)
Вывод
['a', 'A', 'b', 'B', 'c', 'CC']
ОБНОВЛЕНИЕ
Учитывая новые вы примеры Вы можете использовать следующую клавишу:
lst = ["A", "aA", "aa", "aaa", "aAa", "aaA", "b", "B", "CC", "c"]
result = sorted(lst, key=lambda x: (x.lower(), ''.join(str(c.isupper()) for c in x)))
print(result)
Выходные данные
['A', 'aa', 'aA', 'aaa', 'aaA', 'aAa', 'b', 'B', 'c', 'CC']
Для другого примера (["A","a","aA","aa"]
) он дает:
['a', 'A', 'aa', 'aA']
Действительно ли возможно генерировать XML-схему от Базы данных?
Это уверенный, XMLSpy может генерировать XML-схему от базы данных.
Существует иначе, хотя я никогда не тестировал его:
create table Person
(
Age int not NULL check( Age > 0) ,
Height numeric(10,2) not NULL check( Height > 5),
Gender varchar(5) not null check( Gender in ('M', 'F', 'O')),
BirthDate datetime null,
)
DECLARE @schema xml
SET @schema = (SELECT * FROM Person FOR XML AUTO, ELEMENTS, XMLSCHEMA('PersonSchema'))
select @schema
Я мог сделать это как это:
DataSet results = new DataSet();
SqlCommand command = new SqlCommand("SELECT * FROM table", new SqlConnection(connectionString));
SqlDataAdapter sqlAdapter = new SqlDataAdapter(command);
sqlAdapter.FillSchema(results, SchemaType.Mapped);//Fills dataset with schema from query
results.WriteXmlSchema(mySchema);
Проблема, как я мог адаптировать этот метод так, чтобы это могло использоваться с неопределенной суммой таблиц? Не создавая строку, хотя конкатенация, которая не точно идеальна!
Используйте шаблон типизированного набора данных MyGeneration для автоматического создания XSD ( http://www.mygenrationssoftware.com ). Это бесплатно, OSS, и отлично работает. Кроме того, команда NDbUnit в настоящее время работает над дополнительным инструментом для NDbUnit, который позволит не только извлекать схему из базы данных, но и редактировать тестовые данные, содержащиеся в сопутствующем наборе данных XML. Расчетное время прибытия для этого инструмента - примерно середина июля.