[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: [provision] AddRequestType#container won't work.
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.
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]