Saxon - можем ли мы запросить, использует ли он схему - PullRequest
0 голосов
/ 20 июня 2020

Есть ли способ узнать, есть ли у загруженных данных в Saxon файл схемы, который был применен к данным? Я спрашиваю, потому что, если это не схема, мы можем проанализировать возвращенные строки, и если они соответствуют формату для стандарта xml для datetime, преобразовать их на низком уровне в нашей библиотеке.

Например, если базовые данные всегда являются String, Number или Boolean (JSON, XML без схемы), то мы смотрим на каждое возвращаемое строковое значение, и если оно имеет форму «2002-05-30T09: 00: 00» мы анализируем его и превращаем в OffsetDateTime. Но только если нет схемы как схемы, возвращающей это, поскольку String предположительно имеет свои причины.

1 Ответ

0 голосов
/ 20 июня 2020

Вы можете определить, был ли узел обработан с помощью схемы, проверив его тип: без схемы узлы элементов всегда будут иметь тип element(*, xs:untyped), а «типизированное значение» узлов атрибутов (результат данных ( ) функция) будет xs:untypedAtomic, а не (скажем) xs:string.

Узлы - единственное, к чему вы можете применить схему: если это не узел, то к нему не применялась схема.

Я не думаю, что полностью понимаю вашу проблему, но на первый взгляд кажется, что различие, которое вы ищете, могло бы быть различием между xs:untypedAtomic и xs:string. Но только если вещи, которые вы называете «базовыми данными» и «возвращенными строками» (какими бы они ни были), сохраняют это различие.

...