Связывание XML-схемы/структура объектной модели в Cocoa

Новое в XSD здесь.

Кто-нибудь нашел или написал структуру для проверки XML с помощью схемы XML в Cocoa/Obj-C?

Что мне действительно нужно, так это возможность определять разрешенные типы модификаций NSXMLDocument, как описано в файле XSD. Это включает в себя определение последовательностей дочерних элементов, списка атрибутов и их разрешенных значений и т. д. Мне нужно указать эти правила модификации в моем пользовательском интерфейсе. Например:

  • Я хочу ограничить имена новых дочерних элементов, добавленных к существующему узлу NSXMLElement в моем NSOutlineView.
  • Если XSD говорит, что узел A имеет обязательные дочерние элементы (узлы Aa и Ab), то, когда пользователь добавляет узел A в дерево XML, я хочу автоматически создать узлы Aa и Ab и добавить их к только что созданному узлу A.
  • и т. д. и т. д.

Мне кажется, что хорошим решением был бы Cocoa-аналог JAXB. XSOM (который не создает классы, производные от схемы, а скорее предоставляет объектную модель XSD с возможностью запроса) также будет работать.

Мой вопрос похож на этот one, но я не хочу ограничить себя JAXB-подобным решением. Мне интересно узнать другие решения, которые люди придумали для этой проблемы.

Ваше здоровье!!


person Yahya Cahyadi    schedule 20.10.2010    source источник


Ответы (1)


Вы можете создать DTD и проверить его или создать рекурсивный синтаксический анализатор на основе вашего XSD , например существующие для RSS или Atom на основе spec.

person Paul Sweatte    schedule 03.08.2012