Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Xsl трансформация


Автор: Pankon 28.3.2006, 11:59
Описание проблемы:

Есть база в которой
или
Код

<?xml version="1.0" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates select="Main" />
</xsl:template>
<xsl:template match="Main">
...
</xsl:template>
</xsl:stylesheet>

или
Код

<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" >
<xsl:template match = "/">
<xsl:apply-templates select = "Main" />
</xsl:template>
<xsl:template match = "Main">
...
</xsl:template>
</xsl:stylesheet>


трансформирую с помощью XslCompiledTransform.
С первым вариантом все ОК,
при трансформации вторым вариантом дает ошибку,
что "http://www.w3.org/TR/WD-xsl" больше не поддерживается.
Старый обработчик этой базы работает и с первым и со вторым, я должен написать новый под .NET. smile
Обьясните пожалуйста, что это может быть и с чем это вообще надо кушать smile


Автор: mr.DUDA 28.3.2006, 12:48
Вопрос по базам данных.

Автор: Pankon 28.3.2006, 13:31
Цитата(mr.DUDA @ 28.3.2006, 12:48)
Вопрос по базам данных.

А если я вместо
"Есть база в которой"
напишу
"Есть файл в котором" (Кстати, тестирую я свое приложение именно так smile)
или
"Есть источник данных в котором"... smile



Автор: mr.DUDA 28.3.2006, 13:52
Цитата(Pankon @ 28.3.2006, 12:31 Найти цитируемый пост)
А если я вместо
"Есть база в которой"
напишу
"Есть файл в котором" (Кстати, тестирую я свое приложение именно так )
или
"Есть источник данных в котором"..

ну так это разные вещи, а этот вопрос про базы данных, ИМХО

Цитата(Pankon @ 28.3.2006, 10:59 Найти цитируемый пост)
Старый обработчик этой базы работает и с первым и со вторым, я должен написать новый под .NET.

из чего можно сделать предположение о неком "обработчике базы данных"... мало ли что там за чудо-обработчик... вдруг это MS SQL со своими наворотами...
Добавлено @ 13:54
З.Ы. а просто заменить с пом. string.Replace (xml, "http://www.w3.org/TR/WD-xsl", "http://www.w3.org/1999/XSL/Transform") не прокатит ?

Автор: Pankon 28.3.2006, 14:32
Цитата(mr.DUDA @ 28.3.2006, 13:52)
З.Ы. а просто заменить с пом. string.Replace (xml, "http://www.w3.org/TR/WD-xsl", "http://www.w3.org/1999/XSL/Transform") не прокатит ?

Не, не покатит... smile
Мне тут коллега сказал, что Namespace"http://www.w3.org/TR/WD-xsl" разрешает использование в XSL конструкции, которые запрещены
в "http://www.w3.org/1999/XSL/Transform" smile. И что, по этой причине, часть документов использует "http://www.w3.org/TR/WD-xsl" а
другая часть "http://www.w3.org/1999/XSL/Transform"...

Цитата(mr.DUDA @ 28.3.2006, 13:52)
из чего можно сделать предположение...
"Старый обработчик этой базы.." использует методы для обработки XML/XSL и СУТь вопроса в этом:
Цитата(Pankon @ 28.3.2006, 11:59)
трансформирую с помощью XslCompiledTransform


Извиняюсь, если это было не сразу понятно(видно)... smile

Автор: Exception 28.3.2006, 16:09
Цитата(Pankon @ 28.3.2006, 15:32 Найти цитируемый пост)
Мне тут коллега сказал, что Namespace"http://www.w3.org/TR/WD-xsl" разрешает использование в XSL конструкции, которые запрещены
в "http://www.w3.org/1999/XSL/Transform". И что, по этой причине, часть документов использует "http://www.w3.org/TR/WD-xsl" а
другая часть "http://www.w3.org/1999/XSL/Transform"...

Вот и плохо. Сложно что ли одного стандарта держаться?

Автор: Pankon 28.3.2006, 16:16
Уже поздно "одного формата держаться"... Таких документов очень много. smile

Автор: mr.DUDA 28.3.2006, 16:17
В .NET 2.0 видимо поддерживается более новый вариант:
Цитата
The Extensible Stylesheet Language Transformation (XSLT) lets you transform the content of a source XML document into another document that is different in format or structure. For example, you can use XSLT to transform XML into HTML for use on a Web site or to transform it into a document that contains only the fields required by an application. This transformation process is specified by the W3C XSL Transformations (XSLT) Version 1.0 recommendation located at www.w3.org/TR/xslt.

The XslCompiledTransform class is the XSLT processor in the .NET Framework. The XslCompiledTransform class supports the W3C XSLT 1.0 recommendation.

Автор: Pankon 28.3.2006, 16:24
Цитата(mr.DUDA @ 28.3.2006, 16:17)
В .NET 2.0 видимо поддерживается более новый вариант:
Цитата
The Extensible Stylesheet Language Transformation (XSLT) lets you transform the content of a source XML document into another document that is different in format or structure. For example, you can use XSLT to transform XML into HTML for use on a Web site or to transform it into a document that contains only the fields required by an application. This transformation process is specified by the W3C XSL Transformations (XSLT) Version 1.0 recommendation located at www.w3.org/TR/xslt.

The XslCompiledTransform class is the XSLT processor in the .NET Framework. The XslCompiledTransform class supports the W3C XSLT 1.0 recommendation.

Ссылку пожалуйста на ето самое...

Нашел уже...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)