XSL Transformation

XSL Transformations
XSLT-Beispiel
Dateiendung: .xsl, .xslt
MIME-Type: application/xslt+xml[1]
Entwickelt von: World Wide Web Consortium
Art: Stylesheet-Sprache
Erweitert von: XML
Standard(s): 1.1 (Recommendation),
2.0 (Recommendation)
3.0 (Recommendation)
www.w3.org/TR/xslt


XSL Transformation, kurz XSLT, ist eine Programmiersprache zur Transformation von XML-Dokumenten. Sie ist Teil der Extensible Stylesheet Language (XSL) und stellt eine universelle (Turing-vollständige)[2] Sprache dar.

XSLT wurde vom World Wide Web Consortium (W3C) am 8. Oktober 1999 als Empfehlung veröffentlicht.[3] XSLT baut auf der logischen Baumstruktur eines XML-Dokumentes auf und dient zur Definition von Umwandlungsregeln. XSLT-Programme, sogenannte XSLT-Stylesheets, sind dabei selbst nach den Regeln des XML-Standards aufgebaut.

Die Stylesheets werden von spezieller Software, den XSLT-Prozessoren, eingelesen, die mit diesen Anweisungen ein oder mehrere XML-Dokumente in das gewünschte Ausgabeformat umwandeln. XSLT-Prozessoren sind auch in vielen modernen Webbrowsern integriert, wie zum Beispiel Opera (ab Version 9), Firefox und Internet Explorer Version 5 (ab Version 6 mit vollständiger XSLT-1.0-Unterstützung).

XSLT ist eine Untermenge von XSL, zusammen mit XSL-FO und XPath.

Geschichte

Ursprünglich sollte mit XSL eine DSSSL-artige Sprache in XML-Syntax entstehen. Schnell war jedoch klar, dass eine solche Sprache eigentlich aus drei interagierenden, aber unabhängig voneinander einsetzbaren Teilen besteht:

  • Einer Sprache für die Beschreibung eines Dokuments als Baum mit Formatierungsanweisungen und Stilangaben: XSL Formatting Objects (XSL-FO)
  • Einer Sprache für die Transformation eines beliebigen XML-Dokuments in einen anderen Baum, z. B. einen in XSL-FO: XSLT
  • Einer Sprache für die Adressierung von Baumbestandteilen: XPath

Die deklarative, funktional-applikative Sprache XSLT ist u. a. aus DSSSL hervorgegangen. Entwickelt wurde XSLT ursprünglich von James Clark (XSLT 1.0, XSLT 1.1), für die derzeitige Weiterentwicklung ist Michael Kay verantwortlich. Seit dem 23. Januar 2007 ist XSLT 2.0 eine „Recommendation“ (Empfehlung) des W3C und hat damit die seit 1999 gültige Version XSLT 1.0 abgelöst. Inzwischen existiert auch eine Version XSLT 3.0[4] als Candidate Recommendation vom November 2015 des W3C, welche bereits durch den Saxon-Parser unterstützt wird.[5]

Funktionsweise

Vereinfachte Darstellung der Funktionsweise von XSLT – Ein XML-Dokument wird mittels eines XSLT-Dokuments und eines verarbeitenden Prozessors in ein neues Dokument überführt (.xml, .xhtml, .html, .txt, …).

Die Sprache XSLT beschreibt die Umwandlung eines XML-Derivats (auch XML-Dialekt oder XML-Anwendung genannt), in Form eines XML-Dokuments, in ein anderes Dokument, Transformation genannt. Das resultierende Dokument entspricht meist der XML-Syntax, es können aber auch andere Textdateien und sogar Binärdateien erstellt werden.

Dazu werden die XML-Dokumente als logischer Baum betrachtet: Die Quellbäume der zu transformierenden Dokumente und die durch die Transformation entstehenden Zielbäume der zu erzeugenden Dokumente.

Eine Transformation besteht aus einer Reihe von einzelnen Transformationsregeln, die Templates (deutsch „Schablonen“) heißen. Ein Template besitzt ein auf XPath basierendes Pattern (deutsch „Muster“), das beschreibt, für welche Knoten es gilt, und einen Inhalt, der bestimmt, wie das Template seinen Teil des Zielbaums erzeugt.

