[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]