#xml #validation #types #xsd #maxlength
Вопрос:
Мне нужно проверить максимальную длину буквенно-цифровых данных в XML-документе, используя схему XSD. Если я использую базовое ограничение xs:string, я получу ошибки проверки типа, потому что он содержит числа. Есть ли лучший способ сделать это?
Каждое поле в XML, которое я проверяю, имеет разную длину поля, которую я проверяю. Единственные, в которых я получаю ложные ошибки, — это ошибки со смешанными числами и символами, которые ожидаются для этих конкретных полей. Мне нужно проверить максимальную длину, потому что, если они превысят ее, она не сохранится в базе данных, и я хочу знать, когда это произойдет с сообщением об ошибке.
Любые предложения или мысли будут оценены по достоинству!
Комментарии:
1. Настройте шаблон с помощью регулярного выражения
[A-Za-z0-9]{1,12}
. Я использовал только буквы ASCII, но вместо них язык регулярных выражений, используемый в XSD с классами символов Юникода, довольно мощный для поддержки других букв (напримерp{L}
, для всех букв Юникода).
Ответ №1:
Если вы получаете ошибки проверки буквенно-цифровых данных, значит, вы делаете что-то неправильно, но невозможно понять, что вы делаете неправильно, не зная, что вы делаете: покажите нам какой-то код, и мы расскажем вам, где вы ошиблись.
Конечно, ограничение xs:string
типа, использующего фасет максимальной длины, никоим образом не ограничит содержимое строки, за исключением ее длины.