Podpora XML ve VisualStudio.NET

Jiří Kosek


Obsah

XML editor
XML schémata
Editor XML schémat
Je VS.NET dobrý XML editor?

Vývojové prostředí VisualStudio ve svých posledních verzích patřilo ke špičce mezi obdobnými nástroji. Nové VisualStudio.NET určené pro vývoj aplikací na platformě .NET tuto pozici jen dále upevňuje. Jazyk XML se v mnoha aplikacích stále častěji používá jako formát pro ukládání a výměnu dat a konec konců i v samotném .NETu najdeme XML na mnoha místech. VisualStudio.NET (VS.NET) proto celkem logicky nabízí podporu pro práci s XML dokumenty. V tomto krátkém článku se podíváme, jak nám VS.NET usnadní přípravu a zpracování XML dokumentů.

XML editor

Při editování správně strukturovaných (well-formed) XML dokumentů (tj. dokumentů, ke kterým nemáme DTD nebo XML schéma) toho VS.NET příliš nenabízí. V XML dokumentu je zvýrazněná syntaxe, takže snadno rozlišíme, co je element, atribut a text. Po vložení počátečního tagu za nás prostředí automaticky doplní koncový tag.

Obrázek 11. XML dokument lze editovat ve zdrojové podobě...

U každého XML dokumentu se můžeme přepnout do datového pohledu, kde místo zdrojového kódu XML vidíme dokument zobrazený jako několik tabulek. Je to možné díky tomu, že .NET pro přenos relačních záznamů používá XML a tak je definované mapování mezi XML a relačním schématem. Mapování XML na datový pohled je však prakticky použitelné pouze v případech, kdy pro XML dokument máme XML schéma. V opačném případě je namapování minimálně nezvyklé a některé části XML dokumentu jsou v tomto pohledu nepřístupné.

Obrázek 12. ...nebo na něj pohlížet jako na několik relačních tabulek

XML schémata

XML schémata jsou jádrem podpory XML ve VS.NET. Připomeňme si jen, že XML schéma definuje jaké elementy a atributy lze v XML dokumentu použít podobně jako databázové schéma definuje tabulky, jejich atributy a datové typy v relačních databázích. XML schémata jsou standardem W3C a jsou následníkem DTD. Oproti DTD nabízejí takové možnosti jako definování datových typů, integritní omezení a referenční integritu – to vše v rámci XML dokumentu.

Ke každému XML dokumentu můžeme přiřadit schéma, kterému má vyhovovat. Editor nám pak po napsání znaku `<' automaticky nabídne seznam elementů přípustných podle schématu. Podobně se kontextově nabízejí i atributy a jejich hodnoty. S touto pomocí jde vytváření XML dokumentů od ruky mnohem rychleji.

Obrázek 13. Existuje-li k dokumentu XML schéma, editor nám s vytvářením XML dokumentu pomůže

Kontextové nabízení elementů při editaci však není zdaleka dokonalé, spíše jde jen na půl cesty. Nabízí nám vždy všechny elementy, které mohou být vloženy do daného elementu. Editor však nepozná, že už jsme určitý element vložili, a teď jej již nemůžeme vložit znovu. Zároveň VS.NET ignoruje to, že v XML schématu je definováno pořadí elementů. K užitku vám proto určitě přijde funkce XML->Validate XML Data, která provede validaci dokumentu oproti schématu. Pokud jsou v dokumentu chyby, můžete se po nich pohodlně pohybovat stejným způsobem jako po chybách vzniklých při kompilaci programu.

Také mi chyběla možnost zabalení/rozbalení obsahu určitého elementu. Absence této funkce je pro mne nepochopitelná, protože např. pro editování C# kódu je k dispozici.

Editor XML schémat

Asi nejužitečnější částí VS.NET z pohledu XML je editor XML schémat. XML schémata jsou poměrně komplikovaný standard a psát je přímo v ruce není zrovna zábavné a snadné. Většina vývojářů proto uvítá možnost editovat schéma pomocí grafického rozhraní, které je podobné různým CASE nástrojům. Můžeme v něm vytvářet nové elementy, atributy a datové typy, nastavovat vztahy mezi elementy, určovat integritní omezení, definovat klíče apod. Microsoft tak alespoň trochu odčinil to, že i přes odpor značné části XML vývojářské komunity prosadil tak zbytečně složitý a rozbujelý standard jako XML schémata.

Obrázek 14. Bez grafického editoru by XML schémata byla noční můrou nejednoho vývojáře

Editor XML schémat umí i přímo importovat struktury z relačních zdrojů dat (z databázových tabulek), takže převedení struktury databáze do XML schématu je otázkou pár kliknutí. Trošku škoda je, že podobným způsobem jako XML schémata nejsou podporována i DTD – pro mnoho aplikací stačí a jsou mnohem jednodušší.

Je VS.NET dobrý XML editor?

Kdybychom srovnali schopnosti VS.NET pro editování XML dokumentů se specializovanými vývojářskými XML editory jako je např. XML Spy, nedopadlo by VS.NET nijak zvlášť dobře. Některé funkce jsou mnohem lépe implementovány i ve free produktech jako je GNU Emacs+PSGML. Pokud však jen občas potřebujete upravit nějaký XML dokument nebo XML schéma, není nutné si kvůli tomu pořizovat speciální program. Navíc se dá očekávat, že třetí výrobci brzy nabídnou plug-iny do VS.NET, které jeho možnosti ještě rozšíří. Např. už dnes si můžete od firmy ActiveState koupit XSLT editor, který se po instalaci tváří jako nedílná část VS.NET. Kromě doplňování kódu nabízí i zabalování/rozbalování elementů a ladění XSLT stylů.

© Jiří Kosek 2002