2012-04-05 3 views
0

Извините за мой английский.XSD + регулярное выражение. Неправильное правило?

Я написал тип XML в моем файле XSD:

<xs:simpleType name="refId"> 
    <xs:restriction base="xs:ID"> 
     <xs:maxLength value="30"/> 
     <xs:minLength value="5"/> 
     <xs:pattern value="^ref-"/> 
    </xs:restriction> 
    </xs:simpleType> 

Все значения должны начинаться с "rEF-" текст. Но я получаю неверный результат для строки: «ref-title». Почему так происходит?

С уважением

+0

Какое у вас выражение регулярного выражения? Связано ли это с регулярным выражением? –

+0

> Какое у вас выражение регулярного выражения? Связано ли это с регулярным выражением? Да, это регулярное выражение. Я не понял, почему это работает неправильно. –

ответ

0

Шаблон относится ко всей строки, а не просто найти спичку внутри строки, вы, вероятно, обнаружите, что

<xs:pattern value="ref-.*" /> 

будет работать.

0

Огибающий^не представляет собой «начало строки» в диалекте регулярного выражения XSD, он представляет себя. Поэтому в вашем шаблоне указано, что значения идентификатора должны начинаться с «^», что, конечно же, сделает их недопустимыми идентификаторами. Шаблоны XSD неявно закреплены, поэтому значение = «ref -. *» - это то, что вам нужно.

+0

Спасибо за ответ! –