Het genereren van XML-bestanden vanuit relationele databases
Soms is het een goede manier om snel aan een project te beginnen door een voorbeeld te volgen dat iemand anders heeft gemaakt. Het nadeel is dat u mogelijk een betere, efficiëntere oplossing mist. In onze recente publicatie over XML in de cloud hebben we DatabaseSpy gebruikt om verbinding te maken met een lokale MySQL-database en met de Amazon Relational Database Service in de cloud. We hebben de functie Concat() in een SQL SELECT-statement gebruikt om XML-geformatteerde uitvoer te genereren uit niet-XML-gegevens, zoals hieronder wordt weergegeven.
![]()
Onze SELECT-statement was gebaseerd op een voorbeeld in de MySQL-documentatie over XML-ondersteuning. Laten we eens wat dieper kijken naar het probleem dat deze stelling probeert aan te pakken. U kunt een DatabaseSpy-resultaatstabel, zoals de tabel hierboven, kopiëren en plakken in een bewerkingsvenster in XMLSpy, maar de resultaatstabel alleen genereert geen correct opgebouwd XML-document. Om correct te zijn volgens de definitie van de W3C, Een XML-document moet een hoofdelement bevatten. Alle andere elementen en logische structuren moeten zich binnen de hoofdelement bevinden. U kunt het root-element ook zien als een omhulsel rond de volledige XML-inhoud, net zoals het element
![]()
Wanneer we op de knop "Exporteren" klikken, formatteert DatabaseSpy de relationele gegevens met XML-elementnamen die zijn afgeleid van de kolomnamen van de tabel, en stuurt de resulterende uitvoer direct naar XMLSpy. De screenshot hieronder toont een deel van het bestand in XMLSpy. Het venster "Berichten" onderaan bevestigt dat het bestand correct is opgebouwd.
![]()
Let op dat DatabaseSpy het hoofdelement Concat()-functie. We zijn met dit artikel begonnen om aan de eenvoudige eis te voldoen om een hoofdelement toe te voegen om de output van de eerder beschreven Concat()-functie compleet te maken. Wanneer projecten in de praktijk een conversie van relationele databases naar XML vereisen, zijn de eisen waarschijnlijk veel complexer.
Altova XMLSpy maakt direct verbinding met alle populaire databases om te werken met XML-technologieën en relationele data. XMLSpy stelt u in staat om eenvoudig een XML-schema te creëren op basis van een database structuur, of een database schema te creëren op basis van een XML-schema. XMLSpy bevat ook geavanceerde editors en debuggers voor XQuery en XPath voor XML-data die direct in databases zijn opgeslagen, evenals speciale ondersteuning voor XML-functionaliteit in Microsoft SQL Server, IBM DB2 en Oracle databases. Naarmate meer industrieën XML-gebaseerde standaarden voor gegevensuitwisseling implementeren en verder ontwikkelen, is er vaak een behoefte om gegevens die zijn opgeslagen in oudere databases om te zetten naar XML. Altova MapForce maakt verbinding met databases en stelt u in staat om relationele data te mappen en te transformeren, zodat deze compatibel zijn met één of meerdere XML-schema's.
U kunt uw mapping gebruiken om eenmalig gegevens om te zetten. U kunt uw mapping ook opslaan en later opnieuw openen om een andere conversie uit te voeren. Daarnaast kunt u MapForce instrueren om royalty-vrije broncode te genereren op basis van uw mapping, die u vervolgens in uw eigen project kunt opnemen wanneer herhaalde conversies nodig zijn.
Als u zelf wilt zien hoe goed de Altova-tools goed opgemaakte XML-bestanden kunnen genereren vanuit relationele databases, download dan een gratis proefversie van de Altova MissionKit.