|
0 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 100
|
|
Вынос DTD в отдельный файл.15.09.2011, 20:22. Показов 2265. Ответов 8
Метки нет (Все метки)
Есть XML:
<?xml version = '1.0' encoding = 'UTF-8'?> <!DOCTYPE config [ ... содержимое DTD ... ]> <config> ... некий XML ... </config> Если DTD из него вынести в отдельный файл, в самом XML прописать так: <!DOCTYPE config SYSTEM 'beans.dtd'> то при попытке его разбора пишется: java.net.MalformedURLException: no protocol: beans.dtd Файл XML и этот самый beans.dtd оба лежат в одной директории. Хотелось бы вынести DTD в одтельный файл, ибо XML по такой схеме будет не единственный, — не править же каждый файл по отдельности. Это возможно? Как тогда правильно указывать в XML, где лежит его DTD? Для случая, если лежат они в одной директории. P.S.: Разбор — с валидацией, на всякий случай уточню.
0
|
|
| 15.09.2011, 20:22 | |
|
Ответы с готовыми решениями:
8
анализ XML на основе DTD . Как перенести класс в отдельный файл (InteliJ IDEA/Android Studio)? Создать файл XML и соответствующее ему DTD-определение. Задать схему XSD |
|
1 / 1 / 0
Регистрация: 15.02.2010
Сообщений: 311
|
|
| 16.09.2011, 11:36 | |
|
Так у Вас все - таки схема (XML Schema) или DTD?...
0
|
|
|
0 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 100
|
|
| 16.09.2011, 15:05 [ТС] | |
|
У меня DTD.
0
|
|
|
1 / 1 / 0
Регистрация: 02.08.2011
Сообщений: 64
|
|
| 17.09.2011, 20:41 | |
|
Нужно реализовать интерфейс org.xml.sax.EntityResolver и зарегистрировать его в javax.xml.parsers.DocumentBuilder.
0
|
|
|
0 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 100
|
|
| 17.09.2011, 20:43 [ТС] | |
|
'зарегистрировать его в javax.xml.parsers.DocumentBuilder' -- это как?
0
|
|
|
1 / 1 / 0
Регистрация: 02.08.2011
Сообщений: 64
|
||||||
| 18.09.2011, 08:19 | ||||||
|
С помощью метода setEntityResolver()
Примерно так:
0
|
||||||
|
0 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 100
|
|
| 18.09.2011, 13:45 [ТС] | |
|
Реализовал EntityResolver, использую его, но _ничего_ не изменилось:
java.net.MalformedURLException: no protocol: beans.dtd А если подробнее: java.net.MalformedURLException: no protocol: beans.dtd at java.net.URL.<init>(URL.java:537) at java.net.URL.<init>(URL.java:434) at java.net.URL.<init>(URL.java:383) at oracle.xml.parser.v2.NonValidatingParser .pushExternalDTD(NonValidatingParser.jav a:529) at oracle.xml.parser.v2.NonValidatingParser .parseDoctypeDecl(NonValidatingParser.ja va:454) at oracle.xml.parser.v2.NonValidatingParser .parseProlog(NonValidatingParser.java:28 7) at oracle.xml.parser.v2.NonValidatingParser .parseDocument(NonValidatingParser.java: 266) at oracle.xml.parser.v2.XMLParser.parse(XML Parser.java:149) at oracle.xml.jaxp.JXDocumentBuilder.parse( JXDocumentBuilder.java:150) at oracle.xml.jaxp.JXDocumentBuilder.parse( JXDocumentBuilder.java:106) ... и т.д. внутри уже моего класса Всё это крутится в Web-приложении под OC4J и поэтому там оракловый парсер стоит. Как его заменить на другой? На тот, что в JDK 1.4 стандартный.
0
|
|
|
0 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 100
|
|
| 18.09.2011, 13:46 [ТС] | |
|
То есть, как сделать так, чтобы вместо оораклового парсера использовался парсер из JDK 1.4?
0
|
|
|
1 / 1 / 0
Регистрация: 02.08.2011
Сообщений: 64
|
|
| 20.09.2011, 07:11 | |
|
Прошу прощения, я забыл сказать, что нужно после создания DocumentBuilderFactory вызвать метод setValidating() с параметром true.
По поводу замены парсера можно почитать в явадоках к методу javax.xml.parsers.DocumentBuilderFactory .newInstance() и, в случае OC4J, приготовиться к проблемам. Правда в такой замене обячно нет смысла, если только не планируется использование нестандартных расширений спецификации JAXP. Валидация по DTD к таким не относится
0
|
|
| 20.09.2011, 07:11 | |
|
Помогаю со студенческими работами здесь
9
Nebeans, как вынести класс в отдельный файл?
Вынос глобальных переменных в отдельный файл Вынос переменных в отдельный модуль Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|