Ответ 1
Вот обширный и простой учебник, который помогает читать, а также создавать XML-документы, используя GDataXMLParser http://www.raywenderlich.com/725/how-to-read-and-write-xml-documents-with-gdataxml
Существует ли какая-либо инфраструктура привязки XML для Objective-C?
Я пробовал несколько поисков в google и еще ничего не нашел.
Я ищу что-то, что читает из XSD/DTD/XML и генерирует:
Вот обширный и простой учебник, который помогает читать, а также создавать XML-документы, используя GDataXMLParser http://www.raywenderlich.com/725/how-to-read-and-write-xml-documents-with-gdataxml
Кажется, что есть немного путаницы в отношении SAXy. Это не другая библиотека DOM, такая как NSXMLDocument или KissXML.
SAXy нацелен на другое проблемное пространство - привязку XML непосредственно к объектам домена с использованием более легкой модели управляемой событиями. Это более похоже на JAXB или Castor в мире Java.
Самый близкий родственник в области Objective-C - это код моделирования в RestKit. Хотя RestKit рекламирует поддержку XML, она в основном была удалена из текущей версии. SAXy был написан для заполнения пустоты.
Вы можете посмотреть NSXMLDocument
. Руководство по программированию Apple XML: http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/NSXML_Concepts/NSXML.html
Я не нашел внешних фреймворков для привязки XML, но я думаю, вы должны проверить Apple, предоставленное решение.
Для синтаксического анализа XML я preffer libxml2, здесь является простым руководством по внедрению этого мощного анализатора в ваш проект.
Надеюсь, я помог тебе.
LibXML - лучшее решение для этого требования. Он может загружать DTD и анализировать XML. Вы также можете использовать XPath для сопоставления модели с данными внутри структуры XML
Я не знаю, работает ли это для вас или нет, но GData object c library от Google может решить вашу задачу. Вы можете serach для цели GDataXML C в google. вы получите ссылку на code.google.com. Вы можете проверить, поддерживают ли они эту вещь. GData - действительно обширная библиотека, поэтому может быть, она может решить все для вас.
Если формат для вас не важен, вы можете использовать формат plist! Это XML с DTD, некоторые разные!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
Однако вы можете напрямую прочитать этот plist с NSDictionary (прочитайте документацию NSDictionary). Это так мощно и быстро! Никакой дополнительной рамки:)
Надеюсь, я помог тебе.
В github теперь есть полнофункциональная инфраструктура XML Marshalling для Objective-C:
https://github.com/reaster/saxy
Он имеет чистый API, автоматически сопоставляет классы с элементами, настраивается с помощью блоков и работает на iOS без зависимостей сторонних производителей.