Práce s XML v .NET aplikacích. Open source nástroje pro práci s XML. Nástroje pro porovnání XML

V prvním článku na blogu .NET „Práce s XML“ lidé v komentářích požadovali článek o LINQ to XML. Nuže, zkusme odhalit principy fungování této nové technologie od Microsoftu.

Vytvořme základnu pro vedení katalogu zvukových nahrávek. Databáze se bude skládat ze skladeb:

  • název
  • Vykonavatel
  • Album
  • Doba trvání
Naučíme se přidávat, upravovat, mazat a provádět různé výběry z naší databáze.

Nejprve si vytvoříme konzolovou aplikaci (své projekty píšu v C#, ale podstata bude obecně každému jasná) a propojíme potřebný jmenný prostor

Pomocí System.Xml.Linq;

Generování XML souborů

Vytvořme XML soubor naší databáze obsahující několik testovacích záznamů pomocí LINQ:

//nastavíme cestu k našemu pracovnímu souboru XML řetězec fileName = "base.xml"; //počítadlo pro číslo stopy int trackId = 1; //Vytvoření vnořenými konstruktory. XDocument doc = new XDocument(new XElement("library", new XElement("track", new XAttribute("id", trackId++), new XAttribute("genre", "Rap")), new XAttribute("time", " 3:24"), nový XElement("název", "Kdo jsme RMX (feat. 2Pac)"), nový XElement("umělec", "DMX"), nový XElement("album", "")), new XElement("track", new XAttribute("id", trackId++), new XAttribute("genre", "Rap"), new XAttribute("time", "5:06"), new XElement("name", "Angel (ft. Regina Bell)")), nový XElement("umělec", "DMX"), nový XElement("album", "...And Then There Was X")), nový XElement("track", nový atribut XAttribute("id", trackId++), nový atribut XAttribute("žánr", "Break Beat"), nový atribut XAttribute("čas", "6:16"), nový prvek XElement("name", "Dreaming Your Dreams") , nový XElement("artist", "Hybrid"), nový XElement("album", "Wide Angle"), nový XElement("track", nový XAttribute("id", trackId++), nový XAttribute("žánr" , "Break Beat"), nový XAttribute("čas", "9:38"), nový XElement("název", "Dokončená symfonie"), nový XElement("umělec", "Hybrid"), nový XElement(" album", "Wide Angle")))); //uložte náš dokument doc.Save(fileName);

Nyní se po spuštění ve složce s naším programem objeví soubor XML s následujícím obsahem:
Kdo jsme RMX (feat. 2Pac) DMX The Dogz Mixtape: Kdo je další?! Angel (ft. Regina Bell) DMX ...a pak bylo X Snít své sny Hybridní Široký úhel Hotová symfonie Hybridní Široký úhel

Chcete-li vytvořit takový soubor pomocí XmlDocument, kód vyžadoval asi 2krát více. Ve výše uvedeném kódu jsme použili konstruktor třídy XDocument, který jako parametr bere seznam podřízených prvků, se kterými chceme dokument zpočátku inicializovat. Použitý konstruktor XElement bere jako parametr název prvku, který vytváříme, a také seznam inicializačních prvků. V těchto prvcích můžeme pohodlně nastavit nový XElement i XAttribute. Ten bude vykreslen do našeho souboru jako atributy nezávisle. Pokud se vám takové vnořování konstruktorů nelíbí a takový kód považujete za těžkopádný, můžete jej přepsat do tradičnější verze. Níže uvedený kód vygeneruje podobný soubor XML:

XDocument doc = nový XDocument(); Knihovna XElement = new XElement("knihovna"); doc.Add(knihovna); //vytvoří prvek "track" XElement track = new XElement("track"); //přidejte potřebné atributy track.Add(new XAttribute("id", 1)); track.Add(new XAttribute("žánr", "Rap")); track.Add(new XAttribute("time", "3:24")); //vytvoří prvek "name" XElement name = new XElement("name"); name.Value = "Who We Be RMX (feat. 2Pac)"; track.Add(name); //создаем элемент "artist" XElement artist = new XElement("artist"); artist.Value = "DMX"; track.Add(artist); //Для разнообразия распарсим элемент "album" string albumData = "!} The Dogz Mixtape: Kdo je další?!"; album XElement = XElement.Parse(albumData); track.Add(album); doc.Root.Add(track); /* *přidejte zbývající prvky stejným způsobem */ //uložte náš dokument doc.Save( název souboru);

Samozřejmě musíte zvolit potřebnou metodu v závislosti na situaci.

Čtení dat ze souboru

//nastavíme cestu k našemu pracovnímu souboru XML řetězec fileName = "base.xml"; //přečtení dat ze souboru XDocument doc = XDocument.Load(fileName); //procházíme každý prvek v nové knihovně //(tento prvek je okamžitě přístupný prostřednictvím vlastnosti doc.Root) foreach (XElement el v doc.Root.Elements()) ( //Vypíše název prvku a hodnota atributu id Console.WriteLine(" (0) (1)", el.Name, el.Attribute("id").Value.Console.WriteLine(" Atributy:"); atributy ve smyčce, zároveň uvidíte, jak se převádějí na řetězec foreach (XAttribute attr v el.Attributes()) Console.WriteLine(" (0)", attr.WriteLine(" Elements:")); ; // tisk jmen všech podřízených prvků a jejich hodnot ve smyčce foreach (prvek XElement) v el.Elements()) Console.WriteLine(" (0): (1)", element.Name, element. hodnota)

Myslím, že zde v kódu není nic složitého a jsou poskytovány komentáře. Po spuštění našeho programu se v konzole zobrazí následující výsledek:

Skladba 1 Atributy: id="1" žánr="Rap" time="3:24" Prvky: název: Who We Be RMX (feat. 2Pac) interpret: DMX album: The Dogz Mixtape: Who's Next?! skladba 2 Atributy: id="2" Žánr="Rap" time="5:06" Prvky: jméno: Angel (ft. Regina Bell) umělec: DMX album: ...And Then There Was X track 3 Atributy: id= "3" žánr="Break Beat" time="6:16" Prvky: název: Dreaming Your Dreams umělec: Hybridní album: Širokoúhlá skladba 4 Atributy: id="4" žánr="Break Beat" time="9: 38" Elements: název: Hotový Symfonický umělec: Hybridní album: Wide Angle

Změna údajů

Zkusme projít všechny uzly knihovny a zvýšit atribut Id prvku stopy o 1.
(Deklaraci cesty k souboru a výsledek výstupu do konzole dál psát nebudu, abych článek nezahltil zbytečnými informacemi, vše jsem zkompiloval, vše funguje :)):

//Získání prvního podřízeného uzlu z knihovny XNode node = doc.Root.FirstNode; while (node ​​​​!= null) ( //zkontrolujte, zda je aktuální uzel prvkem if (node.NodeType == System.Xml.XmlNodeType.Element) ( XElement el = (XElement)node; //získáte hodnotu atribut id a převeďte jej do Int32 int id = Int32.Parse(el.Attribute("id").Value //zvýšte počítadlo o jedničku a přiřaďte hodnotu zpět id++ el.Attribute("id"); Hodnota = id.ToString() ) ) //přesun na další uzel node = node.NextNode ) doc.Save(název_souboru);

Nyní to zkusme udělat pro naše úkoly správnějším způsobem:

Foreach (XElement el v doc.Root.Elements("track")) ( int id = Int32.Parse(el.Attribute("id").Value); el.SetAttributeValue("id", --id); ) doc.Save(název souboru);

Jak vidíte, tento způsob nám vyhovoval více.

Přidání nového záznamu

Pojďme přidat novou stopu do naší knihovny a zároveň spočítat následující jedinečné ID pro stopu pomocí LINQ:

Int maxId = doc.Root.Elements("track").Max(t => Int32.Parse(t.Attribute("id").Value)); Skladba XElement = new XElement("track", new XAttribute("id", ++maxId), new XAttribute("genre", "Break Beat"), new XAttribute("time", "5:35"), new XElement("jméno", "Vyšší než mrakodrap"), nový XElement("umělec", "Hybrid"), nový XElement("album", "Ranní sci-fi")); doc.Root.Add(track); doc.Save(název souboru);

S takto vzneseným dotazem na všechny prvky se vypočítá maximální hodnota atributu id stop. Při přidávání inkrementujeme výslednou maximální hodnotu. Samotné přidání prvku spočívá ve volání metody Add. Vezměte prosím na vědomí, že přidáváme prvky do kořenového adresáře, protože jinak narušíme strukturu dokumentu XML tím, že tam deklarujeme 2 kořenové prvky. Nezapomeňte také uložit svůj dokument na disk, protože do uložení se žádné změny v našem XDocumentu neprojeví v souboru XML.

