Web-fejlesztés NGM_IN002_1 XML - Bevezetés
Az XML extensible Markup Language egyszer!bb SGML (részhalmaz), korlátozásokkal meta markup language hordozható adatformátum (prezentációs megoldás) kommunikációs protokoll Kiegészít" technikák XML Schema XSL, XSLT, XSLFO XPath XQuery XML mag merev XML szintaxis rögzített karakterkészlet limitált tag delimiterek <, >, </, /> nem definiált konkrét alkalmazás szintaxis kényszerek alkalmazása DTD XML schema névterek használata különböz" alkalmazások elemeinek megkülönböztetése
XML dokumentumok XML dokumentumok összetev"i deklarációk elemek, tagek megjegyzések karakter referenciák feldolgozási instrukciók jól formált dokumentum érvényes dokumentum Egyéb dokumentum elemek PI (processing instructions) alkalmazásnak, parszernek <?cél utasítások?> DTD contraints (szintaxis validálás) hordozhatóság, értelmezhet"ség namespace prefix prefix:tagname URI
Jól-formáltság A start- és end-tagek között lév" elemek megfelel"en vannak egymásba ágyazva nem átlapoló befoglalások Gyökérelem (dokumentum-elem) csak 1 összes elemet be kell foglalni XML dokumentumok felépítése Fejléc Feldolgozási utasítások (PI-k) Dokumentumtípus deklarációk Tartalom gyökérelem XML adatelemek elem attribútumok XML konstansok nem parszolt adatok Példa
XML DTD-k Document Type Definition Szabálykészlet leírása jelöl" elem-készlet XML dokumentumban vagy hivatkozva Konkrét alkalmazás szintaxis megadása Felhasználása az értelmezésnél Példa XML Schema DTD hiányosságok kiküszöbölése Korlátozások megadása XML formában Valid és schema-valid XML dokumentumok XML Schema DTD Példa
Névterek Név konfliktusok feloldása Névtér megadás URI (azonosítás, névtér információ) Használat prefixek Default namespace Érvényesség (XML validálás) Jól-formált + DTD megfelel"ség Schéma validitás Névtér megfelel"ség
XML feldolgozás Parszolás Esemény alapú kisebb er"forrásigény DOM alapú transzformálás jól formázottság ellen"rzése validálás adatszerkezetekké alakítás parszer fontos jellemz"i sebesség megfelelés az XML specifikációnak XML alkalmazások Megjelenítés, prezentáció XHTML, WML, SVG Kommunikáció/adatcsere XSL, XSLT XML-RPC SOAP Konfiguráció webservices Szemantikus web, szolgáltatás-leírás WSDL, UDDI, RDF
XML eszközök Parszer API-k SAX, JAXP pl.: Apache Xerces Editorok XML dokumentumok szerkesztése szövegként (szintaxis kiemelés) fa nézetben (táblázatok) XML dok. validálás (DTD, XSD) pl.: EditiX, Exchanger, stb. XSL/XSLT processzorok Apache Xalan XML alkalmazások tervezése MDA megközelítés => domén modellek, ontológiák harmonizálás, szabványos leírás pl.: OMG Meta Object Facility metamodellek leírása UML (domén modell leírása) XML Metadata Interchange (XMI) Példa
Az XML webes felhasználása Szerver oldal webservices konfigurálás alkalmazás logika leírása adatformátum (SOAP) Kliens oldal XHTML, WML AJAX (XMLHttp) Mindkét oldalon XSLT Publikációs motiváció Kihívások Növekv" tartalom-mennyiség Növekv" elvárások megjelenés platformok, médiumok információ visszakeresés szemantikus web XML technológiai el"nyök szabványos feldolgozó képesség biztosított rendezett, hierarchikus, szöveges
XML és CMS XML felhasználása kommunikáció adatcsere formátum, pl.: szindikálás publishing XSLT tárolás struktúrált szöveges adatbázisok authoring XML tartalom el"állítás, deszkriptív alkalmazás-logika megadás Példa XML dokumentum <?xml version="1.0" encoding="utf-8"?> <Contacts>! <Person>!! <Firstname>John</Firstname>!! <Lastname>Smith</Lastname>!! <Birthday>19650302</Birthday>!! <Company>IBM</Company>!! <Position>CEO</Position>!! <Email>jsmith@ibm.com</Email>!! <Email>jsmith@yahoo.com</Email>!! <Address type="home">!!! <Company/>!!! <Street>23 Main St</Street>!!! <City>Dublin</City>!!! <Postcode>4</Postcode>!!! <Country/>!! </Address>!! <Address type="work">!!! <Street>1234 High St</Street>!!! <City>Boston</City>!!! <ZIP>1234</ZIP>!!! <Country>Ireland</Country>!! </Address>! </Person>! <Person>!! <Firstname>Tom</Firstname>!! <Lastname>Dunne</Lastname>!! <Company>Today FM</Company>! <Position/>!! <Email>tom.dunne@todayfm.com</Email>! </Person> </Contacts> Vissza
DTD példa <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE cxml SYSTEM "dtd/cxml.dtd"> <cxml payloadid="3223232@ariba.acme.com" timestamp="1999-03-12t18:39:09-08:00" xml:lang="en-us"> </cxml> <OrderRequest> <OrderRequestHeader orderid="do1234" orderdate="1999-03-12" type="new"> <Total> <Money currency="usd">2.68</money> </Total> <ShipTo> <Address> <Name xml:lang="en">acme</name> <PostalAddress name="default"> <DeliverTo>Joe Smith</DeliverTo> <DeliverTo>Mailstop M-543</DeliverTo> <Street>123 Anystreet</Street> <City>Sunnyvale</City> <State>CA</State> <PostalCode>90489</PostalCode> <Country isocountrycode="us">united States</Country> </PostalAddress> </Address> </ShipTo> <!ELEMENT Address (Name, PostalAddress?, Email?, Phone?, Fax?, URL?)> <!ATTLIST Address isocountrycode %isocountrycode; #IMPLIED addressid %string; #IMPLIED > <!ELEMENT PostalAddress (DeliverTo*, Street+, City, State?, PostalCode?, Country)> <!ATTLIST PostalAddress name %string; #IMPLIED > <!ELEMENT PostalCode (#PCDATA)> <!-- string --> <!-- Country is the name of the country in an Address' location. The content of this element is a string which may (for example) be printed directly to a shipping label. The content is the human-readable equivalent of the isocountrycode used by applications. isocountrycode The ISO 3166 2-letter country code for this country. --> <!ELEMENT Country (#PCDATA)> <!-- string --> <!ATTLIST Country isocountrycode %isocountrycode; #REQUIRED > Vissza XSD példa <!ELEMENT Address (Company?,Street,City,(Postcode ZIP),Country)> <!ATTLIST Address type NMTOKEN #IMPLIED> <xsd:element name="address"> <xsd:complextype> <xsd:sequence> <xsd:element name="company" type="xsd:string" minoccurs="0"/> <xsd:element name="street" type="xsd:string"/> <xsd:element name="city" type="xsd:string"/> <xsd:choice> <xsd:element name="postcode" type="xsd:string"/> <xsd:element name="zip" type="xsd:string"/> </xsd:choice> <xsd:element name="country" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="type" type="xsd:string" use="required"/> </xsd:complextype> </xsd:element> Vissza
!"#$!%&'()*+,-./0**'12,%345%62(7'8)70%9/+:*.:.1;!%*.:.*1<%=>?%:@A,+(.*.7%0%!"#$%&%'&!"#(%9>@27808/'>@2,;?%#B%,+8%6<%(+1B-<*%'**C%0B%&)*'%+1%0%!"#$%&%'&!"%9>@27808/'>@;%.*.7.,-<*?%!B% %&)*'!%.*.7.8%0B%!D#E%,F8A*8<%G(2:(07%H2BB0%*+8(.I% J:@%0B%0KLBL%'*80*%0)82708F,)10>%9,M*A>%G(2:(0770*;%.*<'**J8288%'**27'>@-0>%>.7%1B.(.G.*?%!% NOPOQRS01 % >@27808/'>@ %.1.8+> % *.:,./.1.-- %,.88< %!"#$%&%'&!"%.*.7 %,.**I % H2:@ % 1B.(.G.*&.> % 0% K2,)7.>8)7-0>I%.:@%NOPOQ!R%90KLBLF;%+1%.:@%/0:@%8A--%NOPOQ4R%97)>,0/'**0*LF;%8JG)1=?%!B% 345S-.>%0B%.*1<%H.*@.>%0B%0KLBLF%9NOPOQ!R;%>@27808/'>@>0,%,.**%'**>F0?!7F>8 % 0B8 % 0 % T2:0*2770:@0('B08-0> % 9U?V % 6.&.B.8; % 7'( %,F/+8.*,+>8 %.7*J8.88M,I % 0 % OPOQ4 % &.*W% >@27808/'>@8%0--0>%0B%.1.8-.>%>.7%1BM,1+:.1%,F8A*8.>FI%H0%0B%0KLBL%2*@0>%A>.**.><(B+18%0K%-.I% 07.*@-.>%,FB'(L*0:%0%OPOQ!%>@27808/'>@%OPOQSOU%*0G&'>0,%0*1L%-*2,,&'-0>%*+/<%0K082,08%9N!B% 0KLBL8%8.(H.*<%S%70:'>1B.7+*@H.B%>.7%,A8H.8<%S%.:@+-%,A8.*.B.881+:R;%,J/'>&0%7LK21J80>F?% Helytelen használat APEH - ABEV XML interfész <mezo eazon="0a0001c026a">123456789</mezo> <mezo eazon="0a0001c027a">segít! János</mezo> <mezo eazon="0a0001c028a">20060101</mezo> <mezo eazon="0a0001c029a">20060131</mezo> <mezo eazon="0a0001c031a">1</mezo> <mezo eazon="0a0001c033a">3</mezo> <mezo eazon="0b0001b001a">próba Cég</mezo> <mezo eazon="0b0001b002a">11111111122</mezo> <mezo eazon="0b0001c0001ca">658673</mezo> <mezo eazon="0b0001c0002ca">6259090</mezo>!"#$%&'#()*+,',-$.) <xs:element name="mezo">! %!"#$%&%'&!"%,+8%6<%.*.7.%0 <xs:complextype> %!"#$%&%'+!",!-#.$&/,#% 9>@27808/'>@F>62(7'XFL;%+1%0 %$*0#(1 <xs:simplecontent> 97.B<,;? <xs:extension base="xs:string"> <xs:attribute name="eazon" type="xs:string" use="required"> <xs:annotation> "#"#$ %&'()*)+,-&.-/'0(,1.2 <xs:documentation>mez!azonosító, értékei az ABEV-b!l nyomtathatóak.</xs:documentation>! % P? % '-('> % *'8H08L %!"#$%&%'+!",!-#.$&/,#% </xs:annotation> 9>@27808/'>@F>62(7'XFL; % 80(80*70BB0 % 0% >@27808/'>@(0 % /2>08,2BL % </xs:attribute> 6<-- % 0K082,08I % =:@ % 7F>8 % 0 % >@27808/'>@ % 0B2>21J8L&'8% 9!"#$%&%'&!"&0#!#2,%#; % </xs:extension> +1 %/.(BFL&'8%9!"#$%&%'&!"'*.0,#;I % 0B%0KLBL % 9&3#0#;I %.1.8*.:.1.> %0% 7)>,0/'**0*L%9$4!(&'&55&5#;%0K080F8I%0B%FK<1B0,28%07.*@(.%0%>@27808/'>@%/2>08,2BF,%9,3#20&(;% </xs:simplecontent> </xs:complextype> +1%0B%.1.8*.:.1%K08%'**27'>@%9!D#E%10&'8%0K08'**27'>@;%>./+8%93&%-,5*;? </xs:element>!%nopoqrs01%>@27808/'>@%.1.8+-.>%0%0%!"#$%&%'&!"&0#!#2,%#%nopoq!3%/0:@%nopoq4r%*.h.8?%!%!"#$%&%'&!"'*.0,#% 2GXF2>'*F1I%0,'(X10,%0 %3&%-,5*I%.B.,,.*%0B%!D#E%G(2:(07%.:+1BJ8F%,F%0% K2,)7.>8)728?!B %,3#20&(% 0 % NOPOQ!R % +1 % NOPOQ4R % >@27808/'>@2, %.1.8+> % F1 %,A8.*.B<.> %,F8A*8.>K<? %!% $4!(&'&55&5#%X10,%NOPOQ4R%.1.8+>I%0B%&3#0#%7F>K%0%,+8%>@27808/'>@%8JG)1%.1.8+>%,A8.*.B<%.*.7.% 0%K2,)7.>8)7>0,? Vissza VOOP?UO?UV Apache Lenya Y Apache Cocoon XML publishing framework transformation pipelines WYSIWYG Editorok Workflow támogatás Szájt-menedzsment Vissza