[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] Namespaces enable recognition of the type of document, but what about recognition of the instance?
- From: Anne Thomas Manes <atmanes@gmail.com>
- To: Michael Kay <mike@saxonica.com>
- Date: Mon, 23 Mar 2009 13:01:50 -0400
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@saxonica.com> 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@mitre.org]
>> Sent: 22 March 2009 13:50
>> To: 'xml-dev@lists.xml.org'
>> 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@lists.xml.org
>> subscribe: xml-dev-subscribe@lists.xml.org
>> 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@lists.xml.org
> subscribe: xml-dev-subscribe@lists.xml.org
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
>
>
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]