XML-schema bewerken: Een visuele aanpak

Als XML de taal is waarin uw data wordt uitgedrukt, dan is XML Schema Definition (XSD) de grammatica die bepaalt hoe die taal werkt. Een goed ontworpen schema zorgt ervoor dat documenten geldig zijn, maakt code generatie mogelijk, ondersteunt validatie en biedt documentatie voor iedereen die met uw data werkt. Het ontwerpen van schema's kan echter erg tijdrovend zijn, vooral als u XSD handmatig bewerkt. Laten we eens kijken waarom visuele schema-bewerking zoveel verschil maakt.

Waarom het ontwerp van een schema belangrijk is

Dit is deel 2 van onze serie in 5 delen over het bewerken van XML-bestanden. Bekijk Deel 1: De complete gids voor het bewerken van XML en blijf op de hoogte voor toekomstige updates.

Voordat we het over tools gaan hebben, laten we eens kijken waarom het de moeite waard is om tijd te besteden aan een goed schema-ontwerp. Een schema is meer dan alleen een technisch onderdeel; het is een overeenkomst tussen uw applicatie en de data die deze gebruikt. Een goed doordacht schema helpt ontwikkelaars:

  • Zorg voor de integriteit van de gegevens door de structuur en datatypes te valideren voordat ze worden verwerkt

  • Lever duidelijke, begrijpelijke documentatie over het gegevensformaat

  • Detecteer fouten vroegtijdig in de datastroom, om problemen verder in het proces te voorkomen

  • Zorg voor een lange levensduur en onderhoudsgemak, ook wanneer systemen zich verder ontwikkelen

Toch leren de meeste ontwikkelaars XSD en proberen ze het daarna zoveel mogelijk te vermijden. Waarom? Omdat het bewerken van complexe schema's in platte tekst vergelijkbaar is met het handmatig schrijven van HTML in 1995. Hoewel het mogelijk is, is het tijdrovend en vaak foutgevoelig.

De frustratie van het handmatig bewerken van XSD-bestanden

XSD-syntax is complex en omvangrijk. Stel je voor dat je een complex type definieert met meerdere elementen, attributen en geneste groepen. Alleen al in de ruwe tekstvorm bestaat het al uit tientallen regels XML. En stel je nu voor dat je een beperking wilt toevoegen, de kardinaliteit wilt wijzigen, of de relaties tussen elementen wilt herstructureren. Je moet voortdurend heen en weer scrollen, de inspringing controleren, verifiëren of de openings- en sluitingstags overeenkomen, en hopen dat je per ongeluk niets kapot hebt gemaakt.

En dat is nog voordat u de correctheid controleert en valideert, en ontdekt dat u ergens een fout heeft gemaakt in de 200 regels XSD-code. Het vinden en corrigeren van die fout betekent dat u de complexe XML-code opnieuw moet doorlezen, in een poging om de logische structuur achter de syntaxis te begrijpen.

Een visuele editor lost dit probleem op doordat u de logische structuur direct kunt zien. Deze aanpak toont een diagram dat de structuur van het schema weergeeft en waarmee u elementen kunt verplaatsen en/of contextmenu's kunt gebruiken om het schema bij te werken.

Hoe het bewerken van grafische schema's werkt

Altova was pionier op het gebied van visuele schema-bewerking. De grafische XML-schema-editor in Altova XMLSpy zet de abstracte XSD-syntaxis om in iets dat u visueel kunt zien en bewerken. Hier volgt een uitleg van hoe dit uw workflow verandert:

Eenvoudig en overzichtelijk ontwerp

Wanneer u met een schema werkt in de XSD-editor, worden alle globaal gedefinieerde componenten (bijvoorbeeld elementen, complexTypes, attributeGroups, enz.) georganiseerd in een sorteerbare lijst. Hier kunt u componenten toevoegen of verwijderen en hun eigenschappen wijzigen met behulp van contextgevoelige hulpmiddelen, in plaats van al deze eigenschappen handmatig te definiëren.

Door op het boom-icoon voor elk globaal component te klikken, opent u de gedetailleerde grafische weergave van het inhoudsmodel in de XSD-editor. Hier kunt u eenvoudig elementen verslepen en herschikken, of contextgevoelige opties selecteren via het rechtermuisklikmenu en de hulpmiddelenvensters.

De elementen worden weergegeven als vakken, hun relaties als verbindingslijnen, en beperkingen als visuele annotaties. U kunt in één oogopslag zien of een element subelementen bevat, welke attributen welke datatypes hebben, en of elementen optioneel of verplicht zijn. De visuele weergave maakt de structuur en hiërarchie van het schema direct duidelijk.

Drag-and-drop bewerking

De grafische weergave maakt het eenvoudig om elementen te verplaatsen en te herschikken, of om contextgevoelige opties te selecteren via hulpmiddelen. De editor controleert de XSD-restricties, waardoor u per ongeluk geen ongeldig schema kunt aanmaken.

