XSD запрашивает кучу разных файлов

У меня есть три файла XML. Первый, называемый plan.xml, включает в себя список элементов «плана», которые относятся к отдельным файлам.

планы.xml:

<plans>
     <plan XSD-version="2.0" release="R1801.1" plan-file="./plan-2.0.xml"/>
     <plan XSD-version="3.0" release="R1801.2" plan-file="./plan-3.0.xml"/>
</plans>

Второй файл с именем «plan-2.0.xml» (и третий файл аналогичен, только с другими номерами версий и именем «plan-3.0.xml»):

план-2-0.xml:

<Services>    
    <service name="x" version="2.0"/>
    <service name="y" version="2.0"/>
    <service name="z" version="2.0"/>
 </Services>

Чего я хочу добиться, так это xquery (3.0), который принимает входной параметр (I1801.2) и генерирует простой список html с заголовком:

<h1>I1801.2</h1>
  <ul>
    <li>x with version 2.0
    <li>y with version 2.0
    <li>z with version 2.0 
  </ul>

Я борюсь с конкретными концепциями - уже более десяти лет я использую xquery.

мой скрипт начинается так:

xquery version "3.0";
let $j := doc("plans.xml")

Однако я застрял здесь. Любая помощь?

Точнее, как перебирать разные файлы, собирать элементы и атрибуты в переменные и потом их выводить? Я использую Oxygen XML в качестве редактора.


person Walter Kuhn    schedule 11.12.2017    source источник
comment
У вас есть один ответ от Майкла Кея, основанный на информации, которую вы предоставили. Но название говорит о XSD. Если его ответа недостаточно, я предлагаю вам обновить свой вопрос, указав (1) объяснение того, где применим XSD, и (2) образец выходного документа на основе ваших образцов входных документов.   -  person David Ennis    schedule 12.12.2017


Ответы (1)


Не совсем понятно, при чем здесь XSD?

Пытаться:

for $p in $j//plan
return (
   <h1>{string($p/@release)}</h1>,
   <ul>{for $s in doc($p/@plan-file//service
        return <li>{string($s/@name} with version {string($s/@version)}</li>
   </ul>)
person Michael Kay    schedule 11.12.2017
comment
Спасибо за вашу помощь. На самом деле мне нужно организовать элементы планирования для правильной обработки многих XSD в различных версиях. Итак, XSD-версия говорит мне, что для определенного плана (= куча версий XSD) у нас есть общая метка - person Walter Kuhn; 14.12.2017