Встраивание сложного XSL в сложный XML (CDA)

Я пытаюсь внедрить этот XSL в Документ CDA. Этот конкретный документ начинается примерно так:

<?xml version="1.0" encoding="UTF-8"?>
<ClinicalDocument xmlns="urn:hl7-org:v3">
    <realmCode code="US"/>
    <typeId .../>
    ...
    <recordTarget>
        <patientRole>
        ...

На основе этого SO вопрос Я попробовал несколько вещей, включая вставку XSL в элемент <ClinicalDocument> и создание нового корневого элемента, содержащего как <ClinicalDocument>, так и <xsl:stylesheet>. Ни один из них не работал. Судя по некоторым исследованиям, мне нужно изменить XSL, чтобы исключить себя? Мне не повезло сделать это или вообще изменить XSL, поскольку я не очень хорошо знаком с технологией и ее тестовыми шаблонами.

Обновление Ответ Мартина работает в Chrome, но я получаю это в IE:

введите здесь описание изображения


person JOATMON    schedule 02.07.2015    source источник
comment
В зависимости от того, чего именно вы пытаетесь достичь, может быть лучше выполнить преобразование самостоятельно, а затем просто распространить полученный HTML-файл.   -  person GreyBeardedGeek    schedule 02.07.2015
comment
К сожалению, это не вариант :(   -  person JOATMON    schedule 02.07.2015
comment
Покажите нам, что вы сделали, и мы сможем сказать вам, что вы сделали неправильно.   -  person Michael Kay    schedule 02.07.2015


Ответы (1)


Если вы хотите встроить xsl:stylesheet и ссылаться на него, используя <?xml-stylesheet type="text/xsl" href="#sheetId"?>, вам нужно

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="#mySheet"?>
<!DOCTYPE ClinicalDocument [
<!ATTLIST xsl:stylesheet
  id    ID  #REQUIRED>
]>
<ClinicalDocument xmlns="urn:hl7-org:v3">
    <xsl:stylesheet id="mySheet" ...>...</xsl:stylesheet>
    <realmCode code="US"/>
    <typeId .../>
    ...
    <recordTarget>
        <patientRole>
    ...
</ClinicalDocument>

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

person Martin Honnen    schedule 02.07.2015
comment
Chrome просто показывает пустую страницу, а IE предлагает XSLT8690: XSLT processing failed. идеи? - person JOATMON; 02.07.2015
comment
Хорошо, да, Chrome работает, но IE выдает ту же ошибку. Я попробовал другой XSLT и получил те же результаты. - person JOATMON; 02.07.2015
comment
Я обновил исходный вопрос полным выводом консоли IE. - person JOATMON; 02.07.2015
comment
Я попробовал простой тестовый пример home.arcor.de/martin.honnen/xslt/ test2015062601.xml с IE 11, и кажется, что он не применяет XSLT и действительно выдает ту ошибку, которую вы назвали. Я не знаю, поддерживал ли IE когда-либо эту нотацию href="#id", извините. Mozilla и Chrome, кажется, поддерживают это, я не знаю, что делать с IE. - person Martin Honnen; 02.07.2015
comment
Большой вздох. Я буду искать. Я сомневаюсь, что все наши клиенты используют Chrome/FF - person JOATMON; 02.07.2015
comment
Это что-нибудь значит для вас? biglist.com/lists/lists. mulberrytech.com/xsl-list/archives/ - person JOATMON; 02.07.2015