Файлы трансформатора 1.0

XSLT имеет серьёзный недочет. Спецификация трансформаций подразумевает возможность обработать одной трансформацией несколько исходных документов с формированием единого результатирующего дерева. Однако в спецификации не указано как декларировать такое поведение. Еще одним спорным моментом является то что исходный документ должен содержать ссылку на таблицу стиля осуществляющую необходимую трансформацию. В реальности часто возникает ситуация когда у разработчика не имеется возможности вносит какие-то вставки в исходный документ в том числе и ссылки не таблицу стиля. Описанная ниже схема позволяет определить внешний документ или часть внешнего документа декларирующего связь нескольких исходных документов с одним преобразованием. Язык программиррвания Денеб включает в себя "трансформатор" программу реализующую описываемое схемой поведение.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://deneblingvo.org/xsd/transformation/1.0" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dtn="http://deneblingvo.org/xsd/transformation/1.0">

  <xs:element name="transformation" type="dtn:trasformation"/>

  <xs:complexType name="trasformation">
    <xs:sequence>
      <xs:element name="stylesheet" type="dtn:stylesheet" minOccurs="1" maxOccurs="1"/>
      <xs:element name="source" type="dtn:source" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="destination" type="dtn:destination" minOccurs="1" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="stylesheet">
    <xs:attribute name="href" type="xs:anyURI"/>
  </xs:complexType>

  <xs:complexType name="source">
    <xs:attribute name="href" type="xs:anyURI"/>
  </xs:complexType>

  <xs:complexType name="destination">
    <xs:attribute name="href" type="xs:anyURI"/>
  </xs:complexType>

</xs:schema>

Добавить комментарий

You must have Javascript enabled to use this form.