XML ключ /keyref для нескольких экземпляров XML
Можно ли проверить ключ /keyref в нескольких экземплярах XML. Пример: xsd1 определяет схему и пространство имен для списка типов данных, каждый тип данных имеет уникальный идентификатор идентификатора, который определяется как ключевая ссылка. xsd2 определяет список объектов, которые должны использовать идентификаторы из xsd1. В программном обеспечении для написания XML Oxygen, например, xsd-ссылка с ключом /keyref в двух пространствах имен работает, но мне не удается создать сценарий проверки, например: "Поле X в XML2 (проверено по xsd2) может содержать только значения из полей ID в XML1(проверено на соответствие xsd1)"
Возможно ли это вообще в состоянии разработки XML? Или мне всегда придется выполнять эту проверку вручную? Что не было бы большим делом, но было бы полезно предоставить пользователям сложный инструментарий авторизации-валидации, если таковой существует.
Спасибо заранее!
1 ответ
Это невозможно сделать с помощью XSD. Вы можете сделать это через документы, используя Schematron. Теперь, эквивалент Schematron для key/keyref не так декларативен, как его аналог XSD, но тем не менее выполним. Посмотрите эту статью, чтобы узнать подробности... имейте в виду, что она предназначена для общего решения конструкции key / unique / keyref, возможно, вы могли бы сделать это проще для вашего конкретного случая.