Tuesday, August 21, 2012

Nested Choice and Sequence Groups

The choice group element allows only one of its children to appear in an instance. One child is an inner group element that references the named group shipAndBill consisting of the element sequence shipTo, billTo, and the second child is a singleUSAddress. Hence, in an instance document, the purchaseOrder element must contain EITHER a shipTo element followed by a billTo element OR a singleUSAddress element. The choice group is followed by the comment and items element declarations, and both the choice group and the element declarations are children of a sequence group. The effect of these various groups is that the address element(s) must be followed by comment and items elements in that order.


<xsd:complexType name="PurchaseOrderType">`
 <xsd:sequence>
  <xsd:choice>
   <xsd:group   ref="shipAndBill"/>
   <xsd:element name="singleUSAddress" type="USAddress"/>
  </xsd:choice>
  <xsd:element ref="comment" minOccurs="0"/>
  <xsd:element name="items"  type="Items"/>
 </xsd:sequence>
 <xsd:attribute name="orderDate" type="xsd:date"/>
</xsd:complexType>

<xsd:group name="shipAndBill">
  <xsd:sequence>
    <xsd:element name="shipTo" type="USAddress"/>
    <xsd:element name="billTo" type="USAddress"/>
  </xsd:sequence>
</xsd:group>


Reference: http://www.w3.org/TR/2001/REC-xmlschema-0-20010502/

xsd:all

<xsd:all>

  • All the elements in the group may appear once or not at all, and they may appear in any order. 
  • The all group is limited to the top-level of any content model. 
  • The group's children must all be individual elements (no groups - sequence or all)

For example, to allow the child elements of purchaseOrder to appear in any order, we could redefine PurchaseOrderType as:


<xsd:complexType name="PurchaseOrderType">
  <xsd:all>
    <xsd:element name="shipTo" type="USAddress"/>
    <xsd:element name="billTo" type="USAddress"/>
    <xsd:element ref="comment" minOccurs="0"/>
    <xsd:element name="items"  type="Items"/>
  </xsd:all>
  <xsd:attribute name="orderDate" type="xsd:date"/>
</xsd:complexType>


Reference: http://www.w3.org/TR/2001/REC-xmlschema-0-20010502/

Sunday, August 12, 2012

UDDI Publishing API

Authorization Operations


  1. get_authToken - log in to the UDDI registry
    • get_authToken (@userId, @cred) :authToken
  2. discard_authToken - log out from the UDDI registry
    • discard_authToken (authToken) :dispositionReport

Save Operations


  1. save_business - add or update one or more businessEntity entries.
    • save_business (authInfo, businessEntity+) :businessDetail
  2. save_service - add or update one or more businessService entries.
    • save_service (authInfo, businessService+) :serviceDetail
  3. save_binding - add or update one or more bindingTemplate entries.
    • save_binding (authInfo, bindingTemplate+) :bindingDetail
  4. save_tModel - add or update one or more tModel entries.
    • save_tModel (authInfo, tModel+) :tModelDetail
  5. add_publisherAssertions - add one or more publisherAssertion entries.
    • add_publisherAssertions (authInfo, publisherAssertion+) :dispositionReport
  6. set_publisherAssertions - use to manage all of the tracked relationship assertions associated with an individual publisher account
    • set_publisherAssertions (authoInfo, [publisherAssertion]) :publisherAssertions

Delete Operations



  1. delete_business - remove one or more business registration
    • delete_business (authInfo, businessKey+) :dispositionReport
  2. delete_service - remove one or more previously businessService elements from the UDDI registry and from its containing businessEntity parent.
    • delete_service (authInfo, serviceKey+) :dispositionReport
  3. delete_binding - delete one or more bindingTemplate entries
    • delete_binding (authInfo, bindingKey+) :dispositionReport
  4. delete_tModel - logically delete one or more tModel structures. Logical deletion hides the deleted tModels from find_tModel result sets but does not physically delete it.
    • delete_tModel (authInfo, tModelKey) :dispositionReport
  5. delete_publisherAssertions - remove one or more publisherAssertion elements a publisher’s assertion collection.
    • delete_publisherAssertions (authInfo, publisherAssertion+) :dispositionReport

Get Operations

  1. get_assertionStatusReport - provides administrative support for determining the status of current and outstanding publisherAssertions that involve any of the businessEntity registrations managed by the individual publisher account.
    • get_assertionStatusReport (authInfo, completionStatus) :assertionStatusReport
  2. get_publisherAssertions - obtain the full set of publisher assertions that is associated with an individual publisher account.
    • get_publisherAssertions (authInfo) :publisherAssertions
  3. get_registeredInfo - get an abbreviated list of all businessEntity and tModel data that are controlled by the individual associated with the credentials passed.
    • get_registeredInfo (authInfo) :registeredInfo

Saturday, August 11, 2012

UDDI Inquiry API

Find Operations

  1. find_business - Finds matching businessEntity entries.
    • find_business([findQualifiers],[name*],[discoveryURLs],[identifierBag],[categoryBag],[tModelBag])
         :businessList{businessInfos}
  2. find_service - Finds matching businessService entries.
    • find_service([@businessKey],[findQualifiers],[name*],[categoryBag],[tModelBag])
         :serviceList{serviceInfos}
  3. find_binding - Finds matching bindingTemplate entries.
    • find_binding([findQualifiers], tModelBag) :
         :bindingDetail{bindingTemplate+}
  4. find_tModel - Finds matching tModel entries.
    • find_tModel([findQualifiers],[name],[identifierBag],[categoryBag])
         :tModelList{tModelInfos}
  5. find_relatedBusinesses - Finds matching publisherAssertion entries.
    • find_relatedBusiness([findQualifiers],businessKey,[keyedReference])
         :relatedBusinessList {businessKey,relatedBusinessInfos}

Get Operations

  1. get_businessDetail
    • get_businessDetail (businessKey+) : businessEntity
  2. get_businessDetailExt
    • get_businessDetailExt (businessKey+) : businessEntity
  3. get_serviceDetail
    • get_serviceDetail (serviceKey+) : businessService
  4. get_bindingDetail
    • get_bindingDetail (bindingKey+) : bindingTemplate
  5. get_tModelDetail
    • get_tModelDetail (tModelKey+) : tModel