Подтвердить что ты не робот

Шаблон ограничения схемы XML для недопущения пустых строк

В моей XML-схеме у меня есть элемент строки типа, который я не хочу быть пустым (если он содержит пробелы и т.д. Я также считаю его пустым)

Я применил ограничение, которое я нашел в http://blogs.msdn.com/b/neerajag/archive/2005/08/12/450723.aspx

<xsd:restriction base = "xsd:string">
  <xs:minLength value="1" />
  <xs:pattern value=".*[^\s].*" />
</xsd:restriction>

Что именно делает этот шаблон и будет делать то, что я ожидаю?

4b9b3361

Ответ 1

не делает ли это именно то, что вы хотите?

 <xs:restriction base="xs:token">
  <xs:minLength value="1"/>
 </xs:restriction>

Если строка содержит только пробелы (фиды строк, возврат каретки, вкладки, начальные и конечные пробелы), процессор удалит их, поэтому проверка не удастся; если что-то еще, проверка будет успешной. (обратите внимание, что: внутренние последовательности из двух или более пробелов будут удалены - убедитесь, что вы в порядке с этим)

Ответ 2

Образец:

  • ноль или более символов .* (. соответствует любому символу).
  • совпадает с чем-либо, не указанным в списке символов. \s - это пробел, поэтому [^\s] означает совпадение с чем-то, что не является пробелом. Начальный ^ в матче отрицает нормальное соответствие любому из этих символов.
  • ноль или более символов.

Ответ 3

Я не знаю, насколько полезен, но я нашел лучший образец, чем первый опубликованный. Вот он:

<xs:simpleType name="nonEmptyString">
    <xs:restriction base="xs:string">
        <xs:pattern value="(\s*[^\s]\s*)+"></xs:pattern>
    </xs:restriction>
</xs:simpleType>

Использование Eclipse, кажется, работает нормально.

Ответ 4

Взгляд на тему публикации "шаблон для недопущения пустых строк", который до сих пор остается без ответа. Вы можете сделать это с помощью тега <xsd:whiteSpace value="collapse" />, чтобы запретить пробелы

whiteSpace, установленный в "collapse", он выполнит следующее

  • удаляет все символы пробела, включая линейные каналы, вкладки, пробелы, возврат каретки
  • удаляются ведущие и конечные пробелы.
  • несколько пробелов сводятся к одному пространству

Ссылка: W3C whiteSpace