Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XML-сущности (<!ENTITY>) 
:(
    Опции темы
PsiMagistr
Дата 5.10.2016, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: нет
Всего: 1



Ребята, помогите разобраться с <!ENTITY>

есть внешний dtd-файл. Все элементы из него зачитываются (XML соответствует валидации).

Код

<!ELEMENT test (settings, finish+, question+)>
<!ATTLIST test language CDATA #REQUIRED>
<!ELEMENT settings (title, exit)>
<!ELEMENT title (#PCDATA)> 
<!ELEMENT exit (#PCDATA)>
<!ATTLIST exit href CDATA #REQUIRED>
<!ELEMENT finish (message)>
<!ELEMENT message (#PCDATA|range)*>
<!ELEMENT range (#PCDATA)>
<!ATTLIST range min CDATA #REQUIRED
max CDATA #REQUIRED>
<!ATTLIST finish id ID #REQUIRED>
<!ELEMENT question (answer+)>
<!ATTLIST question id ID #IMPLIED
value CDATA #REQUIRED>
<!ELEMENT answer (set*, unset*, if*, unless*)>
<!ATTLIST answer value CDATA #REQUIRED
weight CDATA #IMPLIED
goto IDREF #IMPLIED>
<!ELEMENT set EMPTY>
<!ATTLIST set name CDATA #REQUIRED>
<!ELEMENT unset EMPTY>
<!ATTLIST unset name CDATA #REQUIRED>
<!ELEMENT if EMPTY>
<!ATTLIST if name CDATA #REQUIRED
goto IDREF #REQUIRED>
<!ELEMENT unless EMPTY>
<!ATTLIST unless name CDATA #REQUIRED
goto IDREF #REQUIRED>
<!ENTITY br '&lt;br /&gt;'>. 



 Все, кроме 





Код

<!ENTITY br '&lt;br /&gt;'>. 

Сущности упорно отказываются валидироваться. А при открытии XML файла в мозилле, получаю сообщение "Сущность br не определена".

Благодарю всех участников.

Это сообщение отредактировал(а) PsiMagistr - 5.10.2016, 14:40


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
diadiavova
Дата 5.10.2016, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5820
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Я, конечно, не силен в DTD, но, возможно lt и gt тоже объявить надо прежде чем использовать. В XML их можно использовать и так без объявления, но не факт, что в дтд это тоже так.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
PsiMagistr
Дата 5.10.2016, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: нет
Всего: 1



Цитата(diadiavova @ 5.10.2016,  16:38)
Я, конечно, не силен в DTD, но, возможно lt и gt тоже объявить надо прежде чем использовать. В XML их можно использовать и так без объявления, но не факт, что в дтд это тоже так.

Благодарю за Ваше участие!

Проблема в том, что сущность отказывается определяться, что бы я ни подставил DTD в заменяемое значение. Даже если это просто какая нибудь строка.

Код

 <!ENTITY br "Vasya">



Это сообщение отредактировал(а) PsiMagistr - 5.10.2016, 17:48


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
LSD
Дата 5.10.2016, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15708
Регистрация: 24.3.2004

Репутация: 8
Всего: 537



Я попробовал в Altova XML Spy и &br; прекрасно сработало. XML Spy сам ее подсказывает.
Покажи свой XML.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
PsiMagistr
Дата 6.10.2016, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: нет
Всего: 1



Цитата(LSD @ 5.10.2016,  18:46)
Я попробовал в Altova XML Spy и &br; прекрасно сработало. XML Spy сам ее подсказывает.
Покажи свой XML.

Сердечно благодарю за участие!

Код

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE test SYSTEM "../../../8th_day_tests.dtd">
<test language="../../../language/RU.ini">
    <settings>
        <title>Кто такой Человек Восьмого Дня?</title>
        <exit href="http://algart.net/ru/8th_day_of_creation/man_of_8th_day/">Перейти к статье Кто такой человек Восьмого Дня</exit>
    </settings>    
    <finish id="last1">
        <message>Умолчание</message>             
                
        <!-- Комментарий -->
        <!--<default>Вы набрали %d из %d максимально возможных баллов. Просто великолепно! Вы человек восьмого дня! Не может такого быть.</default>    -->
    </finish>
    <finish id="last2">
        <message>
            Вы набрали %d из %d максимально возможных баллов. Просто великолепно!
            Вы человек восьмого дня!
            Не может такого быть.  
        </message> 
            <range min="0" max="10"><message>Вы набрали %d из %d максимально возможных баллов. Пока Вы нам не подходите. Потренеруйтесь еще.</message></range>
            <range min="11" max="20"><message>Вы набрали %d из %d максимально возможных баллов. Увы, но пока Вы нам все еще не подходите..</message></range>
            <range min="21" max="30"><message>Вы набрали %d из %d максимально возможных баллов. Вы человек 8 дня. но пока только наполовину.</message></range>
            <range min="31" max="40"><message>Вы набрали %d из %d максимально возможных баллов. Ооо! Вы прешли больше половины теста.</message></range>
            <range min="41" max="50"><message>Вы набрали %d из %d максимально возможных баллов. Еще немножечко. Подтянитесь.</message></range>
            <range min="51" max="60"><message>Вы набрали %d из %d максимально возможных баллов. Вы растете!</message></range>
            <range min="71" max="80"><message>Вы набрали %d из %d максимально возможных баллов. Скоро перейдете Рубикон!</message></range>
            <range min="81" max="84"><message>Вы набрали %d из %d максимально возможных баллов. Последняя капля осталась!</message></range>
        <!-- Комментарий -->
        <!--<default>Вы набрали %d из %d максимально возможных баллов. Просто великолепно! Вы человек восьмого дня! Не может такого быть.</default>    -->
    </finish>
    <question id="level7" value="Понимаете ли вы цель своей жизни?&lt;br/&gt;Понимаете &br; или нет?">    <!-- Вот сущность &br -->
        <answer value="Да" weight="5" />
        <answer value="Нет" goto="level1" />
    </question>
    <question value="Где во времени находится цель вашей жизни?">    
        <answer value="Я планирую достичь своей цели в течении своей жизни" />
        <answer value="Цель моей жизни находится за пределами этой конкретной земной жизни" weight="5" />
    </question>
    <question id="level1" value="Вы готовы практически работать, здесь и сейчас, ради достижения своей цели?">    
        <answer value="Да, я уже работаю" weight="5" />
        <answer value="Нет, в данный момент у меня нет возможности: очень занят на работе, должен кормить семью, должен/должна заботиться о маленьком ребенке, мешает болезнь, какие-то другие причины..." goto="level6" />
    </question>
    <question value="Готовы ли вы, работая ради достижения своей цели, изменить себя и свой образ жизни?">    
        <answer value="Да" weight="2" />
        <answer value="Нет" />        
    </question>
    <question value="Готовы ли вы, работая ради достижения своей цели, изменить окружающий мир?">    
        <answer value="Да" weight="3" />
        <answer value="Нет" />        
    </question>        
    <question id="level6" value="Есть ли у Вас устойчивая система ценностей?">    
        <answer value="Да" weight="5" />
        <answer value="Нет" goto="level2" />
    </question>
    <question value="Готовы ли вы, в рамках системы ценностей, усложнять мышление и развивать себя?">    
        <answer value="Да" weight="5" />
        <answer value="Нет" />    
    </question>
    <question id="level2" value="Каково ваше отношение к существующей реальности 7-го Дня Творения?">
        <answer value="Тяжело, но пока приходится жить в этой реальности" goto="level5" />
        <answer value="Я не могу жить в этом мире" weight="5" />
    </question>
    <question value="Готовы ли вы творить новую реальность вместе с другими людьми 8-го Дня?">    
        <answer value="Да" weight="5" />
        <answer value="Нет" />    
    </question>
    <question id="level5" value="Вы готовы работать в рамках тех правил и парадигм, которые вам предлагают другие (общество, религия, государство, семья и т.д.)?">    
        <answer value="Да, ведь выбора нет" goto="level3" />
        <answer value="Нет, я так не могу" weight="5" />       
    </question>
    <question value="Вы умеете и готовы формулировать собственные правила и парадигмы, чтобы работать в соответствии с ними?">
        <answer value="Да" weight="5" />
        <answer value="Нет" />
    </question>
    <question id="level3" value="Вы заинтересованы в развитии своего потенциала?">
        <answer value="Да" weight="5" />
        <answer value="Нет" goto="level4" />
    </question>
    <question value="Вы готовы задействовать свой потенциал для развития Мира?">
        <answer value="Да" weight="5" />
        <answer value="Нет" />
    </question>
    <question id="level4" value="Стремитесь ли Вы к постоянному и всеобщему диалогу">
        <answer value="Да" weight="5" />
        <answer value="Нет" goto="last2" />
    </question>    
    <question value="Вы стремитесь к диалогу с самим собой?">
        <answer value="Да" weight="5">
            <set name="dialog"/>
        </answer>
        <answer value="Нет" />
    </question>
    <!--Комментарий -->
    <!--Комментарий -->
    <question value="Вы стремитесь к диалогу с другими людьми?">
    <!--Комментарий -->
        <answer value="Да" weight="5">
           <set name="dialog" />
        </answer>
        <answer value="Нет" />
    </question>
    <question value="Вы стремитесь к диалогу с Миром?">
        <answer value="Да" weight="5">           
           <set name="dialog" />           
        </answer>
        <answer value="Нет" />
    </question>
    <question value="Вы стремитесь и готовы к диалогу с Богом?">
        <answer value="Да" weight="5" goto="last2" />
        <answer value="Нет" weight="0">
           <if name="dialog" goto="last2"/>
        </answer>
    </question>
    <!--Комментарий -->
    <!--Комментарий -->
    <!--Комментарий -->
    <!--Комментарий -->
    <question value="Но вы же сказали, что стремитесь к всеобщему диалогу! По-видимому, это не так. Попробуйте еще раз!">
        <answer value="Вернуться к вопросу про диалог" goto="level4">
         <unset name="dialog"/>         
        </answer>        
    </question>
</test>


И DTD


Код

<!ELEMENT test (settings, finish+, question+)>
<!ATTLIST test language CDATA #REQUIRED>
<!ELEMENT settings (title, exit)>
<!ELEMENT title (#PCDATA)> 
<!ELEMENT exit (#PCDATA)>
<!ATTLIST exit href CDATA #REQUIRED>
<!ELEMENT finish (message, range*)>
<!ELEMENT message (#PCDATA)>
<!ELEMENT range (message)>
<!ATTLIST range min CDATA #REQUIRED
max CDATA #REQUIRED>
<!ATTLIST finish id ID #REQUIRED>
<!ELEMENT question (answer+)>
<!ATTLIST question id ID #IMPLIED
value CDATA #REQUIRED>
<!ELEMENT answer (set*, unset*, if*, unless*)>
<!ATTLIST answer value CDATA #REQUIRED
weight CDATA #IMPLIED
goto IDREF #IMPLIED>
<!ELEMENT set EMPTY>
<!ATTLIST set name CDATA #REQUIRED>
<!ELEMENT unset EMPTY>
<!ATTLIST unset name CDATA #REQUIRED>
<!ELEMENT if EMPTY>
<!ATTLIST if name CDATA #REQUIRED
goto IDREF #REQUIRED>
<!ELEMENT unless EMPTY>
<!ATTLIST unless name CDATA #REQUIRED
goto IDREF #REQUIRED>
<!ENTITY br "Vasya">


Код

Warning: DOMDocument::load() [domdocument.load]: Entity 'br' not defined in file:///Z:/home/magictest/www/tests/ru/man_of_8th_day/man_of_8th_day.xml, line: 31 in Z:\home\magictest\www\includes\companion.php on line 5


Браузер Мозилла тоже выдает ошибку при открытии XML "Сущность &br не определена".

Когда я определяю сущности прямо в документе Xml все валидируется. Но стоит мне определить ее во внешнем DTD - ничего не выходит.

Благодарю Вас.

Это сообщение отредактировал(а) PsiMagistr - 6.10.2016, 15:00


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
PsiMagistr
Дата 6.10.2016, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: нет
Всего: 1



Altova валидирует.

Попытка прочесть документ браузером мозиллы приводит к ошибке (см. приложенный снимок)

Это же касается и функции validate (PHP)

Это сообщение отредактировал(а) PsiMagistr - 6.10.2016, 12:18

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  Error.jpg 146,97 Kb


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
LSD
Дата 6.10.2016, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15708
Регистрация: 24.3.2004

Репутация: 8
Всего: 537



Насчет PHP фиг его знает, надо в разделе PHP спрашивать. Я проверил в Java, там все ОК, ENTITY загружается успешно.

По поводу Firefox, у них есть пара багов на эту тему: 6979922942 и судя по всему фиксать они это не будут:
Цитата
shows that neither Opera (with default settings) nor Chrome load the external subset even from the same origin



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
PsiMagistr
Дата 6.10.2016, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 479
Регистрация: 31.12.2009

Репутация: нет
Всего: 1



Благодарю Вас.

Попробую спросить в разделе PHP


--------------------
"Арфы нет? Возьмите бубен!

Ребята, будем жить!"

 (с) "В бой идут одни старики"

---

"ИЕ" - один из самых сумасшедших браузеров в нашей галактике.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.1422 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.