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


All,  Thanks to everyone looking into this issue.  We do need to be 
prepared for questions as Gary suggests.  At our next EM-TC meeting, 
we will identify the best approach.  This does not appear to be a 
problem for which we need to hold up the CAP 1.2 process.  If you 
feel we should, please post a note to that affect right 
away.  Otherwise, I have asked OASIS Admin to begin the ballot for 
CS-Spec and OS-Standard.  The ballot will run for 7 days, and your 
vote can change during that period. Elysa

At 02:43 PM 2/6/2010, Gary Ham wrote:

>To all,
>
>I think that Jacob's solution would work perfectly for creating a 
>CAP message with the needed values.  Not so sure it would work in 
>middleware that needs to validate message with and without 
>signatures.  The key for DM-OPEN is that it must accept and process 
>any valid CAP 1.2 message and reject only invalid messages.  Neil 
>can experiment though. Maybe he can make a solution based on Jacob's 
>suggestion work, or maybe we can find another way.  My point is that 
>there is an issue when we use less straightforward concepts like 
><any>.  It could hurt uptake, but may still be needed.  We just need 
>to be aware and ready to respond.
>
>R/s
>Gary
>
>
>On Feb 6, 2010, at 3:27 PM, Rex Brooks wrote:
>
> > 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
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe from this mail list, you must leave the OASIS TC that
> > generates this mail.  Follow this link to all your TCs in OASIS at:
> > https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
>
>Gary Ham
>http://grandpaham.com
>703-899-6241
>
>
>
>
>---------------------------------------------------------------------
>To unsubscribe from this mail list, you must leave the OASIS TC that
>generates this mail.  Follow this link to all your TCs in OASIS at:
>https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php



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