Я думаю, что лучший способ задать этот вопрос: Как указать пространство имен по умолчанию для корневого элемента в выходе? Делать это:Oracle XSLT: пространство имен по умолчанию приводит к пустым тегам
<xsl:template match="/">
<r xmlns:s"http://www.mycompany.com/s/schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.mycompany.com/default/schema" >
....
....
дает мне ошибку в Oracle:
ORA-31011: XML Parsing Failed ORA-19201: Error occurred in in XML Processing LPX-00604: Invalid attribute 'nIfNotExist', for attribute 'name' ORA-06512: at SYS.XMLType at line 74 ORA-06512: at line 24
где 'nIfNotExist'
шаблон:
<xsl:template name="nIfNotExist" xmlns:scom="http://www.mycomapny.com/s/schema">
<xsl:param name="nodeToTest"/>
<xsl:param name="nodeName"/>
...
Я хочу, чтобы результирующий документ, чтобы корневой элемент выглядеть это:
<r xmlns:s="http://www.mycompany.com/s/schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.mycompany.com/default/schema">
Я хочу "http://www.mycompany.com/default/schema"
как пространство имен по умолчанию, чтобы документ мог пройти проверку XSD. В противном случае я должен добавить его вручную, прежде чем запускать проверку (не вариант пакетной обработки).
EDIT
Я попытался это:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:s="http://www.mycompany.com/schema"
xmlns="http://www.mycompany.com/def_schema">
В результате документ без каких-либо данных, как это:
<r xmlns:s="http://www.mycompany.com/schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.mycompany.com/def_schema">
<a></a>
<s:b></s:b>
<c></c>
....
Это должно было быть:
<r xmlns:s="http://www.mycompany.com/schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.mycompany.com/def_schema">
<a>123</a>
<s:b>ABC34L</s:b>
<c>7.092381</c>
UPDATE
Источник данных выглядит примерно так (вход, который я получаю не имеет пространства имен, определенных в нем):
<ROOT_NODE>
<DATA_A>1234</DATA_A>
<DATA_B>34567</DATA_B>
<OTHER_DATA_C>7.123456</OTHER_DATA_C>
</ROOT_NODE>
Желаемая выход
<r xmlns:s="http://www.mycompany.com/schema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.mycompany.com/def_schema">
<a>1234</a>
<s:b>34567</s:b>
<c>7.123456</c>
</r>
Пожалуйста, предоставьте исходный XML-документ, на котором применяется преобразование. Кроме того, пожалуйста, укажите результат, который вы хотите получить от преобразования. –
@Dimitre Novatchev: Совершено. – FrustratedWithFormsDesigner
Я отправил свой ответ и содержит достаточно короткое и прямолинейное, полное решение. –