Подключение схемы к Xml

Тема в разделе "Delphi - FAQ", создана пользователем xelaok, 25 ноя 2005.

Статус темы:
Закрыта.
  1. xelaok

    xelaok Гость

    Не подскажите ли мне с одним вопросом, короче проблема такова: в загружаемом xml файле есть ссылка на файл схемы, как его вообще к нему подключить. Мне это нужно для того чтобы знать точную структуру данных, проверка на типы и тп.
     
  2. Barmutik

    Barmutik Гость

    Не совсем понятен вопрос .. схема обычноиспользуется парсеров XML для проверки правильности структуры XML файла... подключается он автоматически парсером когда открывается XML файл с указанием на какую схему он опирается...
     
  3. xelaok

    xelaok Гость

    Вот что я нарыл в хелпе msxml:

    -------------------------------------
    Dim xmldoc As New MSXML2.FreeThreadedDOMDocument40
    Dim SchemaCache As New MSXML2.XMLSchemaCache40

    xmldoc.async = False
    xmldoc.resolveExternals = False
    xmldoc.validateOnParse = True
    SchemaCache.Add "x-schema:books", "c:\books.xsd"
    Set xmldoc.schemas = SchemaCache
    ' The document will load only if a valid schema is attached to the xml
    ' file.
    xmldoc.Load "c:\books.xml"
    If (xmlDoc.parseError.errorCode <> 0) Then
    Dim myErr
    Set myErr = xmlDoc.parseError
    MsgBox("You have error " & myErr.reason)
    Else
    MsgBox xmldoc.xml
    End If
    -------------------------------------

    Как отсюда видно схема сначала вручную загружается в кеш, а потом уже используется xml документом. В дельфи же я такого вообще не вижу. А без нее
    свойство TXMLDocument.SchemaRef возрващает пустой результат и в документ можно пихать данные любого типа. Никакой проверки на ошибки не идет вообще. Либо я чего-то недопонимаю, либо это такая недоделанная компонента.
    :(
     
  4. Barmutik

    Barmutik Гость

    Компоненты точно не доделанная, да и в станадртном msxml так нельзя ..

    Это видно только в XML 4.0 появилось это ... надо значит напрямую с их интерфейсами с 4-ой версии работать ...

    TXMLDocument вообще глючная компонента .. лучше ей не пользоваться ...
     
  5. xelaok

    xelaok Гость

    А как нибудь другие есть компоненты? Я до этого пользовался XMLPartner, так та по моему вообще полный мрак...
     
  6. Barmutik

    Barmutik Гость

    А в чём проблема напрямую использовать Micorsoft-овские интерфейсы ?

    Они на 70% похожи на борляндовский компонент .. нет разница конечно есть .. но малосущественная .. зато работают значительно стабильнее ...
     
  7. xelaok

    xelaok Гость

    Знать бы как. IDL? И как его подключить?
     
  8. xelaok

    xelaok Гость

    А епт, "Import type library..." !!! Щас буду испытывать...
     
  9. Barmutik

    Barmutik Гость

    Удачи! B)
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей