2012-05-18 3 views
0

Возможно, для этого не существует никакого реального использования в мире, но мне было интересно, можно ли проверить свойство против xsd. Я создал файл CS из схемы с использованием xsd.exe, но ни один из логики проверки не была перенесена, например ....xsd проверка свойства C#

<xsd:element type="Text_Key" name="LPI_Key"/> 
</xsd:simpleType> 
<xsd:simpleType name="Text_Key"> 
<xsd:restriction base="xsd:string"> 
    <xsd:length value="14" fixed="true"/> 
    <xsd:pattern value="[0-9][0-9][0-9][0-9][LXC][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"/> 
</xsd:restriction> 

Generates 

private string lPI_KeyField; 

Может быть, им что-то отсутствует, но я бы подумал, что это возможно. Я знаю, что могу подтвердить, что если я затем преобразую свойство в xml, но это немного похоже на шаг назад, и, как я уже сказал, он может не иметь никакого реального использования, но похоже, что если логика проверки уже существует, почему бы не использовать ее , Идентификатор причины для свойства, поэтому я могу сообщить пользователю, когда он вводит значение, что-то не так, вместо того, чтобы ждать, пока все значения будут введены, и они попадут в submit перед преобразованием в xml и проверки. Надеюсь, это повлияет на ситуацию, и если я пропустил какие-либо очевидные уроки или что-то, что я хотел бы сказать, что у меня есть googled, но все, что я получил, было «проверять xml против xsd». Иногда просто знание ключевых слов делает все возможное для поиска в Google.

Быстродействие в Romil:

спасибо за Быстродействие. Хотя я соглашусь, что RegEx выполнит требуемую проверку, если xsd.exe сгенерирует это для вас, было бы здорово. но, как видно из моего первоначального сообщения, проверка не переносится, вы можете сказать, что я просто ленив, но я вижу это как попытку уменьшить несчастные случаи и путаницу. Использование одного набора правил проверки через приложение, хранилище данных и т. Д. Означало бы, что ошибки проверки не будут запрещать пользователю (в случае выше схемы xml - это предопределенная схема, в которой я не контролирую, и я уверен, что это случай, который многие люди тоже будут относить). если я должен был написать свою собственную проверку регулярного выражения (а схема im, использующая в качестве точки ссылки, очень большая) и правила проверки xsd, где нужно изменить, я должен был бы обновить все изменения в моем регулярном выражении (с учетом помните, что исходный RegEx может запретить пользователям вводить действительные данные до тех пор, пока не будет выполнено обновление). Теперь, если бы я был способен проверять непосредственно на xsd, это просто вопрос замены старого и размещение нового в (для целей этого вопроса мы можем предположить, что изменилась только логика проверки ;-)) и ведь значение свойства остается тем же значением, которое было бы в строке xml.

ответ

0

Используйте RegEx для проверки значения свойства.

XSD проверяется только на XML.

Смежные вопросы