XML на eXist-db: err:XPST0003 неожиданный токен
У меня есть документ XML на eXist-db, но компилятор жалуется, выдавая мне следующую ошибку:
Невозможно скомпилировать xquery: exerr:ERROR org.exist.xquery.XPathException: err:XPST0003 неожиданный токен: xml-stylesheet href="../xsltforms/xsltforms.xsl" type="text/xsl" [в строке 2, столбец 1]
Я перепробовал все, что мог придумать:
- копирование xml в документ xhtml.
- удаление тегов, на которые он жалуется (но потом идет пожаловаться на другие теги)
- запустить XML в eXist безрезультатно
- запустите html, сгенерированный им в браузере, тоже с другой ошибкой.
Это актуальная часть XML, я думаю:
nuevacontribucion.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="../xsltforms/xsltforms.xsl" type="text/xsl" ?><?css-conversion no?><?xsltforms-options debug="no"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xf="http://www.w3.org/2002/xforms">
<head>
<title>Crear una nueva Contribución</title>
<link href="../css/loading.css" rel="stylesheet"/>
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen"/>
<link href="bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet" media="screen"/>
<link href="assets/styles.css" rel="stylesheet" media="screen"/>
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="vendors/flot/excanvas.min.js"></script><![endif]-->
<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<script src="vendors/modernizr-2.6.2-respond-1.1.0.min.js"/>
<style>
input[type='text'], select{
min-height: 30px;
}
iframe{
width: 100% !important;
height: 200px !important;
}
.datepicker .aid-button{
display: none !important;
}
</style>
Если я удаляю тег xml-stylesheet, он выдает то же исключение, но жалуется на css-преобразование, если я удаляю его, то речь идет о следующем теге, если я удаляю его, то речь идет о том, что xmlns не определен или что-то в этом роде.
1 ответ
Измените двигатель XSLT с саксонского на Xalan.
По умолчанию eXist-db 2.0 поставляется со следующей конфигурацией в conf.xml
в каталоге установки eXist-db:
<transformer class="net.sf.saxon.TransformerFactoryImpl">
Чтобы решить вашу проблему, измените его на:
<transformer class="org.apache.xalan.processor.TransformerFactoryImpl">