Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
neket89
0 / 0 / 0
Регистрация: 14.06.2018
Сообщений: 2
1

PHP и .xsd

14.06.2018, 08:05. Просмотров 145. Ответов 1
Метки нет (Все метки)

Доброго времени суток. Необходимо XML-файл проверить на соответствие схеме http://7sites.ru/xsd.zip
A_LARU20USPP190700_C_RUMS_20180419071021.xml - проверяемый файл

Делаю следующим образом:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    clearstatcache();
    $script_starttime = microtime(true);
    libxml_use_internal_errors(true);
 
    $xml = new XMLReader; 
    $xml->setSchema(dirname(__FILE__).'/metarSpeci.xsd');
    $xml->open(dirname(__FILE__).'/A_LARU20USPP190700_C_RUMS_20180419071021.xml');
    
    while (@$xml->read()) {};
    echo "<pre>";
    print_r(libxml_get_errors());
    echo "</pre>";
    if (count(libxml_get_errors ())==0) {
        echo 'good';            
    } else {
        echo 'error';
    }
Выдаёт предупреждение:
Warning: XMLReader::setSchema(): Unable to set schema. This must be set prior to reading or schema contains errors.
Ругается на эту строку: $xml->setSchema(dirname(__FILE__).'/metarSpeci.xsd');
и выдаёт пустой массив.

Если сделать так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    clearstatcache();
    $script_starttime = microtime(true);
    libxml_use_internal_errors(true);
 
    $xml = new XMLReader; 
    $xml->open(dirname(__FILE__).'/A_LARU20USPP190700_C_RUMS_20180419071021.xml');
    $xml->setSchema(dirname(__FILE__).'/metarSpeci.xsd');
    
    while (@$xml->read()) {};
    echo "<pre>";
    print_r(libxml_get_errors());
    echo "</pre>";
    if (count(libxml_get_errors ())==0) {
        echo 'good';            
    } else {
        echo 'error';
    }
То есть open поставить перед чтением схемы, тогда выдаётся куча предупреждений в массиве вида:
PHP
1
2
3
4
5
6
7
8
9
10
    [0] => LibXMLError Object
        (
            [level] => 2
            [code] => 3004
            [column] => 0
            [message] => Element '{http://www.w3.org/2001/XMLSchema}element', attribute 'type': References from this schema to components in the namespace 'http://www.opengis.net/om/2.0' are not allowed, since not indicated by an import statement.
 
            [file] => /public_html/modules/mod_iwxxm/tmpl/metarSpeci.xsd
            [line] => 24
        )
Что делаю не так? Как правильно организовать проверку на соответствие схемам?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2018, 08:05
Ответы с готовыми решениями:

Php!? при закрытии окна выполнить файл del.php!?
Как отловить закрытие окна, при его закрытии должен выполниться некий файл...

Как остановить выполнение скрипта php другим скриптом php?
Как остановить выполнение скрипта php другим скриптом php?Спасибо!

PHP-юмор или PHP-загадка, каждый воспримет по-своему
Обнаружил сейчас в папке &quot;Спам&quot; такой вот шедевр. Спешу поделиться с коллегами!...

Вебинар по PHP - для тех, кто хочет начать изучение PHP, 30 июля.
Приглашаю всех желающих на вебинар для тех, кто только хочет начать изучение...

Fatal error: Class 'PEAR_Error' not found in C:\xampp\php\PEAR\DB.php on line 947
Здравствуйте!!! Помогите мне с мой проблемой пожалуйста. Проблема в том что,...

1
neket89
0 / 0 / 0
Регистрация: 14.06.2018
Сообщений: 2
15.06.2018, 13:42  [ТС] 2
Может быть я не правильно сформулировал? Кто-нибудь сталкивался с валидацией и схематроном? Как решали подобные проблемы?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2018, 13:42

Php+html!? Как в php файле вывести input type='button' через echo!?
ну собственно говоря я все спросил в заголовке...

php!? переведите с паскаля на php пару строчек (классы)?
Type TMyCar = record name:string; koleso:array of integer; end; вот это...

Преобразование HTML-PHP в PHP с запуском в командной строке.
Есть программа по вычислению двойных интегралов на PHP. Надо ее преобразовать в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru