OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

emergency message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [emergency] Fwd: CAPv1.2 Web-Service Implementation Challenges


Right now I don't understand the problem, so attempting to suggest a 
solution or even an approach to a solution wouldn't make sense for me. 
If smeone could please direct me to the documentation for the Standard 
FEMA SOA platform and the specific part of Oracle 10g that chokes on 
xsd:any, I'll look at it.

This is going to require me to rewind my own head since the last version 
of the Oracle DBMS I worked with is 11i and that was at least two years 
ago.

However, I advise caution with regard to suggesting a solution. The 
reason for caution is that xsd:any is the element we use when we want to 
allow implementers to "extend" a given schema, How that is done and what 
tools, databases or database management systems are used to do that is 
not something we can control or even affect much. I would say offhand 
that this is very much an implementation-specific problem for which, no 
matter how much we would prefer to be able to provide a solution from 
our end, we are necessarily forced to say "we didn't make this problem 
and we can't take responsibility for fixing it."

Having said that, I will still try if I can find the documentation for 
the Standard FEMA SOA platform and a more complete description of the 
specific problem.

Cheers,
Rex


Jacob Westfall wrote:
>> Here is the basic issue we have been having in building a CAP 1.2 implementation.  Your help is appreciated.  Neil recommends a change to CAP 1.2.  I am not sure we want to do that, but we sure do need to find a way to use the "Standard FEMA SOA platform" without having to hand code everything behind the WSDL.  So, suggestions are appreciated.
>>
>>     
>
> Neil's suggestion would entail creating Signature and EncryptedData elements as containers for the DSig and XMLEnc elements.  This of course would change the schema and the specification language, a substantive change, and require a 15 day public review.  I don't think this change, creating new elements, fits in the original scope for 1.2, but I had thought of creating a Security container for CAP 2.0 that could be used to hold not only the DSig and Encryption elements but other security related information for the CAP message.
>
> I have included an alternate schema that does not require these containers but also takes a different approach than the current use of <any>.  It uses imports and so therefore wasn't the first choice for 1.2 as its less portable.  If this implementation problem is isolated then FEMA could use this modified schema as a workaround.  The current schema using <any> does validate and works with several different parsers and libs, we'd need more feedback from a multitude of implementors before we could determine if there is indeed a problem that needs correction or is just specific to this implementation only.
>
> Try this out and let me know,
>
>
> <?xml version = "1.0" encoding = "UTF-8"?>
> <schema xmlns = "http://www.w3.org/2001/XMLSchema";
>    targetNamespace = "urn:oasis:names:tc:emergency:cap:1.2"
>    xmlns:cap = "urn:oasis:names:tc:emergency:cap:1.2"
>    xmlns:xs = "http://www.w3.org/2001/XMLSchema";
>    xmlns:ds = "http://www.w3.org/2000/09/xmldsig#";
>    xmlns:xenc = "http://www.w3.org/2001/04/xmlenc#";
>    elementFormDefault = "qualified"
>    attributeFormDefault = "unqualified">
>   <import namespace = "http://www.w3.org/2000/09/xmldsig#"; schemaLocation = "http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/>
>   <import namespace = "http://www.w3.org/2001/04/xmlenc#"; schemaLocation = "http://www.w3.org/TR/xmlenc-core/xenc-schema.xsd"/>
>   <element name = "alert">
>     <annotation>
>       <documentation>CAP Alert Message (version 1.2)</documentation>
>     </annotation>
>     <complexType>
>       <sequence>
>         <element name = "identifier" type = "string"/>
>         <element name = "sender" type = "string"/>
>         <element name = "sent">
> 	  <simpleType>
>             <restriction base = "dateTime">
>              <pattern value = "\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d[-,+]\d\d:\d\d"/>
> 	    </restriction>
>           </simpleType>
> 	 </element>
>         <element name = "status">
>           <simpleType>
>             <restriction base = "string">
>               <enumeration value = "Actual"/>
>               <enumeration value = "Exercise"/>
>               <enumeration value = "System"/>
>               <enumeration value = "Test"/>
>               <enumeration value = "Draft"/>
>             </restriction>
>           </simpleType>
>         </element>
>         <element name = "msgType">
>           <simpleType>
>             <restriction base = "string">
>               <enumeration value = "Alert"/>
>               <enumeration value = "Update"/>
>               <enumeration value = "Cancel"/>
>               <enumeration value = "Ack"/>
>               <enumeration value = "Error"/>
>             </restriction>
>           </simpleType>
>         </element>
>         <element name = "source" type = "string" minOccurs = "0"/>
>         <element name = "scope">
>           <simpleType>
>             <restriction base = "string">
>               <enumeration value = "Public"/>
>               <enumeration value = "Restricted"/>
>               <enumeration value = "Private"/>
>             </restriction>
>           </simpleType>
>         </element>
>         <element name = "restriction" type = "string" minOccurs = "0"/>
>         <element name = "addresses" type = "string" minOccurs = "0"/>
>         <element name = "code" type = "string" minOccurs = "0" maxOccurs = "unbounded"/>
>         <element name = "note" type = "string" minOccurs = "0"/>
>         <element name = "references" type = "string" minOccurs = "0"/>
>         <element name = "incidents" type = "string" minOccurs = "0"/>
>         <element name = "info" minOccurs = "0" maxOccurs = "unbounded">
>           <complexType>
>             <sequence>
>               <element name = "language" type = "language" default = "en-US" minOccurs = "0"/>
>               <element name = "category" maxOccurs = "unbounded">
>                 <simpleType>
>                   <restriction base = "string">
>                     <enumeration value = "Geo"/>
>                     <enumeration value = "Met"/>
>                     <enumeration value = "Safety"/>
>                     <enumeration value = "Security"/>
>                     <enumeration value = "Rescue"/>
>                     <enumeration value = "Fire"/>
>                     <enumeration value = "Health"/>
>                     <enumeration value = "Env"/>
>                     <enumeration value = "Transport"/>
>                     <enumeration value = "Infra"/>
>                     <enumeration value = "CBRNE"/>
>                     <enumeration value = "Other"/>
>                   </restriction>
>                 </simpleType>
>               </element>
>               <element name = "event" type = "string"/>
>               <element name = "responseType" minOccurs = "0" maxOccurs = "unbounded">
>                 <simpleType>
>                   <restriction base = "string">
>                     <enumeration value = "Shelter"/>
>                     <enumeration value = "Evacuate"/>
>                     <enumeration value = "Prepare"/>
>                     <enumeration value = "Execute"/>
> 		     <enumeration value = "Avoid"/>
>                     <enumeration value = "Monitor"/>
> 		     <enumeration value = "Assess"/>
> 		     <enumeration value = "AllClear"/>
>                     <enumeration value = "None"/>
>                   </restriction>
>                 </simpleType>
>               </element>
>               <element name = "urgency">
>                 <simpleType>
>                   <restriction base = "string">
>                     <enumeration value = "Immediate"/>
>                     <enumeration value = "Expected"/>
>                     <enumeration value = "Future"/>
>                     <enumeration value = "Past"/>
>                     <enumeration value = "Unknown"/>
>                   </restriction>
>                 </simpleType>
>               </element>
>               <element name = "severity">
>                 <simpleType>
>                   <restriction base = "string">
>                     <enumeration value = "Extreme"/>
>                     <enumeration value = "Severe"/>
>                     <enumeration value = "Moderate"/>
>                     <enumeration value = "Minor"/>
>                     <enumeration value = "Unknown"/>
>                   </restriction>
>                 </simpleType>
>               </element>
>               <element name = "certainty">
>                 <simpleType>
>                   <restriction base = "string">
>                     <enumeration value = "Observed"/>
>                     <enumeration value = "Likely"/>
>                     <enumeration value = "Possible"/>
>                     <enumeration value = "Unlikely"/>
>                     <enumeration value = "Unknown"/>
>                   </restriction>
>                 </simpleType>
>               </element>
>               <element name = "audience" type = "string" minOccurs = "0"/>
>               <element name = "eventCode" minOccurs = "0" maxOccurs = "unbounded">
>                 <complexType>
>                   <sequence>
>                     <element ref = "cap:valueName"/>
>                     <element ref = "cap:value"/>
>                   </sequence>
>                 </complexType>
>               </element>
>               <element name = "effective" minOccurs = "0">
> 		<simpleType>
>                  <restriction base = "dateTime">
>                    <pattern value = "\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d[-,+]\d\d:\d\d"/>
> 		  </restriction>
>           	</simpleType>
> 	       </element>
>               <element name = "onset"  minOccurs = "0">
> 		<simpleType>
>                  <restriction base = "dateTime">
>                    <pattern value = "\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d[-,+]\d\d:\d\d"/>
> 		  </restriction>
>           	</simpleType>
> 	       </element>
>               <element name = "expires"  minOccurs = "0">
> 		<simpleType>
>                  <restriction base = "dateTime">
>                    <pattern value = "\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d[-,+]\d\d:\d\d"/>
> 		  </restriction>
>           	</simpleType>
> 	       </element>
>               <element name = "senderName" type = "string" minOccurs = "0"/>
>               <element name = "headline" type = "string" minOccurs = "0"/>
>               <element name = "description" type = "string" minOccurs = "0"/>
>               <element name = "instruction" type = "string" minOccurs = "0"/>
>               <element name = "web" type = "anyURI" minOccurs = "0"/>
>               <element name = "contact" type = "string" minOccurs = "0"/>
>               <element name = "parameter" minOccurs = "0" maxOccurs = "unbounded">
>                 <complexType>
>                   <sequence>
>                     <element ref = "cap:valueName"/>
>                     <element ref = "cap:value"/>
>                   </sequence>
>                 </complexType>
>               </element>
>               <element name = "resource" minOccurs = "0" maxOccurs = "unbounded">
>                 <complexType>
>                   <sequence>
>                     <element name = "resourceDesc" type = "string"/>
>                     <element name = "mimeType" type = "string" minOccurs = "0"/>
>                     <element name = "size" type = "integer" minOccurs = "0"/>
>                     <element name = "uri" type = "anyURI" minOccurs = "0"/>
>                     <element name = "derefUri" type = "string" minOccurs = "0"/>
>                     <element name = "digest" type = "string" minOccurs = "0"/>
>                   </sequence>
>                 </complexType>
>               </element>
>               <element name = "area" minOccurs = "0" maxOccurs = "unbounded">
>                 <complexType>
>                   <sequence>
>                     <element name = "areaDesc" type = "string"/>
>                     <element name = "polygon" type = "string" minOccurs = "0" maxOccurs = "unbounded"/>
>                     <element name = "circle" type = "string" minOccurs = "0" maxOccurs = "unbounded"/>
>                     <element name = "geocode" minOccurs = "0" maxOccurs = "unbounded">
>                       <complexType>
>                         <sequence>
>                           <element ref = "cap:valueName"/>
>                           <element ref = "cap:value"/>
>                         </sequence>
>                       </complexType>
>                     </element>
>                     <element name = "altitude" type = "string" minOccurs = "0"/>
>                     <element name = "ceiling" type = "string" minOccurs = "0"/>
>                   </sequence>
>                 </complexType>
>               </element>
>             </sequence>
>           </complexType>
>         </element>
>
>         <element ref = "ds:Signature" minOccurs = "0" maxOccurs = "unbounded" />
>         <element ref = "xenc:EncryptedData" minOccurs = "0" maxOccurs = "1" />
>
>       </sequence>
>     </complexType>
>   </element>
>   <element name = "valueName" type = "string"/>
>   <element name = "value" type = "string"/>
> </schema>
>
>
>   

-- 
Rex Brooks
President, CEO
Starbourne Communications Design
GeoAddress: 1361-A Addison
Berkeley, CA 94702
Tel: 510-898-0670



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]