- From: <noah_mendelsohn@us.ibm.com>
- Date: Mon, 26 Jul 2004 16:26:03 -0400
- To: Ken_Gross@Countrywide.Com
- Cc: xmlschema-dev@w3.org
Ken Gross asks:
> Is the following schema header valid? If not, what
> would make it valid?
>
> <xsd:schema targetNamespace="WebServiceModel"
> elementFormDefault="unqualified"
> attributeFormDefault="qualified"
> xmlns:AILoan="AILoan"
> xmlns:WebServiceClass="WebServiceClass"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:WebServiceModel="WebServiceModel">
>
> Thanks
>
> Ken
At least from a quick skim, it looks OK to me, though your choice of
namespace is at best atypical. According to the Namespaces in XML
Recommendation [1], a namespace name is what's called a URI Reference (see
RFC 2396, [2] being the version of RFC 2396 that was current at the time
namespaces came out.)
Informally, a URI reference is what you can type into the address bar of
your web browser. As you probably know, a fully qualified (absolute) URI
reference starts with a scheme such as http:, e.g.:
http://example.org/NoahsNamespace
As the RFC 2396 tells us, and as you may know from authoring web pages, a
simple token such as "WebServiceModel" is a relative form which is
properly interpreted in the context of some absolute URI context (called a
Base URI, see e.g. [3]). The primary reasons that namespace names are
URIs is that absolute URIs provide a means of letting users all over the
world generate names with low likelihood of collision. You lose that when
you use a simple token such as WebServiceModel. The other reason
namespace names are URIs is that Namespaces become integrated into the Web
itself; you may (but you need not) provide some useful information such
as an RDDL [4] document or a schema for retrieval at that URI. You should
in any case either own or have the permission of the owner of the DNS name
of any URIs that you use as namespace names: it would be very bad form,
for example, for you to deploy a namespace name such as the one above
without the permission of the owners of example.org (which is in fact a
registered specifically for use with examples such as this...nobody
actually actually deploys anything there except as a warning [5]).
Bottom line: you should use absolute URIs as namespace names. This, by
the way, has nothing much to do with XML schema. It's what you need to do
regardless of whether you write a schema for your namespace. Otherwise,
your schema element looks OK to me. Maybe I'm missing something.
Noah
[1] http://www.w3.org/TR/REC-xml-names/#ns-decl
[2] http://www.ietf.org/rfc/rfc2396.txt
[3] http://www.w3.org/TR/xmlbase/
[4] http://www.rddl.org/
[5] http://www.example.org/
--------------------------------------
Noah Mendelsohn
IBM Corporation
One Rogers Street
Cambridge, MA 02142
1-617-693-4036
--------------------------------------
Received on Monday, 26 July 2004 16:32:33 UTC