Visueel ontwerp van complexe datatypes

Complexe datatypes met sequenties, keuzes en beperkingen zijn berucht om hun moeilijkheid om te begrijpen in de ruwe XSD-code. Visueel worden ze daarentegen veel duidelijker. U ziet precies welke elementen erin zitten, hun volgorde, hun kardinaliteit (verplicht, optioneel, herhalend) en eventuele beperkingen. Het aanpassen van deze datatypes is een kwestie van het selecteren van het element en het wijzigen van de bijbehorende eigenschappen.

Automatische codegeneratie

Het belangrijkste voordeel: zodra uw schema grafisch is ontworpen, kunt u code genereren. Heeft u een Java-klasse, een C#-klasse of C++-structuren nodig die overeenkomen met uw schema? De editor genereert deze automatisch en behoudt daarbij alle beperkingen en relaties. Dit overbrugt de kloof tussen uw schema en uw applicatiecode.

Het genereren van schema's op basis van voorbeelden, databases en andere formaten

Soms ontwerpt u geen schema helemaal opnieuw. Misschien heeft u een voorbeeld-XML-bestand en wilt u een schema afleiden van dat bestand. Of u heeft een relationele database en u wilt een schema dat overeenkomt met de structuur ervan. Of, misschien begint u met een JSON-schema. XMLSpy kan met al deze scenario's omgaan.

Schema-generatie op basis van voorbeelden werkt door een XML-document te analyseren en het schema te reconstrueren dat het zou valideren. Dit is enorm nuttig om snel een basis-schema te creëren, vooral wanneer u werkt met bestaande XML-formaten. Vervolgens kunt u het gegenereerde schema visueel aanpassen.

Het genereren van XML-schema's op basis van databases is net zo krachtig voor bedrijven met bestaande relationele data. XMLSpy kan verbinding maken met uw database, de structuur analyseren en een XSD genereren die overeenkomt met uw tabellen en kolommen. Dit stelt u in staat om uw relationele data als XML te behandelen, waardoor mogelijkheden ontstaan voor transformatie, integratie en rapportage.

De conversie van JSON Schema overbrugt het verschil wanneer uw uitgangspunt een JSON-gebaseerde definitie is. XMLSpy kan direct een XSD genereren op basis van een JSON Schema. Dus, als uw team – of een API waarmee u integreert – al datastructuren in JSON Schema definieert, hoeft u dat werk niet helemaal opnieuw te doen. Converteer het naar XSD, verfijn het in de visuele editor, en u bent klaar om XML te valideren tegen die definitie.

Beste praktijken voor het ontwerpen van datastructuren

Visuele schema-bewerking versnelt niet alleen het ontwerpproces, maar bevordert ook een betere ontwerpoplossing. Hier zijn enkele best practices die gemakkelijker worden met een visuele editor:

  • Gebruik element- en attribuutgroepen om herhaling te verminderen en de onderhoudbaarheid te verbeteren

  • Definieer herbruikbare, complexe datatypes en gebruik type-erfelijkheid voor vergelijkbare structuren

  • Gebruik duidelijke naamgevingsconventies, zodat uw schema zichzelf documenteert

  • Pas verstandige beperkingen op het aantal keren dat een element mag voorkomen (minimum en maximum aantal) toe om ongeldige documenten te voorkomen

  • Gebruik beperkingen en patronen voor eenvoudige datatypes om de geldigheid van de gegevens op schema-niveau te waarborgen

Met visuele bewerking en slimme contextmenu's worden deze werkwijzen een natuurlijk onderdeel van uw ontwerpproces, in plaats van een extra belasting.

De voordelen die volgen

Een goed ontworpen schema levert voordelen op in de gehele datastroom. Ten eerste maakt het het mogelijk om data validatie: Elke XML-code die voldoet aan het schema, garandeert de verwachte structuur. Codegeneratie versnelt de ontwikkeling, omdat u geen dataklassen handmatig hoeft te schrijven. De documentatie is helder, omdat het schema zelf het dataformaat beschrijft (en in XMLSpy kunt u aanvullende documentatie genereren) gedetailleerde documentatie om te communiceren met andere teamleden). Bovendien is het onderhoud eenvoudiger, omdat de visuele weergave de relaties gemakkelijk begrijpelijk maakt.

De grafische schema-editor van XMLSpy biedt al deze voordelen. Of u nu een nieuw schema ontwerpt, een bestaand schema omzet in een bruikbaar model, of een complex bedrijfsbreed schema onderhoudt, een visuele aanpak bespaart tijd en verbetert de kwaliteit.

Klaar om betere schema's te ontwerpen?

Probeer de grafische schema-ontwerper van XMLSpy met een gratis proefperiode van 30 dagen. Ontdek hoe veel sneller en intuïtiever schema-ontwerp kan worden als u direct kunt zien wat u bouwt.