ado.net, dáta, xml,triedy,

67
YOUR LOGO ADO.NET, Dáta, XML,Triedy,...

Upload: tamera

Post on 19-Jan-2016

48 views

Category:

Documents


0 download

DESCRIPTION

ADO.NET, Dáta, XML,Triedy,. ADO.NET a ADO. ADO.NET je evoluc í technologie ADO (ActiveX Data Objects), což je knihovna COMovských komponent, která má spoustu nevýhod ADO funguje v podstatě jenom online základní datovou strukturou je RecordSet, který representuje jednu tabulku - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

ADO.NET, Dáta, XML,Triedy,...

Page 2: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

ADO.NET a ADO

ADO.NET je evolucí technologie ADO (ActiveX Data Objects), což je knihovna COMovských komponent, která má spoustu nevýhod

ADO- funguje v podstatě jenom online

- základní datovou strukturou je RecordSet, který representuje jednu tabulku

- ztrácejí se vztahy mezi daty, přístup je sekvenční

- malá abstrakce od fyzického datového modelu

- data jsou reprezentována a předávána pomocí COMovských datových typů

Page 3: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

ADO.NET a ADO

naproti tomu ADO.NET- je primárně designován pro práci offline

- data je možné logicky modelovat

- hlavní datovou struktirou je DataSet, který reprezentuje jednu nebo více tabulek a jejich vztahy

- datové typy jsou svázány s XML schématy

- není nutné data konvertovat,

Page 4: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

ADO.NET a .NET Framework

Microsoft .NET Framework

Common Language Runtime

Base Classes

Web Services User Interface

Data and XML

ADO.NET XML ... ...

Page 5: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Základní pojmy a architektura

Základní jmenné prostory-System.Data – třídy reprezentující obecný přístup k

datům, bez ohledu na konktrétní databázi (DataSet, DataTable, Constraint)

-System.Data.(OleDb|Oracle|SqlClient|Odbc) – třídy poskytovatelů dat (data providers)

-System.Data.Common

-System.Data.SqlTypes, System.Data.Sql – specifické třídy pro Microsft SQL Server

Page 6: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

.NET Data Providers Hierarchie

System.Data

.OleDb.SqlClientOleDbCommandOleDbConnectionOleDbDataReaderOleDbDataAdapter

SqlCommandSqlConnectionSqlDataReader

SqlDataAdapter

Page 7: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Třídy poskytovatelů dat

jsou vždy odvozeny od jedné základní třídy a implementují společné rozhraní podle toho, co mají dělat

každá třída má čtyři verze, jejichž jména začínají jménem příslušného poskytovatele dat

např. (Sql|OleDB|Oracle|ODBC)Connection implementují rozhraní IDbConnection a dědí od třídy DbConnection, umožňují se připojit k databázi

Page 8: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Třídy poskytovatelů

Page 9: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

DataSet

DataSet je třída, která představuje offline kontejner pro data

není nijak závislá na databázi, může představovat data z jakéhokoliv zdroje (CVS soubor, XML ap.)

obsahuje v sobě objekty představující tabulky, jejich sloupce a řádky a vztahy mezi nimi

každý z těchto prvků je reprezentován příslušnou třídou (DataTable, DataRow,...)

Page 10: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

DataTable

objekt, který představuje tabulku dat

obsahuje množinu sloupců (columns) s určitými vlastnostmi

může obsahovat jeden nebo více řádků (rows) s vlastními daty

může také obsahovat omezení na sloupce (constraints) a také informaci o primárním klíči

dále může mít tabulka také další vlastnosti (extended properties)

tyto informace se nazývají schéma tabulky

Page 11: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

DataColumn

třída pro sloupec v tabulce

každý sloupec je identifikován jménem a má sadu vlastností-ColumnName – jméno (pokud není nastaveno

konstruktorem, je automaticky ColumnN)-AutoIncrement(Seed|Step) – automatické

generování číselné hodnoty-DataType – typ sloupce (jeden z

vyjmenovaných .NETovských typů)-DefautValue – implicitní hodnota

Page 12: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

DataColumn

mohou být vytvořeny ručně nebo v kódu nebo generovány runtimem

datový typ nelze změnit poté, co byla do tabulky načtena data

jsou to hodnotové typy jako je bool, int, DateTime, TimeSpan, Double, Decimal a podobně

Page 13: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

DataRow

třída reprezentující vlastní data načtená v tabulce

protože představují offline přístup k datům uloženým v databázi nebo jinde jsou verzované (enum DataRowVersion)-Current – poslední platně uložená hodnota-Default – implicitní hodnota-Original – hodnota původně načtená z externího zdroje-Proposed – hodnota v době mezi voláními BeginEdit a EndEdit nebo CancelEdit

Page 14: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

DataRow

k jednotlivým položkám v řádku je možno přistupovat pomocí indexerů, které mají 1 nebo 2 parametry- první je objekt typu DataColumn nebo Int32 nebo String

- druhý může být požadovaná verze řádku např.

row[“Jmeno”, DataRowVersion.Current]

pomocí indexerů je možno hodnoty číst nebo měnit

Page 15: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

DataRow

každý řádek má také vlastnost RowState, která určuje, jakou operaci je třeba provést, aby se řádek uložil zpátky do databáze (enum DataRowState)-Added – řádek byl přidán (INSERT)-Deleted – řádek byl vymazán metodou Delete(),

je stále v DataTable, ale při uložení do databáze bude smazán-Detached – po vytvoření nebo volání Remove() -Modified – došlo ke změně v některém sloupci-Unchanged – od posledního volání AcceptChanges

nedošlo ke změně

Page 16: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

DataRow

pokud se mění data, jsou na příslušné tabulce vyvolávány události jako RowChanged, RowChanging, ColumnChanged a ColumnChanging

poslední lze použít k validaci dat, má parametr typu DataColumnChangeEventArgs, který má vlastnost ProposedValue

pokud nejsou hodnoty v pořádku, je možno nastavit vlastnosti RowError a ColumnError a vlastnost HasErrors příslušné tabulky

Page 17: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Constraints

umožňují zadávat omezení na jednotlivé sloupcejsou reprezentovány objekty-UniqueConstraint-ForeignKeyConstraint

UniqueConstraint – pojmenované omezení určující, že musí být každá hodnota ve sloupci jedinečná

DataTable má vlastnost PrimaryKeyForeignKeyConstraint – omezení při updatu a mazání na dvojici nebo dvou kolekcích

Page 18: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XML Schema

speciální XML soubor, který popisuje schéma – sloupce odpovídají elementům, dají se nastavit jejich typy, omezení, relace a podobně

má příponu xsd, lze jej napsat ručně nebo nechat vygenerovat z již nastaveného DataSetu

Page 19: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XML Schema

vygenerovaný kód obsahuje - pro každý komplexní element tabulku odvozenou od DataTable

- pro každý jednodychý element třídu odvozenou od DataColumn s nastavenými vlastnostmi podle atributů

- celou řadu dalších složek jako přístupové vlastnosti položek v řádku, přetížené metody pro přidání řádku

- vše je silně typované (tj. místo row[“jmeno”] je row.jmeno)

Page 20: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XML

Page 21: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

DTD

Page 22: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XSD

Page 23: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Uložení a načtení z/do XML

Uložení DataSetu do XML pomocí metod GetXML a WriteXML

Schéma lze z DataSetu uložit metodami GetXMLSchema a WriteXMLSchema

metoda Get vždycky vrací řetězec, metoda Write píše do souboru

Data se do DataSetu načtou metodou ReadXML

Page 24: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

DataSet a komunikace

ve vícevrstvé aplikaci je možno používat metody pro komunikaci pomocí DataSetů

metoda Copy vrátí přesnou kopii DataSetu

metoda Clone vrátí prázdný DataSet s přesně stejným schématem

metoda GetChanges vrátí DataSet, který obsahuje pouze řádky v jistém stavu (implicitně Deleted|Modified|Added)

metoda Merge umožňuje spojit DataSety nebo vnořit tabulky či řádky do DataSetu

Page 25: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Merge

Page 26: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Merge

umožňuje spojit dva DataSety do jednohopokud se liší schémata, je buď vyhozena výjimka,

nebo jsou spojena i schémata (parametr MissingSchemaAction

.(Error|Add|Ignore|AddWithKey)) řádky ve stavu Modified, Unchanged a Deleted se

spojí podle stejné Current hodnoty primárního klíčepodle hodnoty parametru PreserveChanges se

pozná, jestli mají být odlišné hodnoty v cílovém datasetu přepsány (false) nebo změněny a označeny jako modifikované

Page 27: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Merge

při spojování se dočasně nekontrolují omezení

pokud se po spojení některá omezení nedají dodržet, je EnforceConstraints celého DataSetu nastaveno na false a příslušné řádky jsou označeny jako chybné

Page 28: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Filtrování a řazení

je možno vytvářet pohledy na jednotlivé tabulky v DataSetu pomocí tříd DataView a DataViewManager

tyto pohledy se nejčastěji používají k navazování na prvky uživatelského rozhraní

DataView je v podstatě definován souhrnem následujích vlastností-Table – připojená tabulka (jenom jedna)-RowFilter – řetězec určující filtr na řádcích-RowStateFilter – stavy řádků-Sort – podle čeho řadit a jak

Page 29: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Filtrování a řazení - RowFilter

jedna nebo více podmínek spojených logickými operátory (AND, OR, NOT)

podmínky jsou tvaru VyrazL OP VyrazP, OP je např. <, BETWEEN, <>, IS NULL, IN(a,b,c), LIKE

VyrazL je obvykle jméno sloupce

VyrazP je výraz s hodnotou vhodného typu

Page 30: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Filtrování a řazení - RowFilter

lze použít také některé funkce jako agregační (Sum, Avg, Min, Max, Count), logické (IsNull, IIF) nebo řetězcové (SubString, Len), příp. operátory +, * apod.

Page 31: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

RowStateFilter

umožňuje vybrat jenom řádky, které jsou v nějakém stavu

enum DataViewRowState, hodnoty Added, Deleted, Modified(Current|Original), None, Unchanged, (Current|Original)Rows

Page 32: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Sort

výraz pro řazení se skládá ze jména sloupce a specifikace ASC pro vzestupné řazení a DESC pro sestupné

výrazy je možno kombinovat (hnízdit) tak, že se jich více napíše do jednoho výrazu oddělených čárkou

pokud se kdekoliv ve jménu sloupce vyskytuje mezera, je toto jméno nutno uzavřít do hranatých závorek ([])

Page 33: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Filtrování a řazení - DataView

řádky v DataView jsou typu DataRowView, DataView je kolekce řádků

řádky je možno přidávat metodou AddNewvlastnosti AllowEdit, AllowDelete a AllowNew

určují, jestli se dají provádět uvedené operace řádky je možno hledat dle hodnot v řazených

sloupcích metodami Find a FindRowsmetoda CreateChildView řádku vytvoří pohled z

jeho dětských řádků, parametr je objekt relacek řádkům je možno přistupovat, jako by to byly řádky

v tabulce (měnit je, mazat ap.)

Page 34: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Page 35: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Filtrování a řazení

například

DataView dw = new DataView(

ds.Tables[“Jmeno”],

“cislo < 3 AND jmeno LIKE ‘Karel’”,

“[datum narozeni], jmeno ASC”,

DataViewRowState.CurrentRow)

Page 36: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Filtrování a řazení

metoda Select třídy DataTable vrátí pole řádků podle RowFilter řetězce, seřazené podle Sort řetězce, v příslušné verzi

rows = table.Select(“Pocet > 5”, “Poradi ASC”);

metoda Compute umožňuje spočítat výsledek agregovaného dotazu

total = table.Count(“SUM(penize)”, “poradi < 10”);

Page 37: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XML a .NET - standardy

.NET podporuje celou řadu XML standardů- XML 1.0 včetně DTD

- XML Schemas

- XPath výrazy

- XSLT transformace

- DOM Level 1 a 2 Core

- SOAP 1.1

jejich popis lze nalézt na www.w3.org

Page 38: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

System.XML

základní jmenný prostor pro zpracování XML souborů je System.XML

obsahuje třídy pro různý přístup ke XML souborům a jejich složkám

proudové třídy: XMLReader, XMLWriter

třídy pro logickou strukturu dokumentu: XMLNode, XMLDocument, XMLDataDocument

v dalších jmenných prostorech speciální třídy (XPath, XSLT)

Page 39: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XMLReader

abstraktní třída, od níž dědí konkrétní třídy, které se liší zdrojem dat nebo další funkcionalitou (validace)-XmlNodeReader – načítá z XMLNode-XmlTextReader – načítá z proudu (souboru)-XmlValidatingReader – poskytuje validaci

XmlReader má metodu Create s 9 verzemi, která umožňuje vytvořit proud nad souborem nebo jiným proudem

Page 40: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XMLReader

metoda Create může mít parametr typu XmlReaderSettings: třída s vlastnotmi pro nastavení čtení-IgnoreComments, IgnoreWhiteSpace

-Schemas

-ValidationType, ValidationFlags

Page 41: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XmlReader – Read metody

základní metoda Read přesune kurzor na další element, pokud to nejde, vrátí false

proměnná readeru slouží pak k přístupu k uzlu pomocí různých metod- metoda HasValue a vlastnost Value

- metoda HasAttributes a metoda GetAttribute nebo indexery

- IsStartElement a ReadStartElement

Page 42: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XMLReader

další čtecí metody slouží ke specializovanému čtení-ReadElementString - načte obsah elementu

obsahujícího jednoduchou textovou hodnotu, jinak vyhodí výjimku

- silně typované metody podle vzoru ReadElementContentsAsJmenoTypu (např. ReadElementContentsAsDouble), nebo vyhodí výjimku

- metoda MoveToContent: posune kurzor na nejbližší obsahový element (přeskočí např. poznámky) a vrátí jeho typ

- další jako ReadString, ReadNextToSibling, ReadStartElement a podobně

Page 43: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Čtení atributů

metoda HasAttributes určí, má-li element atributy

vlastnost AttributeCount obsahuje počet atributů

metoda GetAttribute vrátí hodnotu atributu na základě indexu nebo jména atributu

stejnou funkci a parametry mají indexery třídy XmlReader

metody MoveToFirstAttribute a MoveToNextAttribute umožňují iterovat atributy

Page 44: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Validace

XmlReader umí provést validaci vzhledem ke XML schématu

schéma se uloží do vlastnosti XmlSchemaSet třídy XmlReaderSettings, její vlastnost XsdValidate se nastaví na true

XmlReaderSettings má událost ValidationEventHandler, která se vyvolá při chybě nebo varování při validaci (argument této události má vlastnost Severity)

Page 45: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XMLWriter

umožňuje zapisovat XML data do proudu

provádí se dopředně bez cachování

paramnetry zápisu se nastaví pomocí třídy XmlWriterSettings, která má vlastnosti jako- Indent- NewLineOnAttributes- Encoding- NewLine

konstruktor této třídy má parametr jméno souboru či třídu proudu a nepovinně nastavení

Page 46: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XmlWriter

má řadu metod typu Write<neco> jako-WriteStartDocument-WriteStartElement-Write(Element|Attribute)String-WriteEndElement-WriteEndDocument-WriteCData, WriteComment, WriteChars

- a celou řadu dalších

je třeba dávat pozor na zanoření elementů a jiné podobné věci

Page 47: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

DOM v .NETu

DOM (Document Object Model) je standard popisující přístup k XML dokumentu

přístup pomocí reprezentace dokumentu v paměti

dokument je reprezentovám jako strom uzlů, uzel je objekt třídy XmlNode

standard definuje- jak je dokument reprezetován

- jak je možno přistupovat k jeho částem

Page 48: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

<?xml version="1.0"?>

<books>

<book>

<author>Carson</author>

<price format="dollar">31.95</price>

<pubdate>05/01/2001</pubdate>

</book>

<pubinfo>

<publisher>MSPress</publisher> <state>WA</state>

</pubinfo>

</books>

Page 49: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Strom dokumentu

Page 50: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Třídy dědící od XmlNode

jednotlivé třídy představují složky dokumentu

přímo od XmlNode dědí-XmlDocument: celý dokument-XmlDocumentFragment: část stromu dokumentu-XmlAttribute: atribut-XmlNotation a XmlEntity

a XmlLinkedNode: pro přístup k následujícímu a předchozímu uzlu, od něj dědí zejm.-XmlElement: element v dokumentu

pomocná třída XmlNodeList představuje seznam uzlů

Page 51: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Třída XmlNode

reprezentuje obecný uzel dokumentu

má vlastnosti, které umožňují procházení dokumentu – odkazují na uzly ve vztahu k tomuto uzlu- ChildNodes, (First|Last)Child, HasChildNodes

- indexer

- (Previous|Next)Sibling

- ParentNode

vlastnosti pro extrakci XML dat z uzlu- OuterXml, InnerXml, InnerText

Page 52: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XmlNode

vlastnosti pro zjištění XML vlastností uzlu- Name, NodeType, NamespaceUri, Prefix, Value

metody pro přidávání,ubírání a nahrazování uzlů na jistých pozicích- AppendChild, PrependChild

- InsertAfter, InsertBefore

- RemoveChild, RemoveAll

- ReplaceChild

Page 53: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XmlNode

metody pro vybrání dětských uzlů pomocí XPath dotazu- SelectSingleNode, SelectNodes

metody pro serializaci uzlu do XmlWriteru- WriteContentTo, WriteTo

všechny tyto složky jsou k disposici (případně přepsané) v odvozených třídách

Page 54: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XMLDocument

třída reprezentující celý dokument

má metody pro načtení dokumentu z proudu do paměti-Load pro načtení z proudu (soubor, XmlReader)-LoadXml pro načtení z řetězce

dále má metody pro přístup k obsahu dokumentu-GetElementByTagName, GetElementById

Page 55: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XmlDocument

mnoho metod a vlastností pro přístup k uzlům dokumentu je zděděno od XmlNode a využívá toho, že XmlDocument je speciální případ uzlu

jiné jsou specifické- DocumentElement: kořenový element

- DocumentType: DOCTYPE deklarace

- Schemas: asociovaná schémata

Page 56: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XmlDocument

metody pro vytváření uzlů: jejich jména začínají na Create, vytvoří uzel v kontextu dokumentu, ale nepřidají ho do stromu- CreateElement, CreateAttribute, CreateComment

metody pro serializaci dokumentu- Save a metody zděděné od XmlNode

Page 57: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Speciální třídy

XmlElement obsahuje navíc složky pro práci s atributy- vlastnosti HasAttributes a Attributes

- metody RemoveAllAttributes, RemoveAttribute

- metody SetAttribute, SetAttributeNode

Page 58: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XPath

jmenný prostor System.Xml.Xpath

centrální třída je XPathNavigator

poskytuje se především rychlý read only přístup k obsahu dokumentu založený na kurzoru

je však možné dokument i modifikovat

XPath deklarativně popisuje uzly v DOMu pomocí speciálních výrazů

Page 59: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Příklady XPath výrazů

/book/chapter/titleelement title v elementu chapter v top-level elementu book

/book/*/titleelement title v jakémkoliv elementu v top-level elementu book

/book//title

element title kdekoliv v top-level elementu book

Page 60: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Příklady XPath výrazů

para/quote quote v paragraph v aktuálním elementu

./para/quotetotéž

../para/quote quote v para v rodiči aktuálního elementu

title|heading|label

kterýkoliv element z těchto tří

/book/chapter/@number

atribut number elementu chapter

Page 61: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

Příklady XPath výrazů

chapter[title]

chapter, který má dětský element title

chapter[title=“Bible]

chapter, který má title, který obsahuje text “Bible”

chapter[1]

první element chapter

para[@indent=“yes”]

para element, který má atribut s příslušnou hodnotou

Page 62: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

•/Studenti/Student - představuje všechny elementy Student, které jsou dceřinnými elementy (kořenového, dokumentového) elementu Studenti.

•/Studenti/Student/@Foto - představuje všechny atributy Foto v elementech Student, které jsou dceřinnými elementy (kořenového, dokumentového) elementu Studenti.

•//Student - představuje všechny elementy Student, které mohou být v libovolné úrovni ve stromu XML dokumentu.

•/Studenti/* - představuje všechny dceřinné elementy (kořenového,

Příklady XPath výrazů

Page 63: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XPathNavigator

zapouzdřuje vlastní vykonávání dotazu v jazyce XPath

v daném okamžiku ukazuje na některý uzel dokumentu, má metody a vlatnosti uzlu

metody pro přesun na jiný uzel (MoveTo<neco>)-MoveTo: na pozici jiného navigátoru-MoveTo(Next|First)*Attribute-MoveToFirstChild, MoveToParent, MoveToRoot-MoveTo(First|Last|Next|Previous): procházení

mezi sourozenci

Page 64: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XPathNavigator

metody pro výběr uzlu (vrací iterátor nebo XPathNavigtor ukazující na uzel)- berou jako parametr XPath výraz nebo výraz typu XPathNodeType (např. Element, Attribute ap.)

-Select: prostě vybere nějakou množinu uzlů-SelectSingleNode: vybere uzel-SelectAncestors, SelectDescendants: vybere všechny vhodné

předky či potomky-SelectChildren: vybere mezi dětmi

metoda Matches: vrátí true pokud současný uzel odpovídá danému dotazu

http://projektysipvz.gytool.cz/ProjektySIPVZ/Default.aspx?uid=725

Page 65: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XSLT

standard umožňující transformovat XML dokumenty na základě jiných XML dokumentů

děje se pomocí šablon (template), každá- odpovídá uzlu ve zdrojovém dokumentu (XPath)

- obsahuje obsah, jímž se má tento uzel nahradit

- šablony se mohou navzájem volat, mohou se aplikovat rekurzivně a podobně

Page 66: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

System.Xml.Xsl

třídy pro použití XSL jsou ve jmenném prostoru System.Xml.Xsl

transformovat je možné dokument reprezentovaný třídou, která implementuje rozhraní IXPathNavigable, tj.-XmlDocument

-XmlDataDocument

-XPathDocument

Page 67: ADO.NET, Dáta, XML,Triedy,

YOUR LOGO

XslTransform

třída implementující vlastní transformaci

metodou Load se načte XSL dokument

metodou Transform, která má v základním případě parametr typu IXPathNavigable a parametr typu zapisovací znakový proud nebo XmlWriter se provede transformace

třída XsltArgumentList umožňuje přidávat k transformaci vlastní pojmenované argumenty a funkce