Odebírání položek

Pokusme se odstranit všechny prvky DMX umělců:

IEpočetné skladby = doc.Root.Descendants("track").Where(t => t.Element("artist").Value == "DMX").ToList(); foreach (XElement t in tracks) t.Remove(); !}

V tomto příkladu jsme nejprve vybrali všechny stopy, jejichž podřízený prvek artst splnil kritéria, a poté jsme tyto prvky ve smyčce odstranili. Důležité je volání ToList() na konci výběru. Tímto způsobem zaznamenáme do samostatné oblasti paměti všechny prvky, které chceme vymazat. Pokud se rozhodneme vymazat z množiny záznamů, které procházíme přímo ve smyčce, dostaneme odstranění prvního prvku a následnou NullReferenceException. Je tedy důležité si to pamatovat.
Podle rady xaoccps jej můžete smazat jednodušším způsobem:
IEpočetné skladby = doc.Root.Descendants("track").Where(t => t.Element("artist").Value == "DMX"); tracks.Remove(); !}
V tomto případě není potřeba převádět náš výsledný výsledek na seznam voláním funkce ToList(). Proč tato metoda nebyla původně popsána v

Jazyk není syn, ale otec myšlenky.
Oscar Wilde

Zkratka XML znamená Extensible Markup Language, v překladu „rozšiřitelný značkovací jazyk“. Stejně jako HTML je podmnožinou SGML (Standard General Markup Language), „praotce“ značkovacích jazyků. S formátem XML jsme se setkali nejednou. Toto je formát konfiguračních souborů, souboru popisujícího zdroje dat objektů.

XML je univerzální, na platformě nezávislý standard pro popis informací, které lze použít k reprezentaci hierarchických dat a sjednocení přenášené informace. Bez jeho znalosti není možné porozumět SOAP a tedy ani webovým službám. XML se stalo de facto standardem pro přenos dat na internetu. Standard pro XML a související formáty definuje W3C (World Široká síť Konsorcium). Aspx stránky vytváříme například ve formátu XHTML - přechod mezi HTML a XML, jehož standard definuje i W3C. Standard XHTML ukládá přísnější pravidla pro správné vytvoření dokumentu, podobně jako pravidla XML.

Pojďme pochopit hlavní rozdíl mezi XML a HTML. XML je navržen tak, aby popisoval data a zaměřil se na to, co přesně to je. HTML je navrženo tak, aby zobrazovalo data a zaměřuje se na to, jak data vypadají. Pokud jsou v tradičním HTML pojmy „prezentace“ a „vizualizace“ často zaměňovány, pak při práci s XML tyto pojmy jasně oddělujeme. XML tagy nejsou na rozdíl od HTML tagů předdefinovány tvůrci jazyka. Každý autor dokumentu definuje své vlastní značky.

Norma vyžaduje, aby se program, který zpracovává dokument XML, musel zastavit, pokud narazí na chybu. A pokud prohlížeč zjistí v HTML nejasnou značku nebo absenci uzavírací značky, jednoduše ji ignoruje.

Na začátku XML dokumentu se vždy objeví jeho deklarace neboli prolog. Určuje verzi standardu XML, kterému odpovídá.

je chyba v XML.

Tagy mohou mít atributy. Hodnoty atributů musí být uzavřeny v uvozovkách. Na pořadí atributů nezáleží. Mezi úvodní a závěrečnou značkou může být text. XML zachovává všechny mezery nalezené v textu. Pokud není žádný text, můžete použít zkrácenou formu zápisu. Příklad značky XML:

Toto je krátká forma značky

Připomíná vám to něco? Pravidla pro popis prvků ASP.NET jsou naprosto stejná.

Existuje atribut xmlns, který definuje jmenný prostor. Jeho hodnota může být jakákoli jedinečné jméno. Existuje dohoda o používání adres URL, protože jsou jedinečné. Jmenné prostory mají význam podobný tomu, jak se používají v .NET Framework – aby nedošlo k záměně podobných názvů používaných různými vývojáři. Název oboru názvů je od názvu oddělen dvojtečkou.

Soubory XML představují hierarchické informace, které lze reprezentovat jako strom s jedním kořenem.

Dokumenty XML, které splňují všechny syntaktické požadavky, se nazývají dobře zformované. K popisu dat používá XML DTD (Document Type Definition) - definice typu dokumentu. Pokud soubor odpovídá DTD, je považován za platný.

Prohlížeče IE 6.0, FireFox 1.5 zobrazují soubory XML se zvýrazněním syntaxe. Nadřazené uzly lze rozšiřovat a zavírat. Například po zavření vypadá kořenový uzel souboru BirthDay.xml takto:

Vývojová prostředí Vizuální studio a VWD Express kontrolují správnost xml dokumentů přímo během editace.

AdRotator

Ovládací prvek AdRotator umožňuje zobrazovat reklamní bannery a automaticky je nahrazovat jinými. Samotné bannery jsou popsány v souboru XML nebo jiném zdroji dat. Reklama se aktualizuje při každém obnovení stránky. Vlastnost AdvertismentFile určuje název souboru XML. Kostra souboru XML je následující.

Uvnitř uzlu Reklamy jsou uzly

Tyto uzly mají 5 atributů, z nichž všechny jsou volitelné.

Příklad souboru AdvertismentFile se nazývá ads.xml.

opraveno.gif http://www.im.am Hosting zdarma 40 hostování logo2.jpg http://www.nv.am Noviny "Nový čas" 50 zprávy léto.jpg http://www.utro.ru Zpěvačku Jasmine zbil její manžel! 100 žluté zprávy

Na stránku je umístěn ovládací prvek. Jeho vlastnost AdvertisementFile odkazuje na tento soubor.

Pokud je nastavena vlastnost Klíčové slovo, ovládací prvek zobrazí pouze reklamy, které odpovídají jeho obsahu. Protože ji lze dynamicky měnit, lze reklamu přizpůsobit potřebám uživatele. Klíčové slovo se musí v souboru reklamy objevit alespoň jednou, jinak bude místo reklamy prázdný obdélník.

V předchozích verzích ASP.NET jste mohli pracovat pouze se soubory XML. Nyní můžete použít libovolný zdroj dat navázáním na ovládací prvek zdroje dat. V tomto případě musíte zadat alespoň 3 zdrojová pole ve vlastnostech ImageUrlField, NavigateUrlField a AlternateTextField.

Soubory pro převod dokumentů

Je známo, že CSS (Cascading Stylesheets) se často používají k formátování souborů HTML, i když to není nutné, protože prohlížeče spojují určitý vzhled se všemi značkami. Živel

Nastaví odstavec - tučné písmo - prohlížeč ví, jak je zobrazit.

Protože XML nepoužívá předdefinované značky, jejich význam může být jakýkoli:

může znamenat HTML tabulku nebo může znamenat dřevěnou tabulku. Prohlížeče tedy zobrazují XML dokumenty „tak, jak jsou“. Můžete také zadat soubory CSS pro dokumenty XML, ale to se nedoporučuje.

Pro nastavení formátu zobrazení XML dokumentů se používají styly XSL. XSL- Extensible Stylesheet Language je mnohem bohatší na možnosti než CSS. XSL je více než jen šablona stylů.

Stejný soubor XML lze propojit s různými tabulkami XSL, a to i programově.

XSL se skládá ze 3 částí:

  1. XSLT – metoda pro transformaci XML dokumentů
  2. XPath – metoda pro specifikaci částí a cest k XML elementům
  3. XSL Formatting Objects - metody pro formátování XML dokumentů

Nejdůležitější součástí XSL je transformační jazyk XSLT. Používá se k transformaci dokumentů XSL na jiné typy dokumentů nebo jiné dokumenty XSL. XSLT se často používá k převodu dokumentu XSL do formátu HTML.

Chcete-li vytvořit dokument XSLT, vyberte soubor XSLT v dialogovém okně vytváření souboru. VS 2005 vytváří rámec stylů. Protože šablona stylů je sama o sobě dokumentem XML, začíná deklarací XML.

Pokud jste studovali CSS, víte, že se používají pravidla stylu. Pravidlo se skládá z selektoru a příkazu stylu ve složených závorkách.

Tato značka obsahuje soubor HTML šablony. Komentář připomíná, že je potřeba tam vložit XSL prvky.

Podívejme se na vytvoření souborů XSLT na příkladu. Vytvořte soubor XML "Quotes.xml" ve složce App_Data

