Я разбираю XML-документ для создания другого XML-документа.Имена XSL PI, начинающиеся с XML, зарезервированы
документа выглядит так:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="02_tranformation.xsl"?>
<ROWSET>
<ROW>
<SRC_TABLE>myTable</SRC_TABLE>
<SRC_COLUMN>myColumn</SRC_COLUMN>
</ROW>
</ROWSET>
и 02_tranformation.xsl файл выглядит так:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:output method="text" indent="no" encoding="UTF-8"/>
<xsl:template match="/ROWSET">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE POWERMART SYSTEM "powrmart.dtd">
</xsl:template>
</xsl:stylesheet>
Результат должен быть:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE POWERMART SYSTEM "powrmart.dtd">
Но результат
TEMPLATE_ERROR: TRANSFORMATION: ORA-31011: XML parsing failed
ORA-19213: error occurred in XML processing at lines 1
LPX-00209: PI names starting with XML are reserved
Я ищу множество сайтов помощи, но я до сих пор даже не понимаю, что это значит. Я не знаю, важно ли это, но это работает в приложении Apex, которое считывает имена таблиц из базы данных (как выбор из ...), создает XML из этого результата, и я разбираю этот результат. Проблема в том, что этот код работает в проводнике, но не в этом приложении. Может ли кто-нибудь мне помочь? Большое спасибо J.
Если ваш метод вывода является «текстом», зачем вам нужно объявление XML и/или объявление DOCTYPE? В любом случае результат, который вы утверждаете, не может быть воспроизведен с использованием только вашего кода. –
Одной из возможных причин ошибки является пробел перед объявлением XML. Это будет скопировано в результирующий документ. Анализ XML-парсера « Xml» с предшествующим пробелом может (если он довольно глупо) решить, что он не может быть объявлением XML (потому что у него не может быть предшествующего пробела), поэтому он должен быть инструкцией по обработке, и если это инструкция обработки, тогда ее имя не может быть «xml». –
Причина в том, что сгенерированный текст будет сохранен в файл с окончанием, которое я выбираю. В реальности это будет текст, но с .xml он будет считан и использован как XML-файл. – juditth