Название: QXmlSchema для работы со схемой, содержащей import
Отправлено: Maxa от Июль 06, 2016, 10:50
Пытаюсь прочитать схему с помощью QXmlSchema. Если схема не содержит ссылок на другие схемы, то все ОК. Но при чтении схемы, в которую входит <import ....>? например: <?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.company.org" xmlns="http://www.company.org" elementFormDefault="unqualified" xmlns:per="http://www.person.org" xmlns:pro="http://www.product.org"> <xsd:import namespace="http://www.person.org" schemaLocation="Person.xsd"/> <xsd:import namespace="http://www.product.org" schemaLocation="Product.xsd"/> <xsd:element name="Company"> <xsd:complexType> <xsd:sequence> <xsd:element name="Person" type="per:PersonType" maxOccurs="unbounded"/> <xsd:element name="Product" type="pro:ProductType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> я получаю ошибки: qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_client_method qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_client_method qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_server_method qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_server_method qt.network.ssl: QSslSocket: cannot resolve SSL_select_next_proto qt.network.ssl: QSslSocket: cannot resolve SSL_CTX_set_next_proto_select_cb qt.network.ssl: QSslSocket: cannot resolve SSL_get0_next_proto_negotiated Schema is invalid Error XSDError in Person.xsd, at line 1, column 0: Premature end of document. вот собственно, сам код: QString fileXSDSchema = "Company.xsd";
QFile fileXSD(fileXSDSchema); if (fileXSD.open(QIODevice::ReadOnly)) {
QXmlSchema schema;
if (schema.load(&fileXSD,fileXSD.fileName())) qDebug() << "Schema is valid"; else qDebug() << "Schema is invalid"; } Как прочитать такую "составную" схему?
Название: Re: QXmlSchema для работы со схемой, содержащей import
Отправлено: kai666_73 от Июль 06, 2016, 11:37
Ну так может проблема не в импорте а в самом файле Person.xsd?
Название: Re: QXmlSchema для работы со схемой, содержащей import
Отправлено: Maxa от Июль 06, 2016, 17:03
Нет, в том то и дело(( Если я считываю отдельно Person.xsd, который не содержит import, то все ок, схема прочитана и признана валидной. А вот когда читаю "главный" company.xsd, который содержит в себе два import, то выходят такие ошибки. Я предполагаю, что возможно неверно указан атрибут namespace у import, но не знаю, что указать, так как у меня локальная сеть, и схема лежит на сервере. Может кто-нибудь делал похожее? Чтоб читаемая схема включала в себя другие? Или придется извернуться и впихнуть все в одну схему самостоятельно?
|