Chtěli jsme to nejlepší, ale dopadlo to jako vždy. Viktor Černomyrdin Amerika je kontinent tak pojmenovaný, protože ho objevil Kolumbus. Georges Elgozy Rozčiluje mě pomyšlení na to, kolik bych se toho naučil, kdybych nechodil do školy. George Bernard Shaw Aby se nemyslelo, bylo vymyšleno mnoho. Karel Čapek Pokud řeknete pravdu, stejně vás dříve nebo později chytí. Oscar Wilde Pokud do té doby nebude oběšen, měl by být prezidentem. Mark Twain

Pro výstup transformací XSLT pro každý prvek XML použijte značku xsl:for-each XSL. Prvek :for-each vyhledá prvky v dokumentu XML a zopakuje vzor pro každý z nich.

Data lze třídit pomocí značky xsl:sort, která musí být uvnitř prvku xsl:for-each:

Konečný vzhled transformačního souboru:

Slavné výroky

Citát Autor


Pokud chcete vidět výsledek transformace dokumentu v prohlížeči, zahrňte deklaraci za XML deklaraci

,

nebo vyberte Zobrazit výstup XML z nabídky XML a zadejte transformační soubor.

Stejný dokument XML lze transformovat pomocí jiného souboru XSL:

Mistři aforismu





Výsledkem budou nabídky oddělené vodorovnou čarou.

Soubory definice schématu dokumentu

Podle moderního standardu musí platný dokument odpovídat souboru, který je k němu přidružen XSD(XML Schema Definition) – Soubor definice schématu XML, který definuje konkrétní jazyk, tj. popisuje, jaké prvky a typy se mohou objevit v dokumentu. XSD schémata mají nahradit DTD (Document Type Definition), rozdíl mezi nimi je v tom, že samotné XSD soubory také používají XML syntaxi. Schémata XSD umožňují určit, které značky jsou povoleny, zda jsou vyžadovány nebo ne, zda se mohou v dokumentu opakovat atd. XML tedy popisuje data a XSD popisuje strukturu těchto dat nebo metadat. Z hlediska programování je XSD popis typů, zatímco soubor XML popisuje objekty těchto typů. Pracovní návrh standardu XSD 1.1 je k dispozici na http://www.w3.org/TR/2003/WD-xmlschema-11-req-20030121/.

Soubor definice schématu začíná popisem prefixu jmenného prostoru, který je pak zahrnut ve všech prvcích souboru. http://tempuri.org se používá k nastavení URI pro jmenné prostory ASP.NET.

Tato definice například určuje, že prvek "Autor" je typu řetězec, musí se objevit pouze jednou, a pokud není zadán, nabývá hodnoty "Pushkin".

Parametr maxOccurs="unbounded" určuje, že se prvek může objevit libovolněkrát.

Parametr ref vám umožňuje odkazovat na něco, co již bylo popsáno v tento soubor globální prvek nebo atribut, aby se předešlo opakování stejných prvků.

  1. definovat jednoduché a složité typy.

XSD má předdefinované typy – v podstatě stejné jako .NET. Jsou převedeny na typy .NET za běhu aplikace. Na jejich základě můžete stavět složité typy podobné strukturám programovacích jazyků. Komplexní typ se skládá z posloupnosti deklarací prvků. Definujme komplexní typ

Štítek určuje, že prvky daného typu se musí objevit v daném pořadí. Pokud byl použit štítek , pak se prvky mohou objevit v libovolném pořadí.

Štítek podobná struktuře s opcemi. Určuje, že prvek daného typu musí mít pouze jeden ze svých vnořených prvků.

Následující příklad definuje jednoduchý typ vnořený do definice prvku MyValue.

  1. Přidejte nové skupiny a skupiny atributů.

V definici komplexní typ se mohou objevit atributy. Řekněme, že chceme vytvořit schéma pro soubor, jako je tento:

Atributy mohou být pouze jednoduchých typů.

  1. Přidejte poznámky.

Poznámky vám umožňují vkládat popisy existujících prvků a tím přidávat dokumentaci do souboru.

Citáty různých autorů

je určen pro čtenáře souboru, a pro programy pro zpracování souborů.

Soubory XSD můžete v aplikaci Visual Studio 2005 upravovat jak prostřednictvím zdrojového kódu, tak pomocí návrháře. Pro dokument XML můžete automaticky vygenerovat odpovídající schéma. V okně vlastností dokumentu XML můžete zadat soubor schématu i transformační soubor. V tomto případě studio automaticky zkontroluje, zda soubor vyhovuje schématu, a dokonce IntelliSense nahradí tagy z tohoto souboru.

třída XmlReader

Pomocí třídy XmlReader můžete načíst data z dokumentů XML rychleji než jiné metody.

XmlReader je abstraktní třída. Chcete-li začít číst, statická metoda Create je předán objekt třídy XmlReaderSettings. Tato funkce počítá počet uzlů v dokumentu.

