Управление XSLT - присоединение метаданных к таблице стилей для вывода и параметров - PullRequest
6 голосов
/ 13 августа 2010

Я использую около дюжины XSLT-файлов для обеспечения большого количества форматов вывода. На данный момент пользователь должен знать расширение формата файла, который экспортируется, например, в. RTF, HTML, TXT.

Я также хотел бы использовать параметры, чтобы разрешить больше параметров. Если я смогу встроить метаданные в сам файл XSL, то смогу узнать подробности путем сканирования файлов.

Вот о чем я думаю. В этом примере программа должна будет проанализировать комментарии для получения необходимой информации.

<?xml version="1.0" encoding="UTF-8"?>
<!-- Title: Export to Rich Text Format -->
<!-- Description: This Stylesheet converts to a Rich Text Format format which may be used in a word processor such as Word -->
<!-- FileFormat: RTF -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:param name="CompanyName"/> <!-- Format:String, Description: Company name to be inserted in the footer -->
<xsl:param name="DateDue"/> <!-- Format:Date-yyyy-mm-dd, Description: Date Due -->
<xsl:param name="IncludePicture">true</xsl:param><!-- Format:Boolean, Description: Do you want to include a graphical representation? -->
  <xsl:template match="/">
  <!-- Stuff -->
  </xsl:template>
</xsl:stylesheet>

Существуют ли какие-либо стандарты там? Нужно ли убивать больше одного (Dublin Core с небольшим количеством XML-схемы)?

P.S. проект, к которому он применяется, Аргументативный .

1 Ответ

6 голосов
/ 13 августа 2010

Вот о чем я думаю.В этом примере программа должна будет проанализировать комментарии для получения необходимой информации.

Вы не должны кодировать метаданные в комментариях.

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

Вот пример того, как это сделать:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:meta="my:meta">
 <xsl:output method="text"/>

 <meta:metadata>
   <title>Title: Export to Rich Text Format </title>
   <description>
    This Stylesheet converts to a Rich Text
    Format format which may be used in a word processor
    such as Word
   </description>
   <fileFormat>RTF</fileFormat>
   <parameters>
     <parameter name="CompanyName" format="xs:string"
      Description="Company name to be inserted in the footer"/>

     <parameter name="DateDue" format="xs:date"
      Description="Date Due"/>

     <parameter name="IncludePicture" format="xs:boolean"
      Description="Do you want to include a graphical representation?"/>
   </parameters>
 </meta:metadata>

 <xsl:param name="CompanyName"/>
 <xsl:param name="DateDue"/>
 <xsl:param name="IncludePicture" select="true"/>

 <xsl:variable name="vMetadata" select=
      "document('')/*/meta:metadata"/>

 <xsl:template match="/">
  This is a demo how we can access and use the metadats.

  Metadata --> Description:

  "<xsl:copy-of select="$vMetadata/description"/>"
 </xsl:template>
</xsl:stylesheet>

когда это преобразование применяется к любому XML-документу (не используется), результат будет :

  This is a demo how we can access and use the metadats.

  Metadata --> Description:

  "
    This Stylesheet converts to a Rich Text
    Format format which may be used in a word processor
    such as Word
   "

Заметьте :

  1. Любой элемент, который находится в пространстве имен (конечно, не пространство без имен и не пространство имен xsl) можетуказывается на глобальном уровне любой таблицы стилей xslt.

  2. Доступ к таким элементам можно получить с помощью функции xslt document().

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...