XSLT преобразования, copy of

copy of — скопировать узел со всеми вложеными элементами и атрибутами.

пример:
Нужно скопировать в итоговую XML узел с именем book из xml:

<?xml version="1.0" encoding="utf-8"?>
<document>
  <book>
    <title>Book1</title>
    <autor name="Boris" lastname="Vasil'ev" />
    <pages>334</pages>
  </book>
</document>

для этого xslt должен быть такого вида:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="/">
      <output>

        <myname></myname>
        <myfavoritebook>
          <xsl:copy-of select="//book"/>
        </myfavoritebook>
        
      </output>
    </xsl:template>
</xsl:stylesheet>

результат преобразований будет следующим:

<?xml version="1.0" encoding="utf-8"?>
<output>
  <myname />
  <myfavoritebook>
    <book>
    <title>Book1</title>
    <autor name="Boris" lastname="Vasil'ev" />
    <pages>334</pages>
  </book>
  </myfavoritebook>
</output>

C# MVC3 + задачка

в копилке вопросов пополнение.

как сделать такую штуку. Для одной абстрактной сущности реализовать возможность изменения модели контрола и представления.

К примеру есть рубрика «статьи» 90% которых стандартны. Но иногда требуется расширить запись, подгрузив в нее некоторые данные.

Реализовать это хочется так, есть стандартный контролер и модель, мы предаем параметр и если по параметру не находится класса для обработки этого запроса, то пускаем его на стандартный, в противном случае порождаем объект и используем его.

Видится мне что должен быть какой-то предварительный слой, который анализирует переданные параметры, а потом уже создает контролер или использует контролер по умолчанию.

Сейчас решение этой задачки кроется в расширении модели до такой степени чтобы она учитывала все варианты, в контроле большой switch который заполняет нужные данные в этой модели. И кидает эту модель в нужное вьюху. А хочется красоты…

Paper snowflake

SQL запрос в красивый LINQ

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

SQL запрос:

select distinct info.[GenreId] from [Litera] as lit
join [Information] as info on lit.LitId=info.LitId

как составить простой и красивый linq запрос, вопрос пока остается открытым.