ИНФОРМАЦИЯ: План для выполнения преобразования XSLT в приложениях .NET

Переводы статьи Переводы статьи
Код статьи: 313997 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

Данная статья содержит схему для пространства имен .NET Framework и классов, которые можно использовать для программного выполнения преобразования таблиц стилей преобразования (XSLT) в приложениях .NET. Путеводитель статей содержат ссылки на полезные сведения, включая электронной документации, статей базы знаний Майкрософт и документация корпорации Майкрософт, чтобы узнать о технологии или продукта корпорации Майкрософт.

В данной статье не учебник XSLT. В данной статье предполагается, что вы знакомы сСтандарт XSLT World Wide Web Consortium (W3C)и опыта по созданию таблицы стилей XSLT для преобразования данных XML.

ОБЗОР

XSLT является World Wide Web Consortium (W3C) стандартные преобразования данных XML. XSLT обычно используется для записи таблицы стилей для преобразования данных XML в другие форматы, такие как HTML, фиксированной длины текста, текст с разделителями запятыми или в другой формат XML.

С точки зрения разработчика XSLT — это язык программирования, с широкими возможностями, основанный на XML синтаксис, который реализует элементы, соответствующие программных конструкций и элементов для общих требований преобразования.

Таблицы стилей XSLT часто используемых запросов на языке путей XML (XPath) для поиска узлов в исходный документ XML и применить шаблоны XSLT для преобразования этих узлов. Эффективность запросов XPath в таблицу стилей XSLT часто влияют на то и влияние на производительность преобразования, которые его используют.

Подставка высокого уровня, начиная от точки обработчика XSLT — это программный компонент, к которому применяется указанное стилей в указанный источник XML-документ для выполнения преобразования XSLT, так и для создания необходимых выходных данных.

The final output that the XSLT transformations generate are typically result documents that present the original XML data in the specified target format.

Writing Code in a .NET Application to Execute XSLT Transformation

The following QuickStart tutorial and Microsoft Knowledge Base articles demonstrate how to write code in a .NET application to apply an XSLT style sheet to an XML document to execute a basic transformation:
How Do I...Apply an XSL Transformation to XML?
http://samples.gotdotnet.com/quickstart/howto/doc/Xml/TransformXml.aspx
307322HOW TO: Apply an XSL Transformation to an XML Document by Using Visual C# .NET
300929ПРАКТИЧЕСКОЕ руководство. Применение преобразования XSL из XML-документа в документ XML с помощью Visual Basic .NET

The System.Xml.Xsl Namespace

надписьюXslTransformclass in theSystem.Xml.Xslnamespace implements the .NET Framework XSLT processor. Object instances of this class are created and used to execute XSLT transformations in .NET applications. The implementation of the XSLT processor in the .NET Framework is compliant with version 1.0 of theW3C XSLT Recommendation.

надписьюSystem.Xml.Xslnamespace also implements the following classes to support XSLT exception handling and advanced options that are related to the execution of XSLT transformations and XPath queries:
  • XsltArgumentList. You can use object instances of this class to supply extension object instances and values for XSLT parameters that XSLT style sheets define and reference.
  • XsltCompileException. This class generates the .NET Framework exception when an error occurs while you are compiling an XSLT style sheet. An XSLT style sheet is compiled when theЗагрузкаmethod of anXslTransformobject is executed.
  • XsltException. This class generates the .NET Framework exception when a run-time error occurs while you are executing an XSLT transformation.
  • XsltContext,IXsltContextFunction, иIXsltContextVariable. These advanced components are used to implement a custom XPath query execution context when there is a requirement to implement and reference user-defined functions and variables in XPath queries that are executed in .NET applications by using theXPathNavigatorclass and Document Object Model (DOM) classes.

    To more easily implement user-defined functions and variables in XPath query expressions that are included in an XSLT style sheet, you can use inline script blocks, extension objects, and XSLT variables or parameters.

Advanced XSLT Features

This section describes several advanced XSLT features.

Pipelining XSLT Transformations

Pipelining refers to the process of transforming a source XML document by incrementally applying two or more XSLT style sheets. The output that each intermediate phase generates is supplied as the input to the next phase all the way through to the final phase, which then generates the appropriate output.

This method is useful when you must persist the output that the intermediate phases generate for additional processing that is not directly tied into the transformation process.For additional information about this topic and for a code sample that illustrates its usage, click the article number below to view the article in the Microsoft Knowledge Base:
320847HOW TO: Pipeline XSLT Transformations in .NET Applications