pomocí System.Xml; pomocí System.IO; private int CountNodes(string xmlFile) ( int NodesCount=0; nastavení XmlReaderSettings = new XmlReaderSettings(); settings.IgnoreWhitespace = true; settings.IgnoreComments = true; using (XmlReader reader = XmlReader.Create(xmlFile, nastavení)) ( while reader.Read()) ( if (reader.NodeType == XmlNodeType.Element) ( NodesCount++; ) ) return NodesCount;

Třída XmlReader umožňuje načíst třídy CLR z dokumentu. Dáme si jídelní lístek restaurace.

Pojďme napsat funkci, která bude počítat součet cen a kalorií v menu.

protected void Page_Load(object sender, EventArgs e) ( int ItemsCount = 0; desítkové DishesTotal = 0; UInt16 CaloriesTotal = 0; XmlReaderSettings settings = new XmlReaderSettings(); settings.IgnoreWhitespace = true; NameTable nt); new = nt.Add("jídlo" cena objektu = nt.Add("cena"); objekt kalorie = nt.Add("kalorie" string MenuFile = Path.Combine(Request.PhysicalApplicationPath , "menu.xml"); ); pomocí (XmlReader reader = XmlReader.Create(MenuFile, nastavení)) ( while (reader.Read()) ( if (reader.NodeType == XmlNodeType.Element && food.Equals(reader.LocalName )) ( ItemsCount++; ) if (reader.NodeType == XmlNodeType.Element && price.Equals(reader.LocalName)) (DishesTotal += (UInt16)reader.ReadElementContentAsDecimal(); ) if (reader.NodeType == XmlNodeType.Equals &(čtečka kalorií. .LocalName)) ( CaloriesTotal += (UInt16)reader.ReadElementContentAsInt(); ) ) Response.Write(String.Format("Objednali jste si (0) jídla v hodnotě (1:C), (2) kalorie", ItemsCount, DishesTotal , Calories Total)); )

Třída XPathDocument

Třída poskytuje čtení a ukládání dokumentů XML do paměti pro transformace pomocí XSL. V dokumentu můžete procházet libovolným směrem a získat náhodný přístup k libovolnému prvku pomocí výrazů XPath.

Vezměme si XML dokument "Quotes.xml" a soubor XSL transformace"Quotes.xsl". Výsledek transformace dokumentu XML bude odeslán do výstupního proudu stránky.

<% XPathDocument doc = new XPathDocument(Server.MapPath("App_Data\\Quotes.xml")); XslCompiledTransform xsl = new XslCompiledTransform(); xsl.Load(Server.MapPath("App_Data\\Quotes.xsl")); xsl.Transform(doc, null, Response.OutputStream); %>

Vzhledem k tomu, že v transformačním souboru jsou definovány tagy tabulky, objeví se na stránce tabulka s potřebnými informacemi.

Kontrola XML

Ovládací prvek XML poskytuje způsob, jak transformovat dokument XML pomocí šablony stylů XSL. Vlastnost DocumentSource umožňuje zadat soubor XML, ve kterém jsou data umístěna, a vlastnost TransformSource umožňuje zadat transformační soubor XSLT.

V předchozím příkladu bylo možné stejného výsledku dosáhnout umístěním ovládacího prvku XML na stránku.

XMLDataSource

Prvek zdroje dat XMLDataSource poskytuje jednoduchý způsob, jak propojit dokumenty XML jako zdroje dat s prvky, které zobrazují informace. Můžete také zadat dotaz XPath pro filtrování dat. Stejně jako SqlDataSource umožňuje upravovat, mazat, přidávat datové záznamy. Chcete-li to provést, musíte přistupovat k objektu XmlDataDocument, který se v něm nachází, voláním metody GetXmlDocument. Po úpravě se dokument uloží pomocí metody Uložit.

Na rozdíl od tabulkových dat v DBMS jsou data v souborech XML hierarchická, takže XMLDataSource je vhodné svázat s hierarchickými ovládacími prvky, jako je Menu.

Syntaxe XML Data Binding

Vzhledem k tomu, že aplikace stále častěji používají data XML, byla zavedena metoda, jak svázat data získaná z XMLDataSource.

Tyto metody fungují stejně jako Bind a Eval, o kterých se hovořilo v 7. přednášce.

Aplikujme tuto syntaxi na prvek DataList, který přijímá data z XmlDataSource:

Závěr

V této přednášce jsme se podívali na práci s XML daty. XML poskytuje univerzální způsob popisu a výměny strukturovaných informací, nezávislý na aplikacích a vývojářích. Tím je úvaha o práci se zdroji dat dokončena.

Od doby, kdy jsem slíbil, že budu mluvit o práci s daty ve formátu XML při vývoji .NET aplikací, uplynula poměrně dlouhá doba. Sliby se musí plnit. Upozorňujeme, že tento článek není zaměřen na profesionální .NET vývojáře, ale na ty, kteří ještě nemají výraznější zkušenosti s tvorbou .NET aplikací.


Proč bychom měli pracovat s XML?

Pokud ještě nemáte moc dobrou představu o tom, co je XML, pak doporučuji přečíst si článek „XML to myslí vážně a na dlouho“ v „KV“ č. za rok 2007. Z důvodu úspory místa na důležitější věci zde nebude analyzován samotný formát XML.

Než se pustíte do seznamování s programovým kódem, musíte si odpovědět na jednu zásadní otázku: proč do své aplikace vůbec zahrnout podporu XML? Myslím, že mnoho lidí si tuto otázku ohledně mnoha technologií položilo a ne všechny byly po odpovědi zahrnuty do aplikací. U XML je však situace poněkud odlišná a v mnoha situacích existují skutečné důvody pro použití tohoto formátu.

Hlavní výhodou XML je to, že je svou povahou textový formát, ale přesto dokonale umožňuje ukládat a přenášet jakákoli data. Vzhledem k tomu, že se jedná o textový formát, je problém jeho multiplatformního řešení vyřešen sám o sobě a stejně snadno je vyřešen problém přenosu XML dat (jako je tomu například v SOAP). Kromě toho můžete snadno změnit formát přenosu dat nebo úložiště přidáním nových atributů a bez přílišných starostí o kompatibilitu s předchozími verzemi formátu, protože aplikace používající starou verzi budou moci číst, co potřebují, aniž by věnovaly pozornost novým značky nebo atributy. Mnoho aplikací používá formáty souborů založené na XML, mnoho protokolů pro přenos dat je také založeno na XML a seznamy obou se stále rozrůstají.

Na druhou stranu XML samozřejmě není příliš ekonomické, protože, jak jednou správně poznamenal jeden z návštěvníků fóra Computer News, XML dokumenty se často skládají z 10 % dat a 90 % značek. To však do značné míry závisí na tom, jaké značky zvolíte. Můžeš psát Svatý. Melnikaite, 2, Mohu . I když, abych byl upřímný, zdá se mi, že se současnými pevnými disky a tlustými kanály nemá smysl být zvlášť komprimován.

Takže ve správných rukou je XML výkonná a pohodlná věc a kvůli všudypřítomnosti tohoto formátu mu nemůžete vůbec uniknout. Pojďme tedy k psaní programového kódu.

Pro programování budeme používat hlavní jazyk platformy .NET - C#. Aby si s daným programovým kódem procvičilo co nejvíce čtenářů samo, použiji první verzi C# a .NET Framework.


Záznam dat

Nejprve si povíme něco o zápisu dat, protože, víte, abyste mohli něco odněkud číst, musíte nejprve někam něco napsat. A protože jsme vy a já začali programovat, není pro nás vhodné vytvářet XML data ručně. Začněme tedy nejprve zápisem dat do XML.

Nejprve vytvořte nový projekt v sadě Visual Studio, #Develop nebo C# Builder a přidejte System.Xml do seznamu importovaných jmenných prostorů.

Za zápis XML dat v .NET Frameworku je zodpovědná speciální třída XmlTextWriter, která umožňuje zapisovat XML data do libovolného streamu, tedy obecně řečeno, můžeme je použít k zápisu do souboru, databáze , a poslat někomu přes internet, ale nyní vše zapíšeme do souboru Výstup můžete přesměrovat změnou konstruktoru objektu (tj. předáváním nikoli názvu souboru a jeho kódování při inicializaci, ale objektu, který je datem. stream). Myslím, že jsem už trochu předběhl. Pojďme se nejprve seznámit s kódem zodpovědným za zápis dat do našeho souboru XML.

String FileName = "c:\\demo.xml"; XmlTextWriter xml = new XmlTextWriter(Název souboru, System.Text.Encoding.Unicode); xml.Formatting = Formátování.Odsazené; xml.WriteStartDocument(); xml.WriteStartElement("rootelement"); for (int i = 0; i< 10; i++) { xml.WriteStartElement("subelement"); xml.WriteAttributeString("attrib1", "value1"); xml.WriteAttributeString("attrib2", i.ToString()); for (int j = 0; j < 10; j++){ xml.WriteStartElement("subsubelement"); xml.WriteAttributeString("attr", j.ToString()); xml.WriteEndElement(); } xml.WriteEndElement(); } xml.WriteEndElement(); xml.WriteEndDocument(); xml.Close();

První řádek je, myslím, zcela jasný – jednoduše zaznamenává název souboru, do kterého budeme data ukládat. Dále vytvoříme objekt typu XmlTextWriter (nazývá se, jak vidíte, xml) a právě s ním provedeme všechny další operace. Upozorňujeme, že při konstrukci objektu také určujeme kódování, ve kterém bude XML zapsáno: v našem příkladu je to Unicode. Další řádek, obecně řečeno, není vyžadován, ale díky němu bude náš dokument XML, jak se říká, čitelný pro člověka, to znamená, že přidá potřebné odrážky a rozdělí ho na řádky. Bez toho by byl celý dokument napsán na jeden řádek, což sice šetří místo, ale pro ruční úpravy je prakticky nevhodný.

Zápis dokumentu začíná voláním metody WriteStartDocument() našeho xml objektu. Následující řádek přidává kořenový prvek „rootelement“ do našeho dokumentu XML (dovolte mi připomenout, že u dokumentů XML musí být kořenový prvek přítomen v jediné kopii). Dále v cyklu přidáme do našeho XML dokumentu deset dalších prvků, které nenesou žádnou sémantickou zátěž, pro každý z nich nastavíme dva atributy a deset dalších dílčích prvků. Upozorňujeme, že k řetězci můžeme přidat číslo, aniž bychom data explicitně převáděli, ale pokud číslo musí tvořit celý řetězec, musí být převedeno explicitně pomocí metody ToString(). Všimněte si také, že musíme explicitně zavřít každý z prvků našeho dokumentu XML a poté celý dokument.

Nyní, když byl náš dokument XML úspěšně napsán, se podívejme, jak z něj můžeme číst data.


Čtení dat

Přidejte do formuláře své aplikace komponentu listBox (pokud se samozřejmě nejedná o konzolovou aplikaci), abyste mohli sledovat výsledek čtení XML souboru. Pokud je váš program konzolovým programem, můžete výstup snadno přesměrovat do konzole.

Jako obvykle se nejprve seznámíme s kódem programu a poté se podíváme na to, co přesně tento kód dělá.

XmlTextReader xml = new XmlTextReader(NázevSouboru); xml.WhitespaceHandling = WhitespaceHandling.None; int i = 0; while (xml.Read())( if ((xml.NodeType == XmlNodeType.Element) & (xml.Name == "subelement")) ( listBox1.Items.Add("subelement " + i + " nalezen") ; i++; listBox1.Items.Add(" " + xml.GetAttribute("attrib1")); listBox1.Items.Add(" " + xml.Xml.Name == "podprvek")); )( listBox1.Items.Add(" " + xml.GetAttribute("attr")); ) ) ) xml.Close();

Pro čtení, jak jste si mohli všimnout, používáme jinou třídu, a to XmlTextReader. Nachází se ve stejném jmenném prostoru jako třída, kterou jsme použili k zápisu dat. V prvním řádku vytvoříme instanci XmlTextReader, pojmenovanou xml (zde předpokládáme, že proměnná FileName jsme již dříve definovali, abychom přeskakovali prázdné řádky, pokud se nějak nevysvětlitelně objeví v našem právě vytvořeném XML souboru). další řádek v daném fragmentu kódu. Proměnná i se používá k počítání počtu prvků "podelementu" nalezených v souboru XML, ze kterého se načítají data.