In einem XSLT-Dokument kommen also an Sprachen und XML-basierten Technologien mindestens vor:

  • XML als Basis für XSLT[6]
  • XSLT selbst (XML-basiert)
  • XPath / XSLT Patterns
  • Die Sprache(n) des Quell-Dokuments (XML-basiert, z. B. DocBook)
  • Die Sprache(n) des Ziel-Dokuments (häufig XML-basiert, z. B. XML, XSLT selbst, aber auch HTML oder RELAX NG, Text-Format auch möglich)
  • XML Namespaces zur Unterscheidung der einzelnen verwendeten Sprachen

Sowie ab XSLT 2.0:

Template Rules und Conflict Resolution

Template Rules (deutsch „Schablonen-Regeln“) werden immer dann angewendet, wenn eine bestimmte Bedingung passt. Das folgende Beispiel schließt den Inhalt aller Titel („title“-Tags) in „em“-Tags ein, egal wo sie im Dokument vorkommen, und lässt den Rest unberührt.

<xsl:template match="//title">
  <em>
    <xsl:apply-templates/>
  </em>
</xsl:template>

<xsl:apply-templates/> transformiert die Kindelemente des aktuellen Elements mittels sämtlicher dafür anwendbarer Regeln.

Conflict Resolution (deutsch „Konfliktauflösung“) wird dann benötigt, wenn ein Knoten zu mehreren Template Rules gleichzeitig passt. In solchen Fällen gelten die folgenden Regeln.

  • Importierte Regeln haben niedrigere Priorität.
  • Wenn ein Attribut priority gegeben ist, wird es berücksichtigt.
  • Spezifischere Patterns haben höhere Priorität als weniger spezifische. So ist beispielsweise der Test, ob irgendein Knoten existiert, weniger spezifisch als ein Test für einen Knoten mit konkretem Namen.
  • Wenn es mehrere gleichberechtigte Regeln gibt, ist das ein Fehler, und wird vom XSLT-Parser als Meldung ausgegeben.

Sortierung und bedingte Ausgabe

Um Elemente zu sortieren, kann ein Tag for-each mit einem sort kombiniert werden. Die Schleife läuft dann nicht in der Reihenfolge der Knoten des Originaldokuments, sondern in alphabetischer oder numerischer Reihenfolge. Im folgenden Beispiel werden alle Buch-Elemente aufsteigend nach ihrem Preis sortiert.

<xsl:for-each select="buch">
  <xsl:sort select="preis" order="ascending" />
</xsl:for-each>

Mit oder ohne order="ascending" ist die Reihenfolge immer die gleiche (aufsteigend), da dies die Default-Einstellung ist. Mit order="descending" erhält man eine absteigende Reihenfolge.

XSLT bietet sowohl binäre Entscheidungen mittels des Tags if als auch mehrfache Entscheidungen über das Tag choose. Das folgende Beispiel gibt genau dann ein Sternchen aus, wenn das Attribut nationality des Elements author den Wert „U.S.“ hat.

<xsl:if test="author/@nationality='U.S.'">*</xsl:if>

Um mehrere Fallunterscheidungen zu treffen, kann die Kombination aus den Tags choose und when verwendet werden.

<xsl:choose>
  <xsl:when test="...">...</xsl:when>
  <xsl:when test="...">...</xsl:when>
  <xsl:when test="...">...</xsl:when>
  <xsl:otherwise>...</xsl:otherwise>
</xsl:choose>

Text unverändert ausgeben

Um durch XSLT beliebigen Text ausgeben zu lassen, kann das Tag <xsl:text> verwendet werden, wobei das Escaping (die Ausgabe von „<“ und „&“ als „&lt;“ und „&amp;“) abgeschaltet werden kann. Der Inhalt kann als normaler Text oder in einem CDATA-Abschnitt stehen. Der Vorteil des CDATA-Abschnitts besteht darin, dass sein Inhalt nicht interpretiert wird, er kann also auch XML-Syntax enthalten.

Zum Beispiel erzeugt