Parameterized XSLT Transformations

It is a common XSLT practice to define and to use parameters in style sheets. Parameterized XSLT style sheets use the <xsl:param> element to define parameters that are referenced in XPath query expressions to selectively locate and transform nodes in the source XML data. The values for the defined parameters can be hard-coded in the style sheet or supplied at run time. The latter practice of dynamically supplying input parameter values to control the transformation process is the most common usage of this feature.</xsl:param>

In .NET applications, anXsltArgumentListobject is used to supply values for XSLT parameters at execution time. надписьюAddParammethod is used to add a name-value pair that represents a parameter that is defined in the style sheet and its value to anXsltArgumentListОбъект. надписьюXsltArgumentListobject is then supplied as a parameter when executing theПреобразованиеметодXslTransformobject that is used to execute the transformation.

надписьюGetParamиRemoveParammethods are used to access and to remove individual parameters that are added to anXsltArgumentListОбъект.For additional information about how to execute parameterized XSLT transformation in .NET applications, click the article number below to view the article in the Microsoft Knowledge Base:
321704HOW TO: Execute Parameterized XSL Transformations in .NET Applications

Inline Script Blocks

Inline script functions are one of the options that you can use to implement user-defined functions and sub procedures that are referenced in XPath query expressions that are used in an XSLT style sheet. The ability to include inline script blocks in XSLT style sheets is a W3C extension.

В .NET Framework встроенные пользовательские функции и подпрограммы закодированные блоки <msxsl:script>в таблицу стилей XSLT. Microsoft Visual Studio .NET язык, таких как Microsoft Visual Basic .NET или Microsoft Visual C# .NET можно использовать для реализации этих процедур.</msxsl:script>

Одним из недостатков, связанных с использованием встроенных блоков сценариев — это, что они делают таблицы стилей XSLT не переносимые. Технология, теги и семантики, которые используются для реализации встроенных блоков сценариев представляют собой расширения определяемого вендором, спецификации W3C XSLT не стандартизации.

Можно использовать только таблица стилей XSLT, определяющий и успешно использует встроенные блоки сценариев в преобразований, выполняемых с помощью обработчика XSLT, можно интерпретировать связанных семантику и интеграции с технология, которая имеет для выполнения кода.

В .NET Framework, управляемых сборок создания и загрузки неявно выполнять код, содержащийся в <msxsl:script>встроенных блоков сценариев. В платформе .NET Framework, которая не позволяет правильно выгрузке после завершения процесса преобразования эти сборки уже известных проблем. Этой аномалии может привести к увеличение использования памяти, если уязвимый стилей загружается повторно для выполнения преобразования XSLT. Неизданные память освобождается только когда хост-процесс будет перезапущен. </msxsl:script>Для получения дополнительных сведений об этой проблеме в платформе .NET Framework щелкните следующий номер статьи базы знаний Майкрософт:
316775Проблема: Не удается выгрузить сборок, вам создать и загрузить с помощью сценария в XSLT
Для временного решения этой проблемы в приложениях Microsoft ASP.NET, можно загрузить уязвимых стилей только один раз за время существования приложения, кэширование уязвимых стилей (в кэше ASP.NET) и после этого повторно использовать кэшированный версий для преобразования.

В Windows Forms и консольных приложений можно использовать глобальныйXslTransformэкземпляры объектов для загрузки соответствующих стилей при запуске приложения и выполнение преобразования в более поздней версии. Эти методы обхода проблемы не применяются, когда преобразования XSLT должны быть выполнены в среде без ведения базы данных (например, с помощью компонентов среднего уровня Enterprise Services).

Корпорация Майкрософт рекомендует использовать объекты расширения XSLT для реализации пользовательских функций расширения XPath для временного решения этой проблемы.

Объекты расширения XSLT

Корпорация Майкрософт рекомендует использовать объекты расширения для реализации пользовательских подпрограммы и функции, на которые имеются ссылки в выражениях запроса XPath, которые используются в таблицу стилей XSLT.

Можно создавать библиотеки .NET Framework для реализации и объекты расширения для выполнения преобразований в приложениях .NET. Пользовательские подпрограммы и функции, реализуются в библиотеке DLL, а объект, экземпляр компонента DLL предоставляется в качестве параметра во время выполнения с помощьюXsltArgumentListобъект, при выполненииПреобразованиеметодXslTransformОбъект.

надписьюAddExtensionObjectметодXsltArgumentListкласс используется для добавления экземпляра объекта расширения дляXsltArgumentListОбъект. Чтобы снять с данного каталога атрибут «Только чтение», можно воспользоваться командойПолучитьиremoveметоды расширения объекта для доступа и удаления экземпляра объекта расширения, которое добавляется кXsltArgumentListОбъект.

В спецификации W3C XSLT адресов понятия и использование расширений элементов и функций без каких-либо использовать или ссылки на базовые технологии, которые необходимо использовать для их реализации. Необходимо определить и использовать префиксы пространства имен XML на основе стандартов в таблицы стилей для ссылки на функции и подпрограммы, которые реализованы в объектах расширения. Поставщики могут выбирать технологии, которая лучше всего подходит для их платформу для реализации аспектов объекты расширения.Дополнительные сведения о концепции и использование объектов расширения XSLT в платформе .NET Framework и инструкции по созданию приложения начала до конца, показано, как использовать объекты расширения, при выполнении преобразования XSLT в приложениях .NET щелкните следующий номер статьи базы знаний Майкрософт:
321702КАК Если вы выполнение преобразования XSL в приложениях Visual Basic .NET использовать объекты расширения

Общие рекомендации по использованию классов .NET Framework для выполнения преобразования XSLT

  • надписьюXPathDocumentКласс высоко оптимизирован для обработки XSLT и XPath. Для обеспечения оптимальной производительности следует всегда использоватьXPathDocumentобъект, укажите XML-источник при выполнении преобразования XSLT.
  • Можно кэшировать и использоватьXslTransformобъекты, которые используются для загрузки таблицы стилей XSLT, которые часто используются для выполнения преобразования в более поздней версии.
  • Процессор XSLT не автоматически кэширует экземпляры объектов расширения, которые используются в XSLT-преобразований. Можно кэшировать и использоватьXsltArgumentListобъекты, которые используются для предоставления экземпляров объекта расширения для часто используемых таблиц стилей XSLT, при выполнении преобразования в более поздней версии. Это метод расширения объектов кэша, используемые в XSLT-преобразований в платформе .NET Framework.
  • Таблицу стилей XSLT, реализующий встроенных блоков сценариев должны только один раз загрузить и кэширования. Вы должны повторно использовать кэшированныйXslTransformobject for later transformations. You can use this practice to overcome the memory management problem that is described in the Microsoft Knowledge Base article Q316775 when you must use inline script functions in a style sheet.
  • Microsoft recommends that you use Extension objects to implement custom functions that are referenced in XPath query expressions that are used in XSLT style sheets. Implement customXsltContext,IXsltContextFunction, иIXsltContextVariableclasses only when you have to implement and to reference custom extension functions in XPath query expressions that are executed in .NET applications by using theXPathNavigatorand the DOM classes.
  • Implement exception handling code to handle theXsltCompileExceptionнадписьюXsltException, а такжеXmlException.NET Framework exception classes when you write code to execute XSLT transformations. These exception classes provide information about any XSLT-specific or XML-specific problems that occur when you try to execute an XSLT transformation. Additionally, Microsoft recommends that you implement code to handle other specific .NET Framework exceptions and that you implement the genericSystem.Exceptionclass, based on other, non-XSLT-related functionality that is implemented in the code block that executes the XSLT transformation.

Performance of XSLT Transformations in the .NET Framework

For additional information about the causes and the solutions for the known performance problems when you execute XSLT transformations in .NET applications, click the article number below to view the article in the Microsoft Knowledge Base:
325689INFO: Performance of XSLT Transformations in the .NET Framework

ПОИСК И УСТРАНЕНИЕ НЕПОЛАДОК

If you experience problems or if you have questions, you can refer to the MSDN newsgroups where you can share your experiences with your peers. You can also use the Microsoft Knowledge Base where you can search for articles about specific issues or contact Microsoft Product Support Services.
Группы новостей MSDN
http://MSDN.Microsoft.com/Newsgroups/

Поиск в базе знаний
http://support.Microsoft.com/search

Microsoft Product Support Services
http://support.microsoft.com

Ссылки

За дополнительной информацией % 1 щелкните номер статьи ниже % 2 К следующей в Microsoft Knowledge Base:
313651ИНФОРМАЦИЯ: Схему для XML в .NET Framework

Свойства

Код статьи: 313997 - Последний отзыв: 23 ноября 2010 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
Ключевые слова: 
kbarttyperoadmap kbinfo kbmt KB313997 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:313997

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com