Namespaces on Schemas

Discussion in 'XML' started by inerte@gmail.com, Oct 13, 2005.

  1. Guest

    Hello all!

    I need to build an XML file structure so a client can import data to
    one of our systems. Totally new to XML, I learned about Namespaces and
    DTD, and built a nice spec using them. Now I am trying to use XML
    Schemas to tell more about what kind of data are allowed on each
    element/attribute, but I can't understand how to mix Namespaces and
    Schemas.

    Can anyone give me tips, starting points, about how to specify the
    Schema for the following example XML?

    <library xmlns:book="book" xmlns:author="author">
    <book:book>
    <book:title>Example</book:title>
    <book:pages>150</book:pages>
    </book:book>
    <author:author>
    <author:title>Mr</author:title>
    <author:name>Julio Nobrega</author:name>
    </author:author>
    </library>

    I want to say that the <title> tag has different validation rules
    depending on the namespace...

    Thank you!

    --
    Julio Nobrega
    http://www.inerciasensorial.com.br
     
    , Oct 13, 2005
    #1
    1. Advertising

  2. Chris Guest

    You are mis-using namespaces. Namespaces should only really be used
    when you are addressing xml from different sources, say, from two
    different departments, and want to keep their definitions distinct. As
    someone who is producing an entire xml document, one should never use
    more than one namespace. When you are aggregating documents from
    different sources and are concerned about namespace clashed, you then
    think about using a set of namespaces.

    Here are my rules for the use of namespaces:
    Rule 1 of namespace: Don't
    Rule 2 of namespaces: Not yet
    Rule 3 of namespaces: only when you need to

    Thus your xml would look like:

    <library>
    <book>
    <title>here</title>
    <author>there</author>
    </book>
    <author>
    <title>here</title>
    <name>there</name>
    </author>
    </library>

    xml Schema is nice because it allows you to define structure that may
    be called the same, but is used in different places. e.g.:

    You wanted the library/book/title element to have an ISBN attribute,
    but the library/book/title element to have a number attribute (i.e.
    this is the author's Nth book). Any good schema reference will tell
    you how to define children element of the same name but of different
    (complex/simple) types.

    In conclusion, that the title element is a child of the book element
    implies that it is a "book title", there's no need to define different
    namespaces.

    take a look at http://builder.com.com/5100-6389-1046618.html for more
    on namespaces.
     
    Chris, Oct 13, 2005
    #2
    1. Advertising

  3. In article <>,
    <> wrote:

    ><library xmlns:book="book" xmlns:author="author">


    Namespace names are supposed to be absolute URLs.

    -- Richard
     
    Richard Tobin, Oct 13, 2005
    #3
  4. Jason Karns Guest

    Actually, namespaces are designated as URI's not URL's. Taken from the W3C's recommendation on XML namepsaces: <http://www.w3.org/TR/REC-xml-names/#ns-decl>

    [Definition:] The attribute's value, a URI reference, is the namespace name identifying the namespace. The namespace name, to serve its intended purpose, should have the characteristics of uniqueness and persistence. It is not a goal that it be directly usable for retrieval of a schema (if any exists). An example of a syntax that is designed with these goals in mind is that for Uniform Resource Names [RFC2141]. However, it should be noted that ordinary URLs can be managed in such a way as to achieve these same goals.

    In other words, the namespace URI has to be unique and that's it. URL's, by definition, are unique (all URL's are URI's but not vice versa) therefore, acceptable as namespace names. Generally, one simply uses a URL for the namespace name, however, this URL doesn't need to point to any actual document. Convention and general usefullness suggests placing the schema or DTD of said namespace at said URL is a good idea, and I concur.

    nntp://news.cis.ohio-state.edu/comp.text.xml/<dimi0t$2v4l$>

    In article <>,
    <> wrote:

    ><library xmlns:book="book" xmlns:author="author">


    Namespace names are supposed to be absolute URLs.

    -- Richard

    [comp.text.xml]
     
    Jason Karns, Oct 13, 2005
    #4
  5. In article <dimlva$suq$-state.edu>,
    Jason Karns <karns.17@n!o!s!p!a!m.osu.edu> wrote:

    >Actually, namespaces are designated as URI's not URL's.


    I know that. I was trying not to obscure the point with subtleties.

    -- Richard
     
    Richard Tobin, Oct 13, 2005
    #5
  6. The W3C XML Schema Primer [1] has a very good introduction to this
    topic which I think you will find helpful.

    ht

    [1] http://www.w3.org/TR/xmlschema-0/
    --
    Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
    Half-time member of W3C Team
    2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
    Fax: (44) 131 650-4587, e-mail:
    URL: http://www.ltg.ed.ac.uk/~ht/
    [mail really from me _always_ has this .sig -- mail without it is forged spam]
     
    Henry S. Thompson, Oct 14, 2005
    #6
  7. Guest

    Chris wrote:
    > You are mis-using namespaces. Namespaces should only really be used
    > when you are addressing xml from different sources, say, from two
    > different departments, and want to keep their definitions distinct.


    Thank you Chris. I solved the problem by not using namespaces on my
    own created file :)

    Actually, I gave up on XML Schema and started using RELAX NG, but
    that's another topic... not that I know how to use namespaces on RELAX
    NG either, but following your advice I am not even looking how to do
    it, for now :)
     
    , Oct 20, 2005
    #7
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Oleg Ogurok

    dynamic color schemas with ASP.NET

    Oleg Ogurok, Jun 8, 2004, in forum: ASP .Net
    Replies:
    1
    Views:
    465
    =?Utf-8?B?QmluIFNvbmcsIE1DUA==?=
    Jun 8, 2004
  2. Green Start Button

    Microsoft CDO Schemas...

    Green Start Button, Aug 11, 2005, in forum: ASP .Net
    Replies:
    1
    Views:
    672
    Anon-E-Moose
    Aug 11, 2005
  3. Soeren
    Replies:
    2
    Views:
    371
    Waxolunist
    Sep 22, 2004
  4. Dominique
    Replies:
    3
    Views:
    475
    Dominique
    Jun 29, 2004
  5. chuck

    Schemas & Namespaces

    chuck, Dec 30, 2007, in forum: XML
    Replies:
    1
    Views:
    413
    Martin Honnen
    Dec 30, 2007
Loading...

Share This Page