2014-12-11 2 views
1

Я работаю с файлами XML/XSD, но у меня есть одна проблема с проверкой.XSD шаблон ограничения для символов с акцентом

Одно поле имеет это ограничение:

<xs:pattern value="[A-Za-z0-9 '\-\./]+"/> 

Но когда я ставлю это значение:

валидатор говорит, что "Узор ограничение не удалось"

Поэтому в основном то, что я «Я спрашиваю: есть ли акцентированные символы в шаблоне az?

Если нет, что мне делать? (Учтите, что я не могу изменить .xsd, потому что это не мое, и мне не разрешено.)

ответ

0

Нет, акцентированные символы не включены в шаблон [A-Za-z].

Если бы вы могли изменить XSD, и если вы хотите, гораздо более общий шаблон Unicode основе, можно указать:

<xs:pattern value="[\p{L}\p{P}\p{N}]+"/> 

Объяснение:

  • \ р {L} соответствует букве
  • \ p {P} соответствует знаку пунктуации (для получения вашего апострофа)
  • \ p {N} соответствует числу
  • [...]+ соответствует одному или нескольким его содержащим символам.

Если вы не можете изменить XSD, и если вы хотите, чтобы ваш документ был действительным, вы должны соблюдать его ограничения. Могут быть причины, кроме пренебрежения тем, что XSD исключает не кодовые точки ASCII. Например, потребительские приложения могут ожидать или даже требуют ASCII.

+0

Прежде всего, большое спасибо за редактирование моего вопроса (мой английский - не лучший английский, который вы можете прочитать) и отвечая. Я уже проверял ваш комментарий как ответ. Во-вторых, вы говорите мне, что нет способа поставить акцентированных персонажей? Даже с такими объектами, как & egrave; или что-то типа того? Заранее спасибо. –

+1

'& egrave;' - это объект HTML, который не существует в простом XML, но да, используя эквивалент 'è' в файле XML, ничем не отличается от непосредственного использования 'è'. В схеме явно запрещены символы с акцентом, поэтому, если вы хотите пройти проверку, вам придется их вынуть. – bobince