<xsl:text disable-output-escaping="yes">
  <![CDATA[ ### Hier darf < & >>< beliebiger Text stehen ### ]]>
</xsl:text>

die Ausgabe:

### Hier darf < & >>< beliebiger Text stehen ###

Anwendungen

XML-Sprachen und deren Umfang

Zwei wichtige Anwendungsgebiete für XSLT sind:

  • POP (Presentation Oriented Publishing) bezeichnet die Transformation zum Zwecke der Darstellung. Mit unterschiedlichen Stylesheets können die Daten in XHTML, Formatting Objects (XSL-FO), SVG, SMIL, DocBook und viele andere Formate umgewandelt werden. Das Zieldokument muss hierbei nicht zwingend ein XML-Dokument sein. Das ursprüngliche semantische Markup wird dabei durch ein Stil-bezogenes Markup ersetzt.
  • MOM (Message Oriented Middleware) bezeichnet die Transformation zum Zwecke des Datenaustausches. Da XML lediglich ein Sprachkonzept zur Entwicklung von Sprachen bildet, genügt es nicht, dass zwei Systeme (z. B. Programme) XML beherrschen, um gegenseitig Daten austauschen zu können. Sie müssen die gleiche XML-basierte Sprache verwenden. In dem häufigen Fall, in dem die Systeme nicht die gleiche XML-basierte Sprache verwenden, wird gerne XSLT eingesetzt, um mit Hilfe von Transformationen Übersetzer von der einen Sprache in die andere zu entwickeln.

Beispiele für POP sind etwa:

  • Statistische Daten liegen als XML vor (z. B. aus der Datenbank) und werden mit Hilfe unterschiedlicher Transformationen aufbereitet als
  • Für eine Website werden die XHTML-Dateien oder XML-Dateien zunächst ohne Layout geschrieben und erhalten anschließend das Layout mit Hilfe einer Transformation. Der Vorteil ist dabei ähnlich dem eines klassischen CMS: Um das Layout zu ändern, ist es nicht notwendig, alle XHTML-Seiten zu ändern; stattdessen ändert man das Stylesheet und transformiert neu. Beispielsweise verwendet das XML Publishing System Apache Cocoon dieses Verfahren. Da moderne Webbrowser XSLT unterstützen, ist es möglich, die Quell-XML zu publizieren und im letzten Moment mit XSLT auf dem Client-Rechner transformieren zu lassen, sofern alle zu erwartenden Anwender über einen solchen Browser verfügen (z. B. in Firmen-Netzwerken). Andernfalls sollte die Quell-XML schon auf dem Server transformiert und das Ergebnis publiziert werden.

Alternativen zu XSLT

DSSSL

Eine mögliche Alternative zu XSLT ist DSSSL, das man auch als Vorläufer von XSLT betrachten kann. Der wohl größte Vorteil von XSLT gegenüber DSSSL ist seine XML-basierte Syntax. Somit kann jeder XML-Editor automatisch auch für XSLT eingesetzt werden, außerdem gelten die Syntax-Regeln von XML (Wohlgeformtheit, Gültigkeit) damit auch für XSLT. Dadurch ist es möglich, dass XSLT sich selbst bearbeitet, man kann also Transformationen zur Erzeugung und Bearbeitung von Transformationen entwickeln.

MetaMorphosis

MetaMorphosis ist ebenfalls von DSSSL inspiriert. Im Gegensatz zu XSLT ist es ein „target driven“ (zielgesteuerter) Prozessor. Dabei wird der zu erstellende Zielbaum konstruiert. Die Regeln beschreiben nicht, wie die Eingabedatei verarbeitet werden soll, sondern, wie die Ausgabedatei konstruiert werden soll. Der Prozess beginnt mit einer virtuellen Regel „!begin“ mit der der Transformationsprozess beginnt. Die Transformationsregeln beschreiben, wie die Knoten gefüllt werden sollen. Dabei werden Abfragen in die Quellbäume wie auch in die bis dahin aufgebauten Zielbäume formuliert. Die Abfragesprache ist ein mengenorientierter Ausdruck, der alle Eigenschaften der Knoten auslesen und auch setzen kann. Erzeugte Knoten können nachträglich beliebig manipuliert werden.

Weitere Merkmale von MetaMorphosis unterstützen den industriellen Einsatz: flexible Speicherverwaltung für sehr große Dokumente, Aufbau von Hilfsdatenstrukturen (getindex, putindex) zum schnellen Zugriff, Plugin-Architektur, API für C++, C#, Java, die Möglichkeit dedizierte Frontends und Backend zu implementieren (in C++ wie auch in der MetaMorphosis-Skriptsprache).

Template Attribute Language

Im Rahmen des Anwendungsservers Zope wurde die Template Attribute Language (TAL) entwickelt; TAL-Templates sind (je nach Ausgabeformat) [X]HTML- oder XML-Dokumente, deren Inhalte durch Attribute dynamisch ersetzt werden können, und die damit Prototyp und verwendetes Template vereinen. Dem Element <xsl:for-each> entspricht etwa das Attribut tal:repeat; als Ausdruckssyntax wird die TAL Expression Syntax verwendet. Wenn sich kein HTML- oder XML-Element als Träger des Attributs anbietet, können auch <tal:beliebigerBezeichner>-Elemente verwendet werden.

Programmiersprachen

Eine grundsätzliche Alternative zu XSLT besteht in der Möglichkeit, solche Transformationen in jeder beliebigen Programmiersprache (z. B. Java, C++ oder Perl) abzufassen. XSLT kann dabei jedoch bei Einhaltung bestimmter Voraussetzungen eine gewisse Garantie für wohlgeformte und unter Umständen sogar gültige Zieldokumente gewähren.

Es ist auch möglich, beides zu koppeln: Die eigentliche Transformation geschieht dann per XSLT, jedoch werden innerhalb des XSLT-Stylesheets selbstdefinierte Funktionen zur Stringmanipulation aufgerufen. Das (z. B. in Ruby oder Python geschriebene) Programm besteht dann aus diesen selbstdefinierten Funktionen und dem Aufruf einer XSLT-Funktion, die den Stylesheet und die eigenen Funktionen als Parameter erhält.

Abgrenzung zu CSS

CSS ist keine Alternative zu XSLT, da es sich bei CSS um eine Formatierungssprache handelt. CSS beschreibt lediglich, wie die Bestandteile eines Baumes (akustisch oder visuell) zu formatieren sind, während XSLT den Baum radikal ändern kann oder als Ergebnis Dokumente liefern kann, die nicht auf XML basieren. So kann man mit XSLT z. B. automatisch Inhaltsverzeichnisse, Indizes, Link-Listen und komplexe Berechnungen erstellen, nicht jedoch mit CSS. Mit XSLT ist es zudem möglich, Ergebnisse zu erzeugen, die CSS als Formatierungssprache verwenden.

Code-Beispiel

Folgendes XSLT erzeugt ein einfaches Inhaltsverzeichnis für eine XHTML-Seite mit Überschriften:

<xsl:stylesheet
    version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:html="http://www.w3.org/1999/xhtml"
    xmlns="http://www.w3.org/1999/xhtml"
    exclude-result-prefixes="html"
>

    <xsl:output
        method="xml"
        doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
        doctype-public="-//W3C//DTD XHTML 1.1//EN"
    />

    <xsl:template match="html:body">
        <xsl:copy>
            <xsl:apply-templates select="@*"/>
            <h1><xsl:apply-templates select="//html:title//text()" /></h1>
            <h2 id="t-o-c">Inhaltsverzeichnis</h2>
            <ul>
                <li><a href="#t-o-c">Inhaltsverzeichnis</a></li>
                <xsl:for-each select=".//html:h2">
                    <li>
                        <xsl:if test="not(@id)">
                            <xsl:message>Achtung: Kann ohne Id keinen Link erzeugen</xsl:message>
                        </xsl:if>
                        <a href="#{@id}"><xsl:apply-templates/></a>
                    </li>
                </xsl:for-each>
            </ul>
            <xsl:apply-templates/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="node()|@*">
        <xsl:copy>
            <xsl:apply-templates select="node()|@*"/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

Siehe auch: XML, XSL-FO, XPath

XSLT-Prozessoren

Die meisten gängigen Webbrowser (u. a. Mozilla Firefox, Internet Explorer, Google Chrome, Opera) unterstützen mittlerweile XSLT. Folgend eine Auflistung von weiteren bekannten XSLT-fähigen Prozessoren und Bibliotheken.

  • Saxon (Java und .NET, nichtvalidierende Variante, eingeschränkt frei, unterstützt XSLT 3.0, XPath 3.0 und XQuery 1.1)
  • TransforMiiX (C++, frei)
  • Xalan-Java (Java, frei)
  • Xalan-C++ (C++, frei)
  • libxslt/xsltproc (C, frei)
  • XT (Java, ursprünglich von James Clark, frei)
  • XSLTengine (Java, multiplattform, nicht frei, viele Erweiterungen)
  • Sablotron (C++, multiplattform, frei)
  • Microsoft XML Core Services (Windows, nicht frei)
  • Unicorn XSLT Processor (Windows, nicht frei, nützliche Zusatzwerkzeuge)
  • WebSphere Application Server Feature Pack for XML (Erweiterung von WebSphere, nicht frei, unterstützt XSLT 2.0, XPath 2.0 und XQuery 1.0)

Literatur

Wikibooks: XSLT – Lern- und Lehrmaterialien

Einzelnachweise

  1. w3.org
  2. Universal Turing Machine in XSLT. Unidex, Inc. (englisch).
  3. XSL Transformations (XSLT) Version 1.0, W3C Proposed Recommendation, in: archive.org. 8. Oktober 1999, archiviert vom Original am 16. Juni 2006; abgerufen am 12. Februar 2017 (englisch).
  4. XSLT 3.0
  5. Saxon 9.8 product comparison (Feature Matrix)
  6. Amelie Flatt, Arne Langner, Olof Leps: Phase III: Generating Artifacts from the Model. In: Model-Driven Development of Akoma Ntoso Application Profiles. Springer International Publishing, Cham 2022, ISBN 978-3-03114131-7, S. 31–37, doi:10.1007/978-3-031-14132-4_5 (springer.com [abgerufen am 7. Januar 2023]).

Read other articles:

Diane Keaton nel febbraio 2012 Oscar alla miglior attrice 1978 Diane Keaton, pseudonimo di Diane Hall (Los Angeles, 5 gennaio 1946), è un'attrice, produttrice cinematografica, regista e scrittrice statunitense. Cominciò la carriera a teatro, per poi esordire al cinema nel 1970. Ottenne la sua prima parte di rilievo interpretando Kay Adams ne Il padrino (1972), ripresa ne Il padrino - Parte II (1974), e si consacrò definitivamente grazie al sodalizio artistico con Woody Allen. La quarta pellic…

Голубянки Самец голубянки икар Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ПервичноротыеБез ранга:ЛиняющиеБез ранга:PanarthropodaТип:ЧленистоногиеПодтип:ТрахейнодышащиеНадкласс:ШестиногиеКласс:Н…

دورة الألعاب الأمريكية 1971 البلد كولومبيا  المدينة المضيفة كالي الدول المشاركة 32 الرياضيون المشاركون 2935 التاريخ 1971  المكان كالي  الأحداث 169 حدث في 18 رياضة حفل الافتتاح يوليو 30 حفل الاختتام أغسطس 13 تعديل مصدري - تعديل   دورة الألعاب الأمريكية 1971 أقيمت في كالي من يوليو…

Canadian ice hockey player (born 1994) Ice hockey player Carson Soucy Soucy with the Seattle Kraken in 2023Born (1994-07-27) July 27, 1994 (age 29)Viking, Alberta, CanadaHeight 6 ft 5 in (196 cm)Weight 210 lb (95 kg; 15 st 0 lb)Position DefenceShoots LeftNHL teamFormer teams Vancouver CanucksMinnesota WildSeattle KrakenNHL draft 137th overall, 2013Minnesota WildPlaying career 2017–present Carson Soucy (born July 27, 1994) is a Canadian professional i…

Questa voce o sezione sull'argomento Calabria è priva o carente di note e riferimenti bibliografici puntuali. Sebbene vi siano una bibliografia e/o dei collegamenti esterni, manca la contestualizzazione delle fonti con note a piè di pagina o altri riferimenti precisi che indichino puntualmente la provenienza delle informazioni. Puoi migliorare questa voce citando le fonti più precisamente. Segui i suggerimenti del progetto di riferimento. Monasteracecomune Monasterace – Veduta Localizz…

此条目序言章节没有充分总结全文内容要点。 (2019年3月21日)请考虑扩充序言,清晰概述条目所有重點。请在条目的讨论页讨论此问题。 哈萨克斯坦總統哈薩克總統旗現任Қасым-Жомарт Кемелұлы Тоқаев卡瑟姆若马尔特·托卡耶夫自2019年3月20日在任任期7年首任努尔苏丹·纳扎尔巴耶夫设立1990年4月24日(哈薩克蘇維埃社會主義共和國總統) 哈萨克斯坦 哈萨克斯坦政府與…

Juan Arango Arango berseragam Borussia MönchengladbachInformasi pribadiNama lengkap Juan Fernando Arango SáenzTanggal lahir 17 Mei 1980 (umur 44)Tempat lahir Maracay, VenezuelaTinggi 1,80 m (5 ft 11 in)Posisi bermain Gelandang serangInformasi klubKlub saat ini TijuanaNomor 18Karier junior1986–1996 UCVKarier senior*Tahun Tim Tampil (Gol)1996–1999 Nueva Cádiz ? (?)1999 Zulianos 12 (0)2000 Caracas 19 (5)2000–2001 Monterrey 45 (6)2002–2003 Pachuca 52 (16)2003–2004 Pu…

Sayed Jafar Al-Idrus Bupati KotabaruPetahanaMulai menjabat 2016 26 April 2021Ditunjuk oleh22 Maret 2021[[Wakil Bupati Kotabaru|Wakil]]Ir. Burhanuddin (2016-2020) Andi Latif (2021-2025)PendahuluIrhami Ridjani Dr. Ir. H. Isra (pj.)PenggantiPetahana Informasi pribadiLahir17 Maret 1962 (umur 62)KotabaruPartai politikPartai Golongan KaryaSuami/istriFatma IdianaAnak1Sunting kotak info • L • B H. Sayed Jafar Al-Idrus, S.H. (lahir 17 Maret 1962) adalah bupati Kotabaru yang menjaba…

American guitarist and singer (1942–1995) Jerry GarciaGarcia performing in 1977, Fox Theatre, Atlanta, GeorgiaBornJerome John Garcia(1942-08-01)August 1, 1942San Francisco, California, U.S.DiedAugust 9, 1995(1995-08-09) (aged 53)Forest Knolls, California, U.S.OccupationsGuitaristsingersongwriterYears active1960–1995Spouses Sara Ruppenthal ​ ​(m. 1963; div. 1967)​ Carolyn Adams ​ ​(m. 1981; div. 19…

Copy of the cover of the Senjinkun The Instructions for the Battlefield (Kyūjitai: 戰陣訓; Shinjitai: 戦陣訓, Senjinkun, Japanese pronunciation: [se̞nʑiŋkũ͍ɴ]) was a pocket-sized military code issued to soldiers in the Imperial Japanese forces on 8 January 1941 in the name of then-War Minister Hideki Tojo.[1] It was in use at the outbreak of the Pacific War. The Senjinkun was regarded as a supplement to the Imperial Rescript to Soldiers and Sailors, which was already…

Stasiun Tsugawa津川駅Stasiun Tsugawa pada Juni 2010Lokasi127 Tsugawa, Aga-machi, Higashikambara-gun, Niigata-ken 959-4401JepangKoordinat37°41′17″N 139°26′49″E / 37.6881°N 139.4470°E / 37.6881; 139.4470Koordinat: 37°41′17″N 139°26′49″E / 37.6881°N 139.4470°E / 37.6881; 139.4470Operator JR EastJalur■ Jalur Ban'etsu BaratLetak137.0 km dari KōriyamaJumlah peron1 peron pulauJumlah jalur2Informasi lainStatusMemiliki staf (Mi…

Legazione di Bologna Informazioni generaliNome ufficialeLegazione apostolica di Bologna CapoluogoBologna Dipendente da Stato Pontificio AmministrazioneForma amministrativaLegazione Legato pontificioLegati pontifici di Bologna Organi deliberativiSenato di Bologna Evoluzione storicaInizio1540 con Bonifacio Ferrero CausaDivisione della Provincia Romandiolæ in due Legazioni Fine1796 con Ippolito Antonio Vincenti Mareri CausaOccupazione del nord Italia da parte dei francesi Preceduto da Succeduto da…

此條目没有列出任何参考或来源。 (2012年2月7日)維基百科所有的內容都應該可供查證。请协助補充可靠来源以改善这篇条目。无法查证的內容可能會因為異議提出而被移除。 伊凡一世 伊凡一世·丹尼洛维奇(钱袋)(Ива́н I Дани́лович Калита́,1288年—1340年3月31日),是莫斯科大公(约1325年-1340年3月31日在位),亚历山大·涅夫斯基幼子丹尼尔·亚历山德罗维奇之…

جامعة القديس طوماس حرم الجامعة الرئيسي معلومات التأسيس 1611  الانتماءات جامعة كاثوليكية (دومينيكانية) الموقع الجغرافي إحداثيات 14°36′35″N 120°59′23″E / 14.609722222222°N 120.98972222222°E / 14.609722222222; 120.98972222222   المدينة مانيلا البلد  الفلبين إحصاءات عدد الطلاب 33013   الموقع ال…

Pour les articles homonymes, voir Henke. Christian Heinrich Adolph HenkeBiographieNaissance 13 avril 1775BrunswickDécès 8 août 1843 (à 68 ans)ErlangenNationalité brunswickoiseFormation Université de GöttingenUniversité technique de BrunswickUniversité d'HelmstedtActivités Professeur d'université, physiologiste, pathologiste, médecin, pharmacologueFratrie Eduard Henke (en)Autres informationsA travaillé pour Université Friedrich-Alexander d'Erlangen-NurembergMembre de Académie …

Politics of Antigua and Barbuda Executive Monarch Charles III Governor-General Sir Rodney Williams Prime Minister Gaston Browne Cabinet Legislative Parliament Senate President House of Representatives Speaker Leader of the Opposition Judicial Magistrates' Courts Supreme Court High Court Court of Appeal Judicial Committee of the Privy Council Elections Recent elections General: 201420182023 Political parties Administrative divisions Parishes and dependencies Foreign relations Ministry of Foreign …

Carrarese Calcio 1908Calcio Azzurri, Giallazzurri, Apuani, Marmiferi, Dragoni Azzurri Segni distintiviUniformi di gara Casa Trasferta Colori sociali Azzurro, giallo SimboliRuota InnoCarrarese![1]Alberto Lagomarsini Dati societariCittàCarrara Nazione Italia ConfederazioneUEFA Federazione FIGC CampionatoSerie B Fondazione1908 Rifondazione2016Presidente Fabio Oppicelli Allenatore Antonio Calabro Stadiodei Marmi(3 520 posti) Sito webwww.carraresecalcio1908.it Palmarès Trofei nazi…

Thoroughbred horse race held annually since 1996 and played at the Meydan Racecourse Horse race Dubai World CupGroup 1 raceThe world's richest horse raceLocationMeydan RacecourseDubai, United Arab EmiratesInaugurated1996Race typeThoroughbred - Flat racingWebsiteOfficial websiteRace informationDistance2,000 metres (about 10 furlongs)SurfaceDirtTrackLeft-handedQualificationNorthern Hemisphere 4yo+ & Southern Hemisphere 3yo+WeightSH 3yo: 54.5kg.NH & SH 4yo+: 57kgPurseUS$12 million (2024; ra…

Vous lisez un « bon article » labellisé en 2009. Assassinat de James A. Garfield Le président Garfield avec James Blaine après les coups de feu de Charles J. Guiteau[1],[2]. Localisation Washington, D.C. (États-Unis) Cible James A. Garfield Coordonnées 38° 53′ 31″ nord, 77° 01′ 13″ ouest Date 2 juillet 1881 9 h 30 Type Assassinat Armes Webley Bulldog Morts 1 Auteurs Charles J. Guiteau Géolocalisation sur la carte : Washingt…

Суперкубок Таджикистана по футболу Основан 2010 Регион Таджикистан Число участников 2 Действующий победитель «Истиклол» (Душанбе) Наиболее титулован «Истиклол» (Душанбе) (12 раз) Телекомпании Варзиш ТВ Футбол ФФТ 2024 Суперку́бок Таджикистана (тадж. Суперҷоми Тоҷикистон) —…