Následuje cyklus přímého čtení dat ze souboru. Metoda Read() přečte další prvek XML dokumentu a po jeho přečtení zkontrolujeme, co přesně čteme. Pokud se skutečně jedná o prvek „subelement“, pak přidáme informace o přečteném prvku do listBox1, inkrementujeme proměnnou obsahující počet přečtených prvků a poté přečteme atributy prvku. Po přečtení atributů zorganizujeme samostatnou smyčku pro čtení dílčích prvků (všimněte si, že k tomu nepotřebujeme samostatný XmlTextReader) a atributy těchto dílčích prvků jako dříve zadáme všechny načtené informace do listBox1, abychom kontrolovali jejich správnost čtení.

Při čtení souborů XML, stejně jako při jejich zápisu, můžete při konstrukci XmlTextReaderu zadat jako parametr stream, ze kterého se má číst, a pak můžete číst nejen ze souborů, ale i z jiných zdrojů, příklady kterou jsem již uvedl výše Je třeba poznamenat jednu užitečnou vlastnost třídy XmlTextReader: při čtení nenačte celý čtený XML dokument do paměti, takže je vhodné analyzovat velké XML dokumenty (například XML databáze). .


V zákulisí

Obecně je příklad, o kterém jsme právě hovořili, příliš jednoduchý skutečné projekty. V dnešní době se při čtení XML dokumentů většinou ověřují pomocí DTD, XML Schema nebo Relax NG. Validace je kontrola, zda označení dokumentu XML odpovídá nějakému standardu popsanému v externí soubor. Validace je nutná, aby ověření dokumentu nebylo pevně zapojené do programového algoritmu, ale bylo možné jej libovolně změnit, když se změní formát dat, aniž by se aktualizoval programový kód, který čte nebo zapisuje data. Bohužel nyní nebudeme mít čas vyřešit ověření, protože, jak sami chápete, objem novinového článku má určitá omezení.

Dalším zajímavým a užitečným praktickým bodem týkajícím se práce s daty XML je transformace dat XSL. Tato transformace se aplikuje na data, když jsou zobrazena na stránkách HTML, a ve skutečnosti je to jednoduše použití konkrétní šablony webové stránky na soubor XML obsahující nějaká data. Vzhledem k tomu, že lví podíl na proudu pomocí XML-data tak či onak padají Celosvětově Web, pak by bylo velmi, velmi dobré zvážit transformace XSL.

Takže si myslím, že tento článek bude mít pokračování - ale samozřejmě jen v případě, že se na něj vy sami (tedy čtenáři Computer News) zeptáte na fóru nebo v dopise na můj email emailová adresa. Prozatím je to pravděpodobně vše o používání XML v aplikacích .NET. Doufám, že tyto informace jsou pro vás užitečné.

Nástrojeúpravy, ověřování, formátování, porovnávání souborů XML, stejně jako podpora pro XQuery, XPath, mapy webu, schémata a kanály RSS

Běžně používané zkratky
  • API: aplikační programovací rozhraní
  • DITA: Darwinova architektura informačního typování
  • DTD: Definice typu dokumentu
  • HTML: Hypertext Markup Language
  • IDE: Integrated Development Environment (integrované vývojové prostředí)
  • URL: Uniform Resource Locator
  • W3C: World Wide Web Consortium (konsorcium WWW)
  • WSDL: Jazyk popisu webových služeb
  • XHTML: Extensible Hypertext Markup Language
  • XML: Extensible Markup Language
  • XSLT: Rozšiřitelné jazykové transformace stylů

Při výběru nástrojů pro práci s technologiemi XML musíte nejprve určit požadavky. Pokud například plánujete provádět různé úlohy s XML (úpravy, ověřování atd.), zvažte použití XML IDE s příslušnou funkčností. Pro konkrétní úkol (porovnání souborů XML nebo vytvoření mapy webu) zvažte použití specializovanějšího nástroje pro tento konkrétní úkol.

Tento článek popisuje následující kategorie nástrojů XML:

  • Programy pro vývoj a kontrolu XML sitemap.
  • Generátory RSS kanálů.
  • Generátory schémat XML.
  • Programy pro kontrolu správnosti XML.
  • Programy pro formátování XML.
  • XML editory.
  • Nástroje pro práci s XML.
  • Nástroje s otevřeným zdrojové kódy pro práci s XML.
  • Integrovaná prostředí Vývoj XML.
  • Nástroje pro porovnání XML
  • Nástroje pro práci s XQuery.
  • Nástroje pro práci s XPath.

Program pro tvorbu XML sitemap

Soubor Sitemap XML je seznam všech adres URL webových stránek. Mapa webu informuje vyhledávač o adresách URL webových stránek, které jsou k dispozici pro procházení a zahrnutí do databáze vyhledávače. Většina programů pro mapy webu je založena na webu a požaduje adresu URL webové stránky spolu s několika parametry, jako je frekvence změn a datum poslední úpravy. Odkazy na všechny uvedené nástroje jsou uvedeny v sekci.

Existuje několik generátorů souborů Sitemap:

  • Google Generátor mapy webu automaticky generuje mapu webu na základě aktualizací a provozu na vašem webu nasazeném na webovém serveru.
  • Prohledávač Gsite je aplikace pro Windows pro vytváření souborů Sitemap.
  • Kromě nástrojů ke stažení lze mapy stránek generovat pomocí různých interaktivních aplikací; zde jsou dva příklady:
    • Tvůrce souborů Sitemap vytváří mapy webu pro Google, HTML a textové adresy URL.
    • XML Sitemaps vytváří mapy stránek v XML formáty, ROR, Text nebo HTML.

Programy pro kontrolu správnosti XML sitemap

Programy pro ověřování souborů Sitemap se používají k ověřování map vytvořených pro webové stránky. Takový program kontroluje, zda je mapa webu vhodná pro použití vyhledávačem. Odkazy na všechny uvedené nástroje jsou uvedeny v sekci.

Níže je uveden seznam programů pro kontrolu souborů Sitemap:

  • Validátor mapy webu Automapit kontroluje správnost mapy webu a zajišťuje, že splňuje kritéria vyhledávače.
  • XML validátor souborů Sitemap zkontroluje, zda váš soubor Sitemap neobsahuje správný kód XML, abyste mohli opravit chyby před odesláním do vyhledávačů.
  • Validátor XML Sitemap identifikuje všechny problémy s mapou, aby mohly být vyřešeny před odesláním mapy do vyhledávačů.
  • Online kontrola mapy webu obchodníka kontroluje správnost XML hlaviček v souboru sitemap.xml.

Generátory RSS kanálů

Informační kanály RSS jsou skvělým způsobem, jak informovat návštěvníky vašeho webu nejnovější změny jeho obsah. Generátory RSS kanálů jsou oblíbené například mezi uživateli, kteří si chtějí prohlížet titulky zpravodajských webů (jako je CNN) nebo vědět o nejnovějších sportovních zprávách. Odkazy na všechny uvedené nástroje jsou uvedeny v sekci.

Vývojáři webových stránek mohou generovat kanály RSS pomocí následujících nástrojů:

  • Tvůrce RSS IceRocket je program s jednoduchým rozhraním, který vám umožňuje přidávat témata, odkazy a obsah a vytvářet kanály RSS pro váš web.
  • Feedity vytváří kanály RSS pro webové stránky, zprávy nebo produkty.
  • RSSPect Nastaví kanály RSS pro webové stránky, dokumenty nebo podcasty.

Generátory schémat XML

Schémata XML lze generovat z instance XML. Odkazy na všechny uvedené nástroje jsou uvedeny v sekci.

Dostupné nástroje:

  • Trang od ThaiOpenSource– program příkazového řádku, který generuje definici schématu XML (XSD) z XML.
  • XMLBeans je program z projektu Apache, který poskytuje několik funkcí, včetně generování schémat pomocí inst2xsd (Instance to Schema Tool).
  • XML pro ASP BuildXMLSchemainteraktivní generátor XML schémata.

Programy pro kontrolu správnosti XML

Instance kódu XML lze zkontrolovat podle jejich schémat. Odkazy na všechny uvedené nástroje jsou uvedeny v sekci.

Použijte jeden z následujících interaktivních nástrojů:

  • XMLValidation.com zkontroluje, zda se dokument XML shoduje se schématem XML nebo DTD zadaným v dokumentu, nebo pokud neexistuje žádné schéma nebo deklarace DTD, zkontroluje syntaxi.
  • DecisionSoft.com Schema Validator zkontroluje správnost jednoho schématu a instance dokumentu a zobrazí seznam chyb.
  • W3C XML validátor– služba kontroly schématu s URI jmenného prostoru http://www.w3.org/2001/XMLSchema.

XML formátovače

Formátování XML je operace, která se často provádí na datech XML, aby se usnadnilo jejich čtení. Tuto funkci poskytuje většina desktopových aplikací, které pracují s XML. K provedení rychlé formátování Obsah XML bez instalace jakýchkoli nástrojů, vyzkoušejte jednu z následujících online služeb. Odkazy na všechny uvedené nástroje jsou uvedeny v sekci.

  • XMLIndent.com
  • X01 online formátovač xml

XML editory

XML editory pomáhají interpretovat XML dokument zvýrazněním prvků, atributů, popř prostý text a odsazení. Další výhodou použití editorů XML je, že mají funkce orientované na obsah, jako je stromové zobrazení, které uživateli umožňuje snadno zobrazit různé uzly dokumentu XML. Kontrolují také správnost kódu a zobrazují seznam varování a chyb, pokud chybí uzavírací značky XML. Odkazy na všechny uvedené nástroje jsou uvedeny v sekci.

  • XML editor Xerlin– Java™ program, který vytváří a ověřuje obsah XML. Editor je open source, podporuje XSLT a může validovat XML proti DTD a schématům.
  • Editor Jax– další open source XML editor založený na jazyk Java. Podporuje export obsahu do ve formátu PDF a předběžné HTML zobrazení pomocí XSLT; funguje na více platformách.
  • XMLFoxbezplatný editor XML s korektorem, který umožňuje vytvářet gramaticky správné dokumenty a schémata XML. Tento editor podporuje i další XML operace.

Nástroje XML

Transformace XSLT jsou užitečné při transformaci jednoho formuláře XML do jiného pomocí šablon stylů. S tím může pomoci řada nástrojů; příklady zahrnují Tiger XSLT Mapper a Kernow. Odkazy na všechny uvedené nástroje jsou uvedeny v sekci.

Tiger XSLT Mapper je program pro převod struktury XML, který mohou snadno používat i začátečníci. Automaticky vytváří transformace, které lze upravovat pomocí GUI, postavený na principu drag-and-drop.

Kernow je rozhraní Java, které provádí transformace programově. Kernow je dobrou volbou pro vývojáře, kteří potřebují pravidelně provádět transformace XSLT pomocí vizuálního rozhraní.

Užitečné je také několik interaktivních programů XSLT:

  • Online transformace XSLT
  • Služba W3C Online XSLT 2.0

Vývojáři, kteří preferují pluginy do prohlížeče, mohou použít následující užitečné pluginy XML:

Mozilla Firefox

  • Doplněk pro výsledky XSL zobrazuje výsledky transformace XSLT (XSLT 1.0 nebo XSLT 2.0 přes Saxon-B) dokumentu.
  • XML Developer Toolbar přidává na lištu standardní nástroje pro práci s XML.

Google Chrome

  • XML strom zobrazuje XML data v uživatelsky přívětivém formátu.
  • Prohlížeč XML– Prohlížeč dokumentů XML pro Google Chrome.

Open source nástroje pro práci s XML

Pro uživatele, kteří nemohou nakupovat komerční programy Pro práci s XML se budou hodit open source nástroje. Aktivní prací obce vznikl velmi dobré programy pro práci s XML. Odkazy na všechny uvedené nástroje jsou uvedeny v sekci.

XML IDE iXedit poskytuje řadu funkcí pro zpracování dokumentů XML:

  • Kontrola shody DTD.
  • Automatické doplňování kódu pomocí DTD.
  • Vlastní šablony.
  • XSLT zpracování.
  • Úprava po částech.

Rinzo XML Editor je XML editor, který běží v Eclipse. Mezi jeho vlastnosti:

  • Podpora jmenného prostoru.
  • Automatické doplňování značek a atributů.
  • Ověření XML.

Tyto nástroje také poskytují možnosti pro práci s prvky Java:

  • Automatické doplňování názvů tříd.
  • Otevření definice třídy.

XML editor XPontus je open source Java program, který má následující funkčnost:

  • Formátování a dokončování kódu.
  • XSL transformace.
  • Generování DTD a schématu.
  • Ověření XML.

XML IDE

Integrovaná vývojová prostředí XML (IDE) zvládají téměř všechny operace související s XML. K dispozici je řada IDE s různou funkčností. Odkazy na všechny uvedené nástroje jsou uvedeny v sekci.

XMLSpy je XML IDE pro vytváření, úpravy a ladění XML, schémat XML, XSL/XSLT, XQuery, WSDL a SOAP. Další funkce:

  • Generátor kódů.
  • Převaděč souborů.
  • Debugger.
  • Profiler.
  • Podporuje integraci do Visual Studio.NET a Eclipse IDE.
  • Průvodce importem databáze, který umožňuje importovat data z Microsoft® Access®.

XML Marker je XML editor, který používá synchronizovaný tabulkový strom a zobrazení textu k zobrazení dat XML v tabulkové a hierarchické formě. Tento program lze velmi stáhnout velké dokumenty(velikost stovek megabajtů a dokonce několik gigabajtů). Další funkce:

  • Editor se zvýrazněním syntaxe.
  • Třídicí tabulky.
  • Automatické odsazení.
  • Kontrola syntaxe při psaní.

Liquid XML Studio– balíček několika programů pro práci s XML. Poskytuje následující nástroje:

  • Editor schémat XML.
  • Generátor kódu vazby dat XML.
  • WSDL editor.
  • XML editor.
  • Integrace s Microsoft Visual Studio.
  • Testovací klient webových služeb.
  • XPath Expression Composer.
  • Generátor HTML dokumentace.
  • XSLT editor a debugger.
  • Editor velkých souborů.
  • XML Diff – porovnání XML souborů.

XML editor je plnohodnotné XML IDE s podporou různých operací souvisejících s XML. Jeho schopnosti budou užitečné zkušení uživatelé. Uveďme si některé z nich:

  • Inteligentní editor XML.
  • Ověření XML.
  • Podpora XSL/XSLT.
  • Podpora XQuery.
  • podpora XPath.
  • Publikování XML z jednoho zdroje.
  • Podpora pro dokumenty Microsoft Office.

Studio stylusu nabízí následující funkce:

  • Profilery XSLT a XQuery.
  • podpora EDI.
  • Nástroje pro práci s firemními webovými službami.
  • XML kanál.
  • Interakce schématu XML s XSLT 2.0 a XQuery 1.0.
  • XML publikační nástroje.

XML Poznámkový blok od společnosti Microsoft pomáhá vývojářům vytvářet dokumenty XML. Tento volný program obsahuje nástroj XMLDiff, který lze použít k porovnání dvou souborů XML. Jeho rozhraní je jednoduché a snadno použitelné. Program běží na platformě .Net. Zde jsou některé z jeho funkcí:

  • Stromové zobrazení synchronizované s textovým zobrazením.
  • Podpora jmenného prostoru při kopírování a přesouvání textu.
  • Přírůstkové vyhledávání ve stromovém a textovém zobrazení.
  • Podpora úprav přetažením.
  • Neomezený počet operací pro vrácení změn a opětovné provedení změn při úpravách.
  • Podpora vyhledávání pomocí regulárních výrazů a XPath.
  • Okamžitá kontrola souladu schématu XML.
  • Technologie Intellisense (automatické doplňování), založená na očekávaných prvcích, atributech a hodnotách vyjmenovaných jednoduchých typů.
  • Podpora specializovaných editorů pro datové typy datum, datum a čas, čas a další typy, například barva.
  • Vestavěný prohlížeč HTML.
  • XZahrnout podporu.

XML Copy Editor je rychlý XML editor s podporou validace. Přítomnost karet umožňuje upravovat několik souborů současně. Další funkce:

  • Kontrola shody DTD/XML Schema/RELAX NG.
  • Podpora XSLT a XPath.
  • Formátovaný tiskový výstup a barevné zvýraznění syntaxe.
  • Sbalení a dokončení značek.
  • Import a export dokumentů Microsoft Word bez ztráty informací.
  • Podpora pro XHTML, XSL, DocBook a Text Encoding Initiative (TEI).

editor XML prvního objektu– bezplatný editor XML. Umožňuje přímo upravovat strom XML zobrazený na základě obsahu dokumentu XML. Umožňuje stahovat a zpracovávat velké soubory. Některé z jeho funkcí editoru:

  • Rychlé, přenosné, založené na CMarkup.
  • Nevyžaduje Java nebo MSXML.
  • Podpora zalamování čar.
  • Kontrola shody DTD založená na MSXML.
  • Přejděte na řádek podle čísla.
  • Mapování XPath.
  • Úprava souborů v záložkách.
  • Generování C++ kódu.

XRay XML Editor– bezplatné integrované XML IDE. Tento program kontroluje platnost XML dokumentu při jeho zadávání. Má vestavěnou podporu standardů W3C. Má také prohlížeč HTML pro prohlížení webových stránek vytvořených pomocí XML. Můžete vytvořit tři typy schémat, včetně XSD, DTD a External Data Representation (XDR). Mezi další funkce patří:

  • Zpracování XSLT v reálném čase.
  • Kontrola správnosti schématu v reálném čase.
  • Integrovaný online výukový program XML.

XMLSpear je bezplatný editor XML napsaný v Javě a dostupný pro mnoho platforem. Obsahuje pokročilé funkce, jako je interaktivní ověřování schémat, pokročilý panel XPath a další. XML se zobrazuje ve třech různých formátech, včetně stromového zobrazení, zobrazení prvků a zobrazení zdroje. XMLSpear je k dispozici jako Java Web program nebo jako samostatná aplikace. Další funkce:

  • Podpora XPath a XSLT.
  • Schopnost generovat kompletní XML dokumenty ze schématu.
  • Podporuje více formátů kódování.
  • Integrovaný textový a HTML plugin.
  • Kontrola proti schématu nebo DTD v reálném čase.
  • Generování schématu z instancí XML.
  • Stromový editor pro práci s uzly.

XMLmind– multifunkční XML editor, který využívá technologie Java a dostupné pro více platforem. Vhodnější spíše pro zkušené uživatele než pro začátečníky. Představuje inovativní způsob úpravy dokumentů XML a vyžaduje platformu Java. Mezi funkce XMLmind patří:

  • Převeďte XML dokumenty do HTML, PDF, Eclipse a mnoha dalších formátů.
  • Dostupnost DITA převodníku.
  • Podpora pro DocBook, JavaDoc, XHTML a pro ně vestavěné šablony.
  • Podpora pro vytváření dokumentů MathML.
  • Editovatelné příkazy.
  • Integrovaný XML parser a XSLT engine.

ElfData XML Editor– program pro Uživatelé Mac OS. Toto XML IDE má podporu Unicode a může provádět gramatické kontroly dokumentů XML s DTD i bez něj. K dispozici jsou dva režimy prezentace: stromové zobrazení a zobrazení kódu. Podpora technologie drag-and-drop umožňuje přetahovat prvky XML do dokumentu. Vyhledávání je usnadněno přítomností dvou režimů: hledání kódu a hledání stromu. Mezi další funkce patří:

  • Vyhovuje XML 1.0.
  • Uživatelské rozhraní ve stylu Macintosh.
  • Podrobné chybové zprávy s pomocí při jejich ladění.
  • Funkce "Odeslat do prohlížeče" umožňuje zobrazit dokument v prohlížeči.
  • Schopnost ukládat stránky jako XHTML s DTD.

XMetaL podobně jako textový procesor. Jako většina XML IDE může provádět ověřování dokumentů XML a podporuje schémata, DTD a XIncludes. Další funkce:

  • Kontrola pravopisu a automatické doplňování kódu.
  • Podpora výstupu ve formátu webové nápovědy.
  • Schopnost převádět dokumenty XML do PDF, HTML a mnoha dalších formátů.
  • Konektor XMetal se integruje se systémy správy obsahu (CMS) a systémy správy verzí, jako je SVN.
  • Podpora Unicode umožňuje vytvářet dokumenty XML v různých jazycích.
  • Podpora DITA (s funkcemi, jako je vizualizace a tématicky řízené uživatelské rozhraní) pro vytváření obsahu DITA.

Nástroje pro porovnání XML

Vývojáři, editoři a autoři často potřebují program k porovnání dvou verzí dokumentu XML, aby mohli sledovat změny. Přestože je k dispozici mnoho porovnávacích nástrojů, nejúčinnějším řešením pro mnoho operací je srovnávací program speciálně navržený pro práci s dokumenty XML. Odkazy na všechny uvedené nástroje jsou uvedeny v sekci.

Rozdíl a sloučení XML umí porovnávat soubory, adresáře a ZIP archivy. Jakmile jsou zdrojové a cílové dokumenty načteny do programu, rozdíly se zobrazí barevně; změny ve zdrojových a cílových souborech lze upravovat. Program má mnoho vestavěných srovnávacích algoritmů a je schopen automaticky vybrat algoritmy na základě obsahu a velikosti dokumentu. Program může provádět porovnávání slov po slovech a znak po znaku. Při porovnávání adresářů a archivů můžete jako základ pro porovnání vybrat následující parametry:

  • Časové razítko.
  • Obsah.
  • Binární srovnání.

Liquid XMLDiff má mnoho funkcí specifických pro XML, jako je odstranění mezer, komentářů a direktiv procesoru. Tento program je dostatečně výkonný, aby předpověděl, zda jsou položky nové, smazané nebo přesunuté. Program je také dostupný jako součást Liquid XML Studio v designérské a vývojářské edici.

ExamXML je výkonný nástroj pro vizuální porovnávání a synchronizaci rozdílů mezi dokumenty XML. Vstupem XML pro porovnání může být soubor nebo pole z databáze. ExamXML může také porovnávat a ukládat části dokumentu XML; Můžete také importovat nebo exportovat z dokumentů Microsoft Excel®. ExamXML běží dál různé verze Microsoft Windows®. Další funkce:

  • Kontrola správnosti XML pro shodu s DTD a XML Schema.
  • Normalizace dat a čísel.
  • Podpora drag-and-drop.
  • XML dokumenty jsou zobrazeny jako strom.

DeltaXML umožňuje vyhledávat, porovnávat, spojovat a synchronizovat změny v dokumentech XML. Podporuje Java API, což usnadňuje srovnání softwaru XML dokumenty. Dokáže pracovat s velkými soubory. Program může vytvořit delta soubor s výsledky porovnání. Tento soubor lze zobrazit přímo nebo pomocí XSL; tento soubor můžete zpracovat v jiných programech XMKL. DeltaXML Sync dokáže porovnat tři dokumenty XML a vizualizovat rozdíly. Kromě funkce porovnání dokumentů XML má několik nástrojů pro formátování:

  • Porovnání DeltaXML DITA.
  • Srovnání DeltaXML DocBook.
  • Porovnání DeltaXML ODT.
  • Sloučit DeltaXML ODT.

Nástroje pro práci s XQuery

Jazyk XQuery může být velmi užitečný pro pokročilé uživatele XML k dotazování a extrahování obsahu z velkých XML dokumentů. Programy specifické pro XQuery vám mohou pomoci využít výhod XQuery a aktivovat funkce na vysoké úrovni, jako je zobrazení, ladění a profilování. Tyto programy poskytují užitečné funkce, jako je kontrola správnosti, dokončování kódu a náhled. Odkazy na všechny uvedené nástroje jsou uvedeny v sekci.

Editor Editor XMLSpy XQuery poskytuje zvýraznění syntaxe a kontextové nabídky pro XQuery. Jeho funkce pro dokončování kódu usnadňují vytváření dokumentů XQuery. Umožňuje také vyvíjet XQuery pro databáze podporující XML. Další funkce:

  • Izolace chyb.
  • Zjednodušené ladění.
  • Vylepšený výkon kódu.
  • Vylepšené prohlížení textu.

Program Stylus Studio XQuery Editor má integrovaný editor XQuery se širokou škálou funkcí, včetně inteligentní kontroly kódu, dokončování kódu, konstruktorů prvků, funkcí, výrazů cest a mnoho dalšího. Editor je založen na otevřené architektuře XQuery s podporou procesoru Saxon XQuery. Okno zdrojového stromu XQuery podporuje technologii přetahování a pohodlné symboly a ikony. Další funkce:

  • Vytváření XQuery skriptů.
  • Náhled XQuery.
  • Mapování výsledků XQuery na výrazy XQuery.

Vývojové nástroje XQuery pro Eclipse vám pomohou vytvořit, ladit a spouštět XQuery Prostředí Eclipse. Tyto nástroje také poskytují:

  • Podpora aktualizací XQuery a vylepšení skriptování.
  • Dokončování kódu a vzory kódu.
  • Kontrola sémantiky a rychlé opravy.
  • Ověření zadání při zadávání.

Nástroje XPath

Specializované nástroje XPath jsou užitečné pro vizualizaci výsledků hodnocení XPath a pomáhají při vytváření a ověřování výrazů XPath. NA užitečné funkce Mezi funkce poskytované těmito nástroji patří ladění výrazů XPath, automatické dokončování kódu a prohledávání databáze pomocí XPath. Odkazy na všechny uvedené nástroje jsou uvedeny v sekci.

Program SketchPath je editor XPath a nástroj pro analýzu a testování XML. Poskytuje IDE pro vývoj a testování výrazů XPath proti dokumentům XML. Program používá rozhraní .NET Framework pro práci s XPath 1.0 a Saxon.NET pro XPath 2.0. Další funkce:

  • Použití proměnných XPath ve výrazech.
  • Pomocník funkce XPath.
  • Vestavěný sledovací a debugger krok za krokem.
  • Barevné zvýraznění syntaxe pro výrazy.

Vizualizér XPath je bezplatný program pro Microsoft Windows, který provádí dotazy XPath na dokumenty XML a vizualizuje výsledky. Vstupem může být soubor v systému souborů nebo URL; Obsah souboru můžete také zkopírovat přímo do programu jako text. V programu můžete zadat úplné dotazy XPath. Další funkce:

  • Automatická detekce a mapování jmenných prostorů XML.
  • Kontrola správnosti dotazů XPath.
  • Automaticky přidat výchozí jmenný prostor XML k výrazu dotazu a možnost odebrat jmenný prostor XML z libovolného dokumentu.

K dispozici jsou také webové programy pro práci s XPath, například:

  • XPath Query Expression Tool(XMLME.com).
  • Jednoduchý online tester XPath.
  • XSLT Tryit Editor(W3Schools.com).

Závěr

Technologie XML je podporována v mnoha nástrojích. Jak Uživatel XML, měli byste analyzovat své potřeby a vybrat vhodný nástroj. Pokud například potřebujete provést mnoho různých operací, můžete si vybrat XML IDE s dalšími funkcemi, jako jsou úpravy, ověřování atd. Pro úzké úkoly(například pro porovnání souborů XML) můžete zvolit specializovaný srovnávací program.

Strukturování dat je užitečná věc a bude se hodit v nejneočekávanější chvíli. Pokud například strukturujete svou bezprostřední budoucnost, můžete vidět velikost svého platu. A můžete se rozhodnout, jak efektivně budete tento měsíc pracovat.

Samozřejmě je to sci-fi, ale bylo vynalezeno pro strukturování v programování speciální jazyk (xml). A pro úpravu dat prezentovaných v tomto formátu byly vytvořeny specializované editory xml:

Co je XML

Mnoho lidí ví, že základem jakéhokoli webového zdroje je HTML. Pomocí hypertextového jazyka lze velmi snadno a pohodlně definovat hierarchii všech prvků na webové stránce. Částečně nám to umožňuje vyřešit problém stylingu. Celá tato hierarchie je vytvořena ( strukturovaný) pomocí vestavěných značek a jejich atributů, jejichž množina, i když není malá, je stále omezená.

Proto HTML umožňuje vyřešit pouze jeden jediný problém strukturování na internetu: uspořádání a vytváření prvků webové stránky pro její následné označení ( tvorba designu). Jak ale strukturovat zbytek dat přenášených v nesčetných množstvích mezi zdroji na World Wide Web? Jak uspořádat jejich výběr, vyhledávání a filtrování bez omezení?

Všechny tyto „nedostatky“ lze opravit pomocí XML. Než začneme s naší recenzí xml editorů, pojďme se blíže podívat na to, co tento jazyk je a jaký je jeho rozsah ve virtuálním prostoru:


Zkratka XML přeložená z angličtiny znamená „ rozšiřitelný značkovací jazyk» ( Xtensible Markup Language). Je standardizován a doporučen pro použití W3C. To znamená, že jeho použití je nejoptimálnější a „bezproblémový“ způsob, jak vytvořit webový dokument.

XML kromě popisu dokumentů částečně ovlivňuje i chod speciálních systémových programů. Preprocesory tohoto jazyka jsou navrženy tak, aby překládaly data ze strojového kódu do uživatelsky přívětivé podoby. Takové preprocesory jsou základem všech editorů souborů xml.

Rozšiřitelný značkovací jazyk má následující pozitivní aspekty:

  • Je ideální prostředek popsat strukturu a označení jakéhokoli webového dokumentu;
  • V XML neexistuje žádná omezená množina prvků, pomocí kterých se provádí strukturování. Místo toho si uživatel sám nastavuje hierarchii a názvy všech prvků a spoléhá se pouze na pravidla popisu jazyka;
  • XML má jednoduchou, srozumitelnou a hlavně rozšiřitelnou syntaxi;
  • Jazyk je postaven na základním kódování Unicode;
  • Je široce používán nejen k popisu běžných webových stránek, ale také se snadno napojí na kód většiny programovacích jazyků. Včetně těch, které se používají při programování webu ( PHP, ASP. SÍŤ a další ).

XML syntaxe

Každý dokument napsaný v XML se skládá z entit. Entita je nejmenší jednotka (prvek). Každá z entit obsahuje symboly.

Dělí se na:

  • Značkovací symboly – značky, komentáře (< тег>, );
  • Doslovné znaky – to je hlavní obsah obsažený mezi tagy.

Logická struktura jazyka se skládá z hierarchicky vnořených prvků. Ten nejvyšší se nazývá kořen. Každý prvek obsahuje otevírací a uzavírací značku. A měl by se zavřít v kořenovém prvku, ve kterém byl otevřen:

Ahoj světe!

Kromě kořenového prvku se dokument XML skládá z prologu. Nachází se na samém začátku kódu. Prolog může obsahovat:

  • reklamy;
  • Pokyny pro zpracování;
  • Komentáře.

Hlavní součásti XML jsou jasněji znázorněny na následujícím snímku obrazovky dokumentu vytvořeného v jednoduchý xml editor:


Další podrobnosti o syntaxi jazyka lze nalézt pomocí technická dokumentace do XML.

Přehled editorů pro XML

  • Microsoft Visual Studio je výkonné vývojové prostředí, které kombinuje velký počet nástroje a nástroje pro psaní programového kódu. Součástí je i propracovaný XML editor. Mimo jiné podporuje tvorbu a vizualizaci XML schémat. Podpora PHP ve Visual Studiu je bohužel slabá. Toto prostředí je více „šité na míru“ pro vytváření webových aplikací pomocí ASP.NET:


  • Adobe Dreamweaver je další výkonné vývojové prostředí. Celá jeho sada nástrojů je zcela zaměřena na vytváření webových stránek. Je podporována syntaxe několika programovacích jazyků. Dreamweaver také obsahuje vestavěný editor xml tabulek:


  • XMLSpy XML Editor je výkonný nástroj pro práci s různé formáty XML data. Podporována je nejen jednoduchá editace dat, diagramů, zvýraznění syntaxe, ale také grafická vizualizace hierarchických vztahů mezi prvky:


Visual xml editor je k dispozici ve dvou edicích za 399 a 799 eur. Nejdražší možnost zahrnuje podporu syntaxe pro několik programovacích jazyků a debugger. Levnější varianta je plně kompatibilní s nejoblíbenějšími vývojovými prostředími ( Visual Studio, Eclipse), a může fungovat jako jejich plnohodnotný doplněk:


  • XML poznámkový blok - bezplatný editor xml. Má vestavěné zvýraznění syntaxe a nástroj pro ověřování. Stejně jako podpora pro konstrukci obvodů. Aplikace má jednoduché a intuitivní rozhraní:


Recenze online služeb

  • XML Schema Generator – služba vám to umožňuje běžný dokument XML vytvořit schéma (XSD). Rozhraní služby je jednoduché a navržené v černé a bílé barvě. Navíc nás těší naprostá absence reklamy;
  • xmlvalidation.com – tento zdroj umožňuje plně ověřit obsah dokumentu XML zkopírovaného do speciálního pole nebo nahraného jako soubor:


  • XSL Transformation – slouží k transformaci běžného XML kódu pomocí zadaných šablon stylů XSLT. Služba také zahrnuje několik desítek dalších nástrojů užitečných pro webmastery, včetně online XML validátoru.

Jak je vidět z recenze, pro práci s rozšiřitelným značkovacím jazykem je nejlepší použít nainstalovaný běžný xml editor vlastní počítač nebo notebook. Sada nástrojů specializovaných online služeb není tak široká a umožňuje pouze kontrolu platnosti kódu XML dokumentu. Nebo převeďte jeho obsah do schématu.




Horní