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

 


Help: OASIS Mailing Lists Help | MarkMail Help

provision message

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


Subject: Re: [provision] AddRequestType#container won't work.


We *could* define a single identifier type for both target and pso--I'd 
call that Option 3. 
However, I think that a single identifier type would be more than a 
little confusing.  A target is *not* a pso, and I think it's important 
to be clear that the core operations (e.g., modify lookup delete) apply 
to psos and not to targets.  Having a separate PSOIdentifierType helps 
to make that clear.

Even if we did define a single identifier type for both target and pso, 
I think it would need to have an optional "targetId" (not 
"containerId").  We need to know (e.g., in order to validate the object 
against the schema) the *target* that ultimately contains the pso, not 
the immediate parent of the pso.  It would be undesirable to have to 
recurse (or otherwise lookup) the target.

I still favor Option 2,  which is an explicit CHOICE of IdentifierType 
or PSOIdentifierType.  I don't think that extensibility is particularly 
important for target and pso identifiers (and option 3 is no more 
extensible than option 2).

Is there something else that makes Option 3 better?

Jeff Bohren wrote:

>There best solution to this is to just have one identifier type for both
>PSOs and targets. The identifier type would have an optional container
>ID. If the identifier is used to identify a PSO, the container ID points
>to the target, or the containing PSO. If the identifier is used to
>identify a target, the container ID is not present.
>
>This could be defined as:
>
>	<complexType name="IdentifierType">
>		<complexContent>
>			<extension base="spml:ExtensibleType">	
>				<sequence>
>					 <element name="containerId"
>type="spml:IdentifierType" minOccurs="0"/>
>				</sequence>
>				<attribute name="ID" type="string"
>use="optional"/>
>			</extension>
>		</complexContent>				
>	</complexType>
>
>Jeff Bohren
>Product Architect
>OpenNetwork Technologies, Inc
> 
>Try the industry's only 100% .NET-enabled identity management software.
>Download your free copy of Universal IdP Standard Edition today. Go to
>www.opennetwork.com/eval.
> 
> 
>
>-----Original Message-----
>From: Gary P Cole [mailto:Gary.P.Cole@Sun.COM] 
>Sent: Thursday, December 02, 2004 1:45 AM
>To: PSTC
>Subject: [provision] AddRequestType#container won't work.
>
>Along the lines of "element ref won't work", it seems to me that the 
>"container" element of AddRequestType is another place where we expect 
>polymorphic acceptance of PSOIdentifierType as IdentifierType.  Although
>
>PSOIdentifierType is derived from IdentiferType, I believe that these 
>are two different types.
>
>Here I see two approaches (of which I think Option 2 is better).
>
>Option 1: XSI-TYPE - XSD specifies base type, doc element specifies a 
>derived type.
>PRO(?): Extensible (will accept custom identifier types).
>CON:   Fancy (some tools may not understand this feature.)
>
>For example,  AddRequestType would contain
>    <sequence>
>         <element name="containerId" type="spml:IdentifierType" 
>minOccurs="0"/>
>         <element name="data" type="spml:ExtensibleType" minOccurs="0"
>/>
>         <element name="capabilityData" type="spml:CapabilityDataType" 
>minOccurs="0" maxOccurs="unbounded" />
>   </sequence>
>
>The requestor must specify the derived type of containerId (if it's not 
>IdentifierType):
><addRequest>
>    <containerId xsi:type="PSOIdentifierType" ...>...</containerId>
>    <data>...</data>
></addRequest>
>Option 2: CHOICE - Specify a choice of derived types.
>PRO:  Explicit (and therefore validated by parser).
>PRO?CON?: Not extensible (won't accept custom identifier types).
>
>For example,  AddRequestType would contain
>    <sequence>
>         <choice minOccurs="0">
>            <xsd:element name="targetId" type="IdentifierType"/>
>            <xsd:element name="psoId" type="PSOIdentifierType"/>
>         </choice>
>         <element name="data" type="spml:ExtensibleType" minOccurs="0"
>/>
>         <element name="capabilityData" type="spml:CapabilityDataType" 
>minOccurs="0" maxOccurs="unbounded" />
>   </sequence>
>
>
>
>
>To unsubscribe from this mailing list (and be removed from the roster of
>the OASIS TC), go to
>http://www.oasis-open.org/apps/org/workgroup/provision/members/leave_wor
>kgroup.php.
>
>
>To unsubscribe from this mailing list (and be removed from the roster of the OASIS TC), go to http://www.oasis-open.org/apps/org/workgroup/provision/members/leave_workgroup.php.
>
>  
>




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