Next in thread → Next in month →

RE: EDXL-HAVE issues found (for review / answer)

From
"Hilmore, Simothy"
Date
2009-11-10T16:33:59+00:00
ID
Thread
RE: EDXL-HAVE issues found (for review / answer)
Sukumar and others,

 

One of our engineers have some follow up
comments:

 

[Aside:  Coincidentally, one
of the purposes is to examine CAP and EDXL documents for adherence to that very
set of business rules that cannot be enforced by the schema only.  End of
Aside.]

 

Perhaps another example or
two will clarify.  All of the following snippets are from an otherwise valid
EDXL-HAVE 1.0 document.

 

To create this snippet, I
started with the example in the standard, fixed up some whitespace issues, and
changed "Available" to

"Vacant/Available":

 

     
<have:BedCapacity>

       
<have:BedType>AdultICU</have:BedType>

       
<have:Capacity>

         
<have:CapacityStatus>Vacant/Available</have:CapacityStatus>

       
</have:Capacity>

        <have:SubCategoryBedType>Surgery</have:SubCategoryBedType>

       
<have:Capacity>

         
<have:CapacityStatus>Vacant/Available</have:CapacityStatus>

         
<have:AvailableCount>40</have:AvailableCount>

       
</have:Capacity>

        <have:SubCategoryBedType>General</have:SubCategoryBedType>

       
<have:Capacity>

         
<have:CapacityStatus>Vacant/Available</have:CapacityStatus>

         
<have:AvailableCount>20</have:AvailableCount>

       
</have:Capacity>

     
</have:BedCapacity>

 

My validator (xmllint from
the libxml2 library) complains:

 

t.xml:63: element
SubCategoryBedType: Schemas validity error : Element

'{urn:oasis:names:tc:emergency:EDXL:HAVE:1.0}SubCategoryBedType':
This element is not expected. Expected is one of ( {urn:oasis:names:tc:emergency:EDXL:HAVE:1.0}Capacity,

{urn:oasis:names:tc:emergency:EDXL:HAVE:1.0}CommentText
).

 

Line 63 is the first
SubCategoryBedType element.

 

Based on Constraint 2 of the
SubCategoryBedType element, it's actually the initial Capacity element that's
throwing things off.  I interpret that constraint to say that if sub-categories
are used at all, they have to be used everywhere.  So I deleted the initial
Capacity element, and got here:

 

     
<have:BedCapacity>

       
<have:BedType>AdultICU</have:BedType>

       
<have:SubCategoryBedType>Surgery</have:SubCategoryBedType>

       
<have:Capacity>

         
<have:CapacityStatus>Vacant/Available</have:CapacityStatus>

         
<have:AvailableCount>40</have:AvailableCount>

       
</have:Capacity>

        <have:SubCategoryBedType>General</have:SubCategoryBedType>

       
<have:Capacity>

         
<have:CapacityStatus>Vacant/Available</have:CapacityStatus>

         
<have:AvailableCount>20</have:AvailableCount>

       
</have:Capacity>

      </have:BedCapacity>

 

Now I get this error:

 

t.xml:65: element
SubCategoryBedType: Schemas validity error : Element

'{urn:oasis:names:tc:emergency:EDXL:HAVE:1.0}SubCategoryBedType':
This element is not expected. Expected is one of (
{urn:oasis:names:tc:emergency:EDXL:HAVE:1.0}Capacity,

{urn:oasis:names:tc:emergency:EDXL:HAVE:1.0}CommentText
).

 

Line 65 is the *second*
SubCategoryBedType element.

 

That led me to the schema. 
As my previous example (the one with the greek element tags) demonstrates, the
schema allows for zero or more BedType elements, followed by zero or more
SubCategoryBedType elements, followed by zero or more Capacity elements.

 

I think what was intended
was zero or more "capacity groups," where a "capacity
group" contains one BedType element, zero or one SubCategoryBedType
element, and one Capacity element (and consistent use

*or* non-use of the
SubCategoryBedType element within one BedCapacity element).

 

But that all conflicts with
Constraint 5, which seems to say that you need that initial, specially crafted
Capacity element when you use the sub-categories, and agrees with the way the
example is constructed.

 

It seems that something has
to give.

 

 

Timothy
D. Gilmore | SAIC

Senior Test Engineer | ILPSG | NIMS SC |
NIMS STEP

phone: 606.274.2063 | fax: 606.274.2012

mobile: 606.219.7882 |
email:   

P Please consider the
environment before printing this email.

 

From: Dwarkanath,
Sukumar - INTL [mailto:] 

Sent: Monday, November 09, 2009
9:46 AM

To: Gilmore, Timothy;


Cc: Rex Brooks

Subject: RE: EDXL-HAVE issues
found (for review / answer)

 

Tim, 

 

On the BedType element – please
refer to page 25 - “If a <Capacity>
element is specified, it pertains to the preceding <BedType> or <SubCategoryBedType>
element.” 

 

I am not completely sure of your
questions – for each BedType, you can specify its <Capacity>
– I am not sure where the conflict is – please be more specific.
The standard suggests using the <BedCapacity> element to encapsulate
BedTypes and its subcategories. As you may be aware, a number of business rules
in a standard cannot be enforced by schema only. 

 

Thanks 

Sukumar

 

 

 

 

From: Gilmore, Timothy
[mailto:] 

Sent: Friday, November 06, 2009
8:16 AM

To: 

Cc: Dwarkanath,
 Sukumar - INTL; Rex Brooks

Subject: EDXL-HAVE issues found
(for review / answer)

 

One of our engineers has been looking
closely at the EDXL-HAVE standard and has some comments / questions:

 

(1) The XLink schema files
distributed by OGC (the Open Geospatial

Consortium) and OASIS
conflict.  According to [0], the only present workaround is to edit the
schema files locally, which makes me very uncomfortable.

 

(2) My interpretation of the
description of the intention of the <BedType> element conflicts with the
schema.  The schema is more than happy to accept this snippet in an
otherwise valid EDXL-HAVE document:

 

     
<have:BedCapacity>

     
<have:BedType>MedicalSurgical</have:BedType>

     
<have:BedType>OtherIsolation</have:BedType>

     
<have:BedType>NurseryBeds</have:BedType>

     
<have:SubCategoryBedType>foo, etc.</have:SubCategoryBedType>

     
<have:SubCategoryBedType><Ù>ãáììá</Ù></have:SubCategoryBedType>

     
<have:Capacity>

     
  <have:CapacityStatus>Vacant/Available</have:CapacityStatus>

     
  <have:AvailableCount>20</have:AvailableCount>

     
  <have:BaselineCount>30</have:BaselineCount>

     
</have:Capacity>

     
<have:Capacity>

     
  <have:CapacityStatus>NotAvailable</have:CapacityStatus>

     
  <have:AvailableCount>999</have:AvailableCount>

     
</have:Capacity>

     
</have:BedCapacity>

 

In particular, I
can't reconcile this with the normative constraints of <Capacity> and
<SubCategoryBedType> listed in section 3.2.4 of the standard (and with
the non-normative diagram in section 3.1).  To which <BedType>
element(s) and/or <SubCategoryBedType> element(s) do the <Capacity>
elements refer?

 

Note that the
example of <SubCategoryBedType> elements on page 27 of the standard is
not valid (for several reasons), and therefore of marginal use as an example.

 

Can these comments / questions get
reviewed and answered?

 

Thanks,

 

Timothy
D. Gilmore | SAIC

Senior Test Engineer | ILPSG | NIMS SC |
NIMS STEP

phone: 606.274.2063 | fax: 606.274.2012

mobile: 606.219.7882 |
email:   

P Please consider the
environment before printing this email.
Next in thread → Next in month →