Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parCharla Gibson Modifié depuis plus de 6 années
1
{ XML Technologies } BY: Dr. M’HAMED MATAOUI
Chapter II: Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
2
Overview of Presentation
Introduction to XML Technologies Fundamental Concepts of XML The XML Specification | Elements, Attributes, Entities | Namespaces Well-formed and Valid Documents |XML Parsers XML Grammars (DTD, W3C schema) XML document transformations (CSS, XSLT) XPath, XQuery Processing XML (DOM & SAX) Overview of Presentation [ Dr. M’hamed MATAOUI ]
3
Structure of an XML document
Prolog Body (Content) : elements + attributes Comments and processing instructions <?xml … ?> … <root_element> </root_element> Prolog Ce chapitre vous apprend à structurer un document XML. La compréhension de ses composants est indispensable pour aborder les grands principes de XML. body Introduction – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
4
Structure of an XML document
Commençons par prendre un exemple simple de document XML On peut d’ores et déjà analyser qu’un document XML est un document texte lisible. Sans comprendre nécessairement l’intégralité de la syntaxe, on en déduit qu’il s’agit de la description d’un cours dont l’intervenant n’est autre que l’enseignant de ce cours (Moi même). Le plan du cours ressort également du document. Nous allons dans ce qui suit décortiquer la syntaxe Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
5
Structure of an XML document
Prolog (Optional declaration) XML header DTD Header <?xml … ?> <!DOCTYPE root_element [ … ]> DTD (Document Type definition) Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
6
Structure of an XML document
Prolog: defines the XML version and the character encoding The second (XML 1.1) was initially published on February 4, It contains features that are intended to make XML easier to use in certain cases. The main changes are to enable the use of line-ending characters used on EBCDIC platforms, and the use of scripts and characters absent from Unicode 3.2. XML 1.1 is not very widely implemented and is recommended for use only by those who need its unique features. EBCDIC: Extended Binary Coded Decimal Interchange Code Le jeu de caractères employé (encoding). Pour fonctionner, le parseur va avoir besoin de distinguer le rôle de chaque caractère, certains étant réservés à la syntaxe et d’autres représentant des données. Pour définir un jeu de caractères, XML s’appuie sur des standards ISO et Unicode (voir Notre standard Europe de l’ouest (ou iso-latin) est qualifié par ISO Lorsque l’encodage n’est pas précisé, c’est le standard UTF-8 qui est employé (avantage d’une compatibilité ANSI). Il existe beaucoup d’autres standards, citons ISO-2022-JP, Shift_JIS, EUC-JP… UTF-16 a la particularité de nécessiter l’encodage de chaque caractère avec 2 octets (un même fichier sera donc deux fois plus lourd encodé en UTF-16 qu’en UTF-8). À noter que ce prologue est encapsulé par <? et ?> et qu’il n’existe pas d’espaces (de blancs) entre le début du document et cet élément. Autre remarque qui peut surprendre : le prologue n’est pas obligatoire et, dans ce cas, le parseur utilise un comportement par défaut (version 1.0 et encoding UTF-8). Unicode UTF-8 ISO , … XML 1.0 : was initially defined in 1998 XML 1.1 : February 4, 2004 XML version Encoding Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
7
Structure of an XML document
Comment: Start by : <!-- End with : --> Il y a peu de chose à dire sur les commentaires. Ce sont les mêmes qu’en HTML (ceci est dû au lien de parenté avec SGML). Ils se positionnent n’importe où après le prologue et peuvent figurer sur plusieurs lignes. Notre exemple contient le commentaire suivant : <!-- Document creation date : 11/07/ > Point important : les caractères -- sont interdits comme commentaires pour une raison que l’on comprendra aisément (ambiguïté d’analyse pour le parseur). Les éléments gèrent la structuration des données d’un document XML, un peu à la manière des répertoires qui servent à l’organisation des fichiers. On peut les qualifier de métadonnés, au sens où ils ne font pas partie réellement des données mais servent à en désigner la nature. À la place du terme élément, on peut utiliser les termes balise, tag ou encore noeud. Pour se familiariser rapidement, reprenons l’exemple précédent. À l’intérieur, nous trouvons les éléments cours, intervenant et plan. Pour décrire ce que contiennent les éléments, on parle de modèle de contenu. On trouve : • Rien : il n’y pas de contenu, l’élément est vide. • Du texte : nous détaillerons par la suite cette notion. • Un ou plusieurs éléments : on peut les qualifier d’éléments fils, l’élément les contenant étant appelé un élément parent (à ne pas confondre avec un élément ancêtre, qui indique qu’il existe une relation de conteneur à contenu et qui est donc plus large). Content + structure: root element: course child elements: Lecturer, plan, chapter Content: text + attributes values Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
8
Structure of an XML document
Prolog (Optional declaration) XML header DTD Header <?xml … ?> <!DOCTYPE root_element [ … ]> DTD (Document Type definition) Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
9
Structure of an XML document
DTD (Document Type Definition): Internal External Syntax : <!DOCTYPE root_element SYSTEM "URI"> Example: <!DOCTYPE course SYSTEM "course.dtd"> Cette déclaration optionnelle sert à attacher une grammaire de type DTD (Document Type Definition) à votre document XML. Elle est introduite avant la première balise (racine) de votre document sous cette forme : racine est le premier élément (la première balise). L’URI peut être absolue ou relative au document. Il est généralement préférable soit d’utiliser une URI relative, pour pouvoir déplacer le document XML et sa grammaire sans difficulté, ou bien d’exploiter une URL disponible depuis n’importe quel endroit (sur Internet/Intranet, par exemple). Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
10
Structure of an XML document
Internal DTD <!DOCTYPE course [ <!ELEMENT course (Lecturer, plan)> <!ELEMENT Lecturer EMPTY> <!ELEMENT plan (chapter+)> <!ELEMENT chapter (#PCDATA)> <!ATTLIST course title CDATA #REQUIRED> <!ATTLIST Lecturer name CDATA #REQUIRED> ]> Content of an external DTD Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
11
Structure of an XML document
DTD XML File Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
12
Structure of an XML document
XML File DTD File (course.dtd) Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
13
Structure of an XML document
Processing instruction (PI): may occur anywhere in the document intended to carry instructions to the applications The most common use of a processing instruction is to request the XML document be rendered using a stylesheet using the 'xml-stylesheet' target Les instructions de traitement (processing instruction ou PI) n’ont pas de rôle lié aux données ou à la structuration de votre document. Elles servent à donner à l’application qui utilise le document XML des informations. Ces dernières sont totalement libres et dépendent avant tout du concepteur de l’application de traitement. On les positionne à n’importe quel endroit du document (après le prologue, bien entendu). Un cas typique est l’utilisation avec les navigateurs Mozilla Firefox ou Internet Explorer pour effectuer la transformation d’un document XML en document XHTML affichable avec l’instruction : L’emploi de cette instruction et le rôle du document affichage.xsl seront éclairés dans la partie consacrée aux transformations des documents XML. Attention à ne pas confondre ces instructions de traitement avec le prologue qui, s’ils sont de syntaxe similaire, n’ont pas le même rôle. Enfin, ces instructions de traitement ont également pour fonction de pallier des manques dans la spécification XML, par exemple pour effectuer un lien vers un langage de validation non standard (vérifiant donc la conformité du document par rapport à une grammaire) de type Relax NG ( <?xml-stylesheet type="text/xsl" href="file.xsl"?> NB: The XML Declaration at the beginning of an XML document is not a processing instruction Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
14
Structure of an XML document
XML element: <element> : start tag </element> : end tag Example: À préparer un exemple similaire pour expliquer cet aspect Content <element/> : closed tag (element without textual content or sub elements) Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
15
Structure of an XML document
XML Naming Rules: XML elements must follow these naming rules: Element names are case-sensitive Element names must start with a letter or underscore Element names cannot start with the letters xml (or XML, or Xml, etc) Element names can contain letters, digits, hyphens (“-”), underscores (“_”), and periods (“.”) Element names cannot contain spaces (due to attributes declaration!!!) Any name can be used, no words are reserved (except xml). À préparer un exemple similaire pour expliquer cet aspect Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
16
Structure of an XML document
Nesting Rule : True <tag1> </tag1> <tag2> </tag2> <tag1> <tag2> </tag2> </tag1> À préparer un exemple similaire pour expliquer cet aspect False <tag1>…. <tag2> …. </tag1> … </tag2> Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
17
Structure of an XML document
Tree representation of an XML Document : XML documents are formed as element trees. An XML tree starts at a root element and branches from the root to child elements. All elements can have sub elements (child elements): À préparer un exemple similaire pour expliquer cet aspect The terms parent, child, and sibling are used to describe the relationships between elements. Parent have children. Children have parents. Siblings are children on the same level. All elements can have text content and attributes. Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
18
Structure of an XML document
Tree representation of an XML Document : Course Lecturer name Mhamed MATAOUI Plan Chapter Introduction to XML Technologies Processing XML (DOM and SAX) À préparer un exemple similaire pour expliquer cet aspect … Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
19
Structure of an XML document
Tree representation of an XML Document : Course Lecturer name Mhamed MATAOUI Plan Chapter Introduction to XML Technologies Processing XML (DOM and SAX) * Root Node * Element Node * Attribute Node * Leaf Node À préparer un exemple similaire pour expliquer cet aspect … Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
20
Structure of an XML document
DOM (Document Object Model) Structure of an XML document How to Address different Parts ? This may be used in Programming! Si on essaye de tracer la representation arborescente d’un document XML en montrant la position d’un nœud donné à l’interieur de l’arbre XML, on aura donc, Sibling : frere (ou enfant de meme parent) À préparer un exemple similaire pour expliquer cet aspect NodeList childNodes = parentNode.getChildNodes(); Node node = childNodes.item(i); Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
21
Structure of an XML document
Parent Sibling Self Si on essaye de tracer la representation arborescente d’un document XML en montrant la position d’un nœud donné à l’interieur de l’arbre XML, on aura donc, Sibling : frere (ou enfant de meme parent) À préparer un exemple similaire pour expliquer cet aspect Childs Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
22
Structure of an XML document
Course Lecturer name Mhamed MATAOUI Plan Chapter Introduction to XML Technologies … Processing XML (DOM and SAX) Self Childs Sibling Parent Si on essaye de tracer la representation arborescente d’un document XML en montrant la position d’un nœud donné à l’interieur de l’arbre XML, on aura donc, Sibling : frere (ou enfant de meme parent) À préparer un exemple similaire pour expliquer cet aspect Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
23
Structure of an XML document
Example from HTML: <p align=“center”> …… </p> XML Attributes: XML elements can have attributes, just like HTML. Attributes are designed to contain data related to a specific element. Attribute values must always be quoted (delimited). Either single or double quotes can be used. Syntax: (key, value) Les balises ouvrantes peuvent contenir des attributs associés à des valeurs. L'association de la valeur à l'attribut prend la forme attribute='value' ou la forme attribute="value" où attribute et value sont respectivement le nom et la valeur de l'attribut. Chaque balise ouvrante peut contenir zéro, une ou plusieurs associations de valeurs à des attributs comme dans les exemples génériques suivants. <tag attribute="value">…</tag> or <tag attribute='value'>…</tag> More than one attribute : <tag attribute1="value1" attribute2="value2" …>…</tag> Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
24
Structure of an XML document
XML elements can have 0 to N attributes Attributes are separated by blanks Values can be on several lines Examples: <author id="0001">Mohamed Abdelhadi</author> À préparer un exemple similaire pour expliquer cet aspect <contact tel=" "/> Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
25
Structure of an XML document
Specific attributes (reserved use): xml:lang xml:space xml:base xml:id inherited by descendants XML namespace1 À préparer un exemple similaire pour expliquer cet aspect The way of use can not be changed 1 Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
26
Structure of an XML document
Specific attributes (reserved use): xml:lang Define the language of the current element and its subtree [example : xml:lang="de" ] xml:space (to demonstrate with an HTML example) default : attribute is not used preserve : applications preserve all the white space xml:base allows a redefinition of the base address used by relative addresses in child elements (with xlink notation) À préparer un exemple similaire pour expliquer cet aspect Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
27
Structure of an XML document
xml:base (example) À préparer un exemple similaire pour expliquer cet aspect Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
28
Structure of an XML document
similar to the principle of Object-oriented programming (objects and properties) Choosing between elements and attributes: Q: sub elements can contain attributes data, so when choosing elements and when choosing attributes??? R1: Elements can be repeated, attributes Not !!! <persons> <person>Mohamed Abdelhadi </person> <person>Mhamed Mataoui </person> … </persons> À préparer un exemple similaire pour expliquer cet aspect <persons person="Mohamed Abdelhadi" person="Mhamed Mataoui" …> </persons> Data in sub-Elements Data in Attributes Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
29
Structure of an XML document
Choosing between elements and attributes: <persons person1="Mohamed Abdelhadi" person2="Mhamed Mataoui" …> </persons> this design would lose all interest in structuring that XML gives!!!! Some rules for choosing: a small sized data; unlikely to evolve towards a more complex structure; not repeated. Attribute can be used, otherwise, elements must be used Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
30
Structure of an XML document
Entities: Entities are used to define shortcuts to special characters. Entities can be declared internal or external. Syntax: An Internal Entity Declaration: An External Entity Declaration: <!ENTITY entity-name "entity-value"> Il faut dire que les entités vont être détaillées dans le prochain chapitre <!ENTITY entity-name SYSTEM "URL/URI"> Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
31
Structure of an XML document
Entities: Example: <!DOCTYPE course [ <!ELEMENT course (Lecturer, plan)> <!ELEMENT Lecturer EMPTY> …. <!ENTITY Lecturer_1 "Mhamed MATAOUI"> ]> <course title="XML Technologies"> <Lecturer name="&Lecturer_1;"> </Lecturer> … </course> Il faut dire que les entités vont être détaillées dans le prochain chapitre Ampersand = esperluette = et commercial Note: An entity has three parts: an ampersand (&), an entity name, and a semicolon (;). Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
32
Structure of an XML document
Predefined Entities: <test> if ((a<b) and (b>c)) then … </test> Not Allowed!!! Text or Tag!!! Cette diapo représente les entités prédéfinies À préparer un exemple similaire pour expliquer cet aspect <test> if ((a<b) and (b>c)) then … </test> Correct Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
33
Structure of an XML document
XML Namespaces: XML Namespaces provide a method to avoid element name conflicts In XML, element names are defined by the developer. This often results in a conflict when trying to mix XML documents from different XML applications XML file 1 (Company 1) XML file 2 (Company 2) <Person> <name>Mohamed</name> <adress>bordj el Bahri, Algiers</adress> </Person> <Company> <name>Organisation Number 1</name> <adress>PO Box 17, Algiers</adress> </Company> combine The tags <name> and <adress> !!! (Company or Person) Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
34
Structure of an XML document
XML Namespaces: Solution to this kind of conflict XML file 1 XML file 2 <P:Person> <P:name>Mohamed</P:name> <P:adress>Bordj el Bahri, Algiers</P:adress> </P:Person> <C:Company> <C:name>Organisation Number 1</C:name> <C:adress>PO Box 17, Algiers</C:adress> </C:Company> combine <name> and <adress> tags have two meanings (within P: and C:) Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
35
Structure of an XML document
XML Namespaces: ? When a namespace is defined for an element, all child elements with the same prefix are associated with the same namespace. Namespaces can also be declared in the XML root element Note: The namespace URI is not used by the parser to look up information. The purpose of using an URI is to give the namespace a unique name. However, companies often use the namespace as a pointer to a web page containing namespace information. Example: <P:Person xmlns:P="URI"> <P:name>Mohamed</P:name> <P:adress>Bordj el Bahri, Algiers</P:adress> </P:Person> From : Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
36
Structure of an XML document
Well-formed and Valid Documents: XML Documents Must Have a Root Element All XML Elements Must Have a Closing Tag XML Tags are Case Sensitive XML Elements Must be Properly Nested XML Naming Rules XML Attribute Values Must be Quoted Entity References (characters with a special meaning) + a DTD Well-formed Valid Documents XML documents that conform to the syntax rules above are said to be "Well Formed" XML documents. A "Valid" XML document is a "Well Formed" XML document, which also conforms to the rules of a DTD Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
37
Structure of an XML document
XML Parsers Tree-Based Parsers Tree-based parsers holds the entire document in Memory and transforms the XML document into a Tree structure. It analyzes the whole document, and provides access to the Tree elements (DOM). This type of parser is a better option for smaller XML documents, but not for large XML document as it causes major performance issues. Event-Based Parsers Event-based parsers do not hold the entire document in Memory, instead, they read in one node at a time and allow you to interact with in real time. Once you move onto the next node, the old one is thrown away. This type of parser is well suited for large XML documents. It parses faster and consumes less memory. Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
38
Structure of an XML document
Quiz The test contains some questions, it's a nice way to see how much you know, or don't know, about XML. 1. What does XML stand for? eXtensible Markup Language Example Markup Language X-Markup Language eXtra Modern Link 2. There is a way of describing XML data, how? XML uses a DTD to describe the data XML uses a description node to describe data XML uses XSL to describe data 3. XML's goal is to replace HTML True False From : Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
39
Structure of an XML document
Quiz 4. What is the correct syntax of the declaration which defines the XML version? <?xml version="1.0"?> <xml version="1.0" /> <?xml version="1.0" /> 5. What does DTD stand for? Direct Type Definition Document Type Definition Dynamic Type Definition 6. Is this a "well formed" XML document? <?xml version="1.0"?> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> Yes or No 7. Which statement is true? All XML elements must be lower case All the statements are true All XML elements must be properly closed All XML documents must have a DTD From : Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
40
Structure of an XML document
Quiz 8. Which statement is true? XML tags are case sensitive XML elements must be properly nested All the statements are true XML documents must have a root tag 9. XML elements cannot be empty False True 10. Is this a "well formed" XML document? <?xml version="1.0"?> <note> <to age=29>Tove</to> <from>Jani</from> </note> Yes or No 11. Which is not a correct name for an XML element? <Note> <1dollar> <h1> All 3 names are incorrect From : Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
41
Structure of an XML document
End of this Chapter : Fundamental Concepts of XML Any questions? Chapter II – Fundamental Concepts of XML [ Dr. M’hamed MATAOUI ]
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.