XSLT newbie Frage so pls blank mit mir:XSL transormation für IEEE LOM XML mit doppelter Namespace
Ich versuche, ein XML-Dokument mit doppelter Inline-Namespace-Deklaration von lom zu transformieren. Das Dokument enthält unter anderem folgendes:
<metadata>
<schema>http://ltsc.ieee.org/xsd/LOM/imslode/ilox/any/rights</schema>
<lom xmlns="http://ltsc.ieee.org/xsd/LOM/imslode/ilox/any/rights" xsi:schemaLocation="http://ltsc.ieee.org/xsd/LOM/imslode/ilox/any/rights http://www.imsglobal.org/profile/lode/lodev1p0/lodev1p0_ilox_any_rights_lom_v1p0.xsd">
<rights>
<cost>
<source>costValues</source>
<value>no</value>
</cost>
<copyrightAndOtherRestrictions>
<source>copyrightAndOtherRestrictionsValues</source>
<value>yes</value>
</copyrightAndOtherRestrictions>
<description>
<string language="x-t-cc-url">Licence text goes gere</string>
</description>
</rights>
</lom>
</metadata>
<metadata>
<schema>http://ltsc.ieee.org/xsd/LOM</schema>
<lom xmlns="http://ltsc.ieee.org/xsd/LOM" xsi:schemaLocation="http://ltsc.ieee.org/xsd/LOM http://ltsc.ieee.org/xsd/lomv1.0/lomLoose.xsd">
<general>
<title>
<string language="es">Title goes here</string>
</title>
<description>
<string language="es">Description goes here</string>
</description>
<keyword>
<string language="en">a_nice_keyword</string>
</keyword>
</general>
</lom>
</metadata>
Wir sehen, dass Lom zweimal definiert ist.
In meiner XSLT-Datei, ich, wenn ich verwende folgende Namespace-Deklaration:
xmlns:lom="http://ltsc.ieee.org/xsd/LOM/imslode/ilox/any/rights"
Ich schaffe es, die Elemente des ersten Teils unter Verwendung von Identifikatoren zu analysieren, wie folgt, z.B.
lom:rights/lom:cost/lom:value
und gleiche gilt für den zweiten Fall, wenn ich die folgende Namespace-Deklaration verwenden
xmlns:lom="http://ltsc.ieee.org/xsd/LOM"
mit Kennungen wie:
lom:general/lom:description/lom:string
scheine ich nicht in der Lage sein, zu analysieren/transformiere beides gleichzeitig.
Gibt es einen Weg um dies?
Definitiv der richtige Ansatz, aber ich würde 'Lom' und 'LomRights' in Betracht ziehen, um aussagekräftigere Präfixe zu haben (den Namespace mit dem spezialisierteren Zweck durch den Namen ohne Suffix aufzurufen, ist ein bisschen irreführend). Vielleicht "lom" und "lomR", wenn Knappheit eine größere Rolle spielt. –