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

PHP и .xsd - PHP

14.06.2018, 08:05. Просмотров 119. Ответов 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 и .xsd (PHP):

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
Здравствуйте!!! Помогите мне с мой проблемой пожалуйста. Проблема в том что,...

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

1
neket89
0 / 0 / 1
Регистрация: 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!? переведите с паскаля на php пару строчек (классы)?
Type TMyCar = record name:string; koleso:array of integer; end; вот это...

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

Как отключить PHP директиву disable_functions в php.ini ?
На официальном сайте написано, что её можно отключить только в самом...

Друзья необходим код php. Формы и файлы в PHP
1. Составить программу, благодаря которой пользователь может выбрать стиль...


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

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

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