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

  • Автор темы xelaok
  • Дата начала
Статус
Закрыто для дальнейших ответов.
X

xelaok

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

Barmutik

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

xelaok

Гость
#3
Вот что я нарыл в хелпе 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 возрващает пустой результат и в документ можно пихать данные любого типа. Никакой проверки на ошибки не идет вообще. Либо я чего-то недопонимаю, либо это такая недоделанная компонента.
:(
 
B

Barmutik

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

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

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

xelaok

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

Barmutik

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

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

xelaok

Гость
#7
Знать бы как. IDL? И как его подключить?
 
X

xelaok

Гость
#8
А епт, "Import type library..." !!! Щас буду испытывать...
 
Статус
Закрыто для дальнейших ответов.