Как требовать больше содержимого, чем пробельные символы в XSD? - PullRequest
0 голосов
/ 27 августа 2018

У меня возникли проблемы при разработке выражения регулярного выражения, которое позволило бы мне проверить следующее:

Текст тега не является:

Empty

<TextTag></TextTag>

Пробел

<TextTag>    </TextTag>

Разрыв строки

<TextTag>
</TextTag>

Но в то же время допускайте любые пробелы и разрывы строк в середине текста, например:

<TextTag>this would 
be an example </TextTag>

самый близкий, который я смог достичь, был .*[^\s-].*, но он терпит неудачу, когда в середине есть разрыв строки, как в примере, который я дал вам.

Вы знаете, как я мог это сделать?

1 Ответ

0 голосов
/ 27 августа 2018

Вы можете использовать xsd:whiteSpace фасет с value="collapse" и требовать длину не менее 1:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="MoreThanWhiteSpaceElement">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:whiteSpace value="collapse"/>
        <xs:minLength value="1"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
</xs:schema>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...