Altova Mailing List Archives


Re: [xml-dev] Namespaces enable recognition of the type of document,

From: Anne Thomas Manes <atmanes@-----.--->
To: Michael Kay <mike@--------.--->
Date: 3/23/2009 5:02:00 PM
Just to clarify:

A namespace is used to disambiguate document components (elements,
attributes, and types) that have the same local name.

A qualified name (QName) uses a namespace to qualify a local name. The
combination of the namespace and the local name should produce a
unique name, and you can use the QName of the root element of a
document as a kind of "signature" for the document type. For example,
a document with a root element of
     <soap-env:Envelope  xmlns="http://schemas.xmlsoap.org/soap/envelope/"
is a SOAP envelope document, and a document with a root element of
      <collection xmlns="http://purl.org/atom/app#">
is an Atom collection document.

The xsi:type attribute allows you to specify the datatype of a
particular element (e.g., primitive datatypes like xsd:string or
custom datatypes like my:customer).

None of these mechanisms enable you to specify a unique identifier for
an instance document. That you would have to specify as an element or
attribute within the document, and the best method is dependent on how
you want to model the data. You should use similar modeling techniques
that you would use when modeling a database. e.g., in some cases you
may want to add a unique ID field to the document, but more often you
want to use an element or attribute that has semantic meaning to the
data. In your claim example, you would probably have a claimID element
to identify the claim. But I also expect that you would have a field
that indicates who filed the claim.

Anne


On Mon, Mar 23, 2009 at 7:18 AM, Michael Kay <mike@s...> wrote:
> No, namespaces don't identify the type of document. All FpML messages, for
> example, use the same namespace. They also share the same root element name;
> in this vocabulary the type of document is identified by an xsi:type
> attribute. Other vocabularies have other conventions.
>
> Michael Kay
> http://www.saxonica.com/
>
>> -----Original Message-----
>> From: Costello, Roger L. [mailto:costello@m...]
>> Sent: 22 March 2009 13:50
>> To: 'xml-dev@l...'
>> Subject: [xml-dev] Namespaces enable recognition of the type
>> of document, but what about recognition of the instance?
>>
>>
>> Hi Folks,
>>
>> Consider a task that receives various types of documents. The
>> task needs to "recognize" the type of each document to enable
>> subsequent processing.
>>
>> The type of an XML document can be recognized by its
>> namespace. Thus, a task at a health-care insurance company
>> can recognize the following XML document is an insurance
>> claim by examining its namespace:
>>
>>     <Claim xmlns="http://www.health-care.org/insurance/claim/">
>>       <patient>John Smith</patient>
>>       <doctor>Dr. Sara Johnson</doctor>
>>       <procedure>Yearly physical</procedure>
>>       <charges>$69.00</charges>
>>     </Claim>
>>
>> Suppose a doctor and a patient mistakenly file the same
>> claim. The two documents contain the same information. As
>> we've seen, namespaces enable the task at the insurance
>> company to recognize that the two documents are both claims,
>> but it does not enable the task to distinguish between the
>> claim filed by the doctor and the claim filed by the patient.
>> The task is confused when it processes the second claim:
>>
>>      Is this the same claim that I processed
>>      earlier (i.e. a system error), or is it
>>      a different claim for the same procedure
>>      (user error)?"
>>
>> Thus, namespaces enable recognition of the type of document,
>> but not the instance. Recognition of both are important.
>>
>> One solution is to include an enterprise-wide identifier in
>> each claim. Here is the claim the doctor files:
>>
>>     <Claim xmlns="http://www.health-care.org/insurance/claim/">
>>       <id>A309PX</id>
>>       <patient>John Smith</patient>
>>       <doctor>Dr. Sara Johnson</doctor>
>>       <procedure>Yearly physical</procedure>
>>       <charges>$69.00</charges>
>>     </Claim>
>>
>> And here is the claim the patient files:
>>
>>     <Claim xmlns="http://www.health-care.org/insurance/claim/">
>>       <id>ZZ34RJ</id>
>>       <patient>John Smith</patient>
>>       <doctor>Dr. Sara Johnson</doctor>
>>       <procedure>Yearly physical</procedure>
>>       <charges>$69.00</charges>
>>     </Claim>
>>
>> Now the task at the insurance company can recognize that:
>>
>> - both documents are claims, and
>> - two separate claims have been submitted for the same
>> procedure (i.e. user error).
>>
>>
>> QUESTIONS
>>
>> 1. Is it best practice to include an enterprise-wide
>> identifier in each business document?
>>
>> 2. Is it best practice to use namespaces to identify the type
>> of an XML document, and an enterprise-wide identifier to
>> identify the instance?
>>
>> 3. Is there a standard for creating enterprise-wide identifiers?
>>
>> 4. Is there a standard way of expressing enterprise-wide
>> identifiers in an XML document?
>>
>>    - above I used a very simple <id>...</id> element
>>
>> 5. Is the requirement for an enterprise-wide identifier
>> something that you would put in a business requirement's
>> document, or is it something that a system implementer adds
>> on his own initiative?
>>
>>
>> /Roger
>> ______________________________________________________________
>> _________
>>
>> XML-DEV is a publicly archived, unmoderated list hosted by OASIS
>> to support XML implementation and development. To minimize
>> spam in the archives, you must subscribe before posting.
>>
>> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
>> Or unsubscribe: xml-dev-unsubscribe@l...
>> subscribe: xml-dev-subscribe@l...
>> List archive: http://lists.xml.org/archives/xml-dev/
>> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
>>
>
>
> _______________________________________________________________________
>
> XML-DEV is a publicly archived, unmoderated list hosted by OASIS
> to support XML implementation and development. To minimize
> spam in the archives, you must subscribe before posting.
>
> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
> Or unsubscribe: xml-dev-unsubscribe@l...
> subscribe: xml-dev-subscribe@l...
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
>
>

_______________________________________________________________________

XML-DEV is a publicly archived, unmoderated list hosted by OASIS
to support XML implementation and development. To minimize
spam in the archives, you must subscribe before posting.

[Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
Or unsubscribe: xml-dev-unsubscribe@l...
subscribe: xml-dev-subscribe@l...
List archive: http://lists.xml.org/archives/xml-dev/
List Guidelines: http://www.oasis-open.org/maillists/guidelines.php

Disclaimer

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.