Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Tutorial 12 Working with Namespaces Combining XML Vocabularies in a Compound Document.

Similar presentations


Presentation on theme: "1 Tutorial 12 Working with Namespaces Combining XML Vocabularies in a Compound Document."— Presentation transcript:

1 1 Tutorial 12 Working with Namespaces Combining XML Vocabularies in a Compound Document

2 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 2 Combining XML Vocabularies A document that combines several vocabularies is known as a compound document

3 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 3 Working with Namespaces Name collision occurs when elements from different XML vocabularies use the same name within a compound document Name collision is not a problem if you are not concerned with validation. The document content only needs to be well-formed. However, name collision will keep a document from being validated.

4 Name Collision New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 4

5 5 Working with Namespaces A namespace is a defined collection of element and attribute names. Names that belong to the same namespace must be unique. Elements can share the same name if they reside in different namespaces. Namespaces must be declared before they can be used.

6 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 6 Declaring a Namespace A namespace can be declared in the prolog or as an element attribute. The syntax for an attribute used to declare a namespace in the prolog is: xmlns:prefix=“URI” Where URI is a Uniform Resource Identifier that assigns a unique name to the namespace, and prefix is a string of letters that associates each element or attribute in the document with the declared namespace.

7 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 7 Declaring a Namespace For example, > Declares a namespace with the prefix “mod” and the URI http://jacksonelect.com/models The URI is not a Web address. A URI identifies a physical or an abstract resource.

8 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 8 Understanding URIs The purpose of a URI is simply to provide a unique string of characters that identify a resource. A URL is one type of URI. Although the URI doesn’t actually need to point to a real site on the Web, it is often helpful to place documentation at the site identified by the URI so that users can go there to learn more about the XML vocabulary being referenced

9 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 9 Applying a Namespace to an Element After you declare a namespace, you have to indicate which elements in the document belong to that namespace. content Here, prefix is the namespace prefix and element is the local part of the element name.

10 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 10 Applying a Namespace to an Element Prefixed names are called qualified names and an element name without a namespace prefix is called an unqualified name. Qualified names can be added to a document using code entered directly into the document.

11 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 11 Applying a Namespace to an Element the code: Laser4C (PR205) Entry level color laser printer color laser 320

12 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 12 Applying a Namespace to an Element …applies the namespace http://jacksonelect.com/models namespace to the model element and all of its child elements. While the “mod” prefix was only added to the model element name, the XML parser considers the other elements parts of the model namespace and they inherit the namespace.

13 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 13 Applying a Namespace to an Element They are unqualified elements, though, because they lack a namespace prefix. Declaring a namespace by adding it as an attribute of the document’s root element places all elements in the namespace. All elements thus are children of the root element.

14 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 14 Declaring a Default Namespace You can specify a default namespace by omitting the prefix in the namespace declaration. The element containing the namespace attribute and all of its child elements are assumed to be part of the default namespace.

15 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 15 Working with Attributes Attributes, like elements, can become qualified by adding the namespace prefix to the attribute name. For example,...

16 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 16 Working with Attributes No element may contain two attributes with the same name. No element may contain two qualified attribute names with the same local part, pointing to identical namespaces, even if the prefixes are different.

17 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 17 Adding a Namespace to a Style Sheet: Declaring a Namespace To declare a namespace in a style sheet, you add the following rule to the style sheet file @namespace prefix “uri”; Where prefix is the namespace prefix and uri is the URI of the namespace Example: @namespace mod “http://jacksonelect.com/models”;

18 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 18 Applying a Namespace to a Selector Once you’ve declared a namespace in a style sheet, you can associate selectors with that namespace using the syntax: prefix|selector {attribute1:value1; attribute2:value2;…} For example: mod|title {width: 150px} You also can use the wildcard symbol (*) to apply a style to any element within a namespace or to elements across different namespaces

19 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 19 Defining Namespaces with the Escape Character Not all browsers support the use of the @namespace rule A proposal implement in the Internet Explorer browser was to insert the backslash escape character before the namespace prefix in CSS style sheets: prefix\:selector {attribute1:value1; attribute2:value2;…} Browsers like Firefox, Opera, and Safari do not support this method with XML documents

20 20 Declaring and Applying a Namespace in a Style Sheet To declare a namespace in a CSS style sheet, add the rule @namespace prefix "uri"; before any style declarations, where prefix is the namespace prefix and uri is the namespace URI. If no prefix is specified, the namespace URI is the default namespace for selectors in the style sheet. To apply a namespace to a selector, use the form prefix|selector {attribute1:value1; attribute2:value2;...} where prefix is the namespace prefix and selector is a selector for an element or group of elements in the document. For Internet Explorer browsers, use the following form to apply a namespace to a selector: prefix\:selector {attribute1:value1; attribute2:value2;...}

21 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 21 Combining Standard Vocabularies Standard vocabularies may be combined within single documents

22 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 22 Converting HTML to XHTML Use your text editor to open the reptxt.htm file from the tutorial.12/tutorial folder. Enter your name and the date in the comment section at the top of the document. Save the file as report.htm. Insert the following xml declaration as the very first line in the file (above the comment section): Add the following attribute to the opening tag: xmlns="http://www.w3.org/1999/xhtml"

23 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 23 Converting HTML to XHTML

24 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 24 Adding the Elements of the Parts Vocabulary Return to the order.xml file in your text editor. Copy the contents of the document from the opening tag through the closing tag. Return to the report.htm file in your text editor and paste the copied elements directly below the h2 heading “Parts List.” Add the following attribute to the opening tag: xmlns:pa="http://jacksonelect.com/parts" Below the link element that links the report.htm file to the report.css style sheet, insert the following link element: Save the changes and open the report.htm file in your Web browser

25 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 25 Adding the Elements of the Parts Vocabulary

26 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 26 Describing the Items in the Parts List Return to the report.htm file in your text editor. Scroll down to the first title element in the parts namespace. Directly after the opening tag, insert the text Title Directly after the opening tag in the next line, insert the text Description Directly after the opening tag in the following line, insert the text Parts in Stock Repeat the previous 3 steps, as necessary

27 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 27 Describing the Items in the Parts List

28 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 28 Describing the Items in the Parts List

29 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 29 Adding Elements from the Models Vocabulary Return to the report.htm file in your text editor and add the following namespace declaration to the opening tag: xmlns:mod="http://jacksonelect.com/models" Add the following link to the document’s head: In the table cell directly after the Title table heading, insert the element Laser4C (PR205)

30 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 30 Adding Elements from the Models Vocabulary In the table cell directly after the Description table heading, insert the element Entry level color laser printer In the table cell directly after the Type table heading, insert the element color laser In the table cell directly after the “Items to be Built” table heading, insert the element 320

31 Adding Elements from the Models Vocabulary Add the following tag directly after the opening tag to include the root element of the models vocabulary: Directly before the closing tag, insert the following closing tag for the root model element: New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 31

32 New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 32 Adding Elements from the Models Vocabulary


Download ppt "1 Tutorial 12 Working with Namespaces Combining XML Vocabularies in a Compound Document."

Similar presentations


Ads by Google