1 / 20

WORKING WITH NAMESPACES

TUTORIAL 2. WORKING WITH NAMESPACES. COMBINING XML VOCABULARIES. A document that combines several vocabularies is known as a compound document. WORKING WITH NAMESPACES. Name collision occurs when elements from two or more documents share the same name.

dinesh
Download Presentation

WORKING WITH NAMESPACES

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TUTORIAL 2 WORKING WITH NAMESPACES New Perspectives on XML, 2nd Edition Tutorial 2

  2. COMBINING XML VOCABULARIES • A document that combines several vocabularies is known as a compound document New Perspectives on XML, 2nd Edition Tutorial 2

  3. WORKING WITH NAMESPACES • Name collision occurs when elements from two or more documents share the same name. • 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. New Perspectives on XML, 2nd Edition Tutorial 2

  4. NAME COLLISION This figure shows name collision Model vocabulary Parts vocabulary New Perspectives on XML, 2nd Edition Tutorial 2

  5. DECLARING A NAMESPACE • 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. New Perspectives on XML, 2nd Edition Tutorial 2

  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 prefix is a string of letters “Short hand name” Full, unique name New Perspectives on XML, 2nd Edition Tutorial 2

  7. DECLARING A NAMESPACE • For example, xmlns:mod=“http://jacksonelect.com/models” declares a namespace with the prefix “mod” and the URI http://jacksonelect.com/models • The URI is not a Web address. A URI (Uniform Resource Identifier) identifies a physical or an abstract resource. URI (Uniform Resource Identifier) URL (Uniform Resource Locator) Physical Resource: file, a Web page, or an e-mail address URN (Uniform Resource Name) Persistent name for a resource New Perspectives on XML, 2nd Edition Tutorial 2

  8. URIs, URLs, AND URNs • URN (Universal Resource Name) is a persistent resource identifier, meaning the user need only know the name of a resource. • URNs take the form: urn:NID:NSS NID = namespace identifier NSS = text string specific to that the namespace • Example • urn: isbn: 0-619-01969-7 New Perspectives on XML, 2nd Edition Tutorial 2

  9. APPLYING A NAMESPACE TO AN ELEMENT • Use prefix instead of the URI to qualify element names • General form: <prefix:element> content </prefix:element> • For example xmlns:mod=http://jacsonelect.com/models <mod:title>Laser4C (PR205) </mod:title> New Perspectives on XML, 2nd Edition Tutorial 2

  10. APPLYING A NAMESPACE TO AN ELEMENT • Prefixed names are called qualified names • Example: <mod:title>Laser4C (PR205) </mod:title> • A name without a namespace prefix is called an unqualified name. • Example: <title>Laser4C (PR205) </title> New Perspectives on XML, 2nd Edition Tutorial 2

  11. DECLARING A NAMESPACE AS AN ELEMENT ATTRIBUTE • For example, the code: <mod:model xmlns:mod=http://jacksonelect.com/modes > <mod:title>Laser4C (PR205)</mod:title> <mod:description>Entry level color laser printer</mod:description> <mod:type>color laser</mod:type> <mod:ordered>320</mod:ordered> <mod:parts list="chx201,fa100-5,eng005-2,cbx-450V4,tn01-53" /> </mod:model> • …applies the namespace http://jacksonelect.com/models to the model element and all of its child elements. New Perspectives on XML, 2nd Edition Tutorial 2

  12. DECLARING A DEFAULT NAMESPACE • You can specify a default namespace by omitting the prefix in the namespace declaration. • Example: <model xmlns=http://jacksonelect.com/modes > <title>Laser4C (PR205)</title> <description>Entry level color laser printer</description> <type>color laser<type> <ordered>320</ordered> <parts list="chx201,fa100-5,eng005-2,cbx-450V4,tn01-53" /> </model> • All elements including the model element, are considered to be part of the name space :mod removed New Perspectives on XML, 2nd Edition Tutorial 2

  13. USING NAMESPACES WITH ATTRIBUTES • Attributes, like elements, can become qualified by adding the namespace prefix to the attribute name. The syntax is: <element prefix:attribute = “value”> … </element> • For example: <mod:model xmlns:mod=http://jacksonelect.com/models mod:id=“pr205”> …. </mod:model> • Attributes inherit their namespace from their parent element: • For example: <mod:modelxmlns:mod=http://jacksonelect.com/models id=“pr205”> ….. </mod:model> New Perspectives on XML, 2nd Edition Tutorial 2

  14. 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 url(uri); Where prefix is the namespace previx and uri is the URI of the namespace • Example: @namespace mod url(http://jacksonelect.com/models) New Perspectives on XML, 2nd Edition Tutorial 2

  15. 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 New Perspectives on XML, 2nd Edition Tutorial 2

  16. APPLYING A NAMESPACE TO A SELECTOR • You also can use the wildcard symbol (*) to apply a style to any element within a namespace or to elements across different namespaces mod | title {width: 15px} applies width style to all title elements in the models namespace mod | * {font-size: 12 pt}applies the font-sie style to any element within the models namespace title {witdth: 15p} applies a width of 150 pixels to any element named title • Not supported by Firefox, Opera, and Netscape New Perspectives on XML, 2nd Edition Tutorial 2

  17. COMBINING STANDARD VOCABULARIES • Standard vocabularies may be combined within single documents New Perspectives on XML, 2nd Edition Tutorial 2

  18. A compound XHTML and MathML document • See page XML 68 New Perspectives on XML, 2nd Edition Tutorial 2

  19. XHTML New Perspectives on XML, 2nd Edition Tutorial 2

  20. Summary • Combining vocabularies in a single document can result in name collisions • Use namespaces to resolve collisions • Namespaces use URI to provide unique identification for each vocabulary in a document • CSS style sheets can be modified to accommodate namespaces • You can create an XHTML document that combines features from XHTML and other XML vocabularies New Perspectives on XML, 2nd Edition Tutorial 2

More Related