Resource Subscriber Data
Resource |
Subscriber Data |
---|---|
Workspace |
Sentinel Services |
Path |
/subscriberdata |
Operations
Operation |
Retrieve a list of sub-resources offered by this resource |
---|---|
Request Method |
GET |
Path |
/subscriberdata |
Parameters |
|
Request Body |
Not used |
Success Result |
200 OK |
Response Headers |
None |
Response Body |
/subscriberdata/lookupconfig
Operation |
Retrieve an existing Subscriber Data Config entry or a listing of Subscriber Data Config entries |
---|---|
Request Method |
GET |
Path |
/subscriberdata/lookupconfig |
Parameters |
|
Request Body |
Not used |
Success Result |
200 OK |
Response Headers |
None |
Response Body |
If scope is provided: SubscriberDataLookupLookupConfig Otherwise: SubscriberDataLookupLookupConfigs |
Operation |
Update an existing Subscriber Data Config entry |
---|---|
Request Method |
PUT |
Path |
/subscriberdata/lookupconfig |
Parameters |
|
Request Body |
|
Success Result |
204 No content |
Response Headers |
None |
Response Body |
Not used |
Operation |
Delete an existing Subscriber Data Config entry |
---|---|
Request Method |
DELETE |
Path |
/subscriberdata/lookupconfig |
Parameters |
|
Request Body |
Not used |
Success Result |
204 No content |
Response Headers |
None |
Response Body |
Not used |
Operation |
Create a new Subscriber Data Config entry |
---|---|
Request Method |
POST |
Path |
/subscriberdata/lookupconfig |
Parameters |
|
Request Body |
|
Success Result |
201 Created |
Response Headers |
Location — contains the URL to access the created record |
Response Body |
Not used |
/subscriberdata/sqlconfig
Operation |
Update an existing Subscriber Data Config entry |
---|---|
Request Method |
PUT |
Path |
/subscriberdata/sqlconfig |
Parameters |
|
Request Body |
|
Success Result |
204 No content |
Response Headers |
None |
Response Body |
Not used |
Operation |
Delete an existing Subscriber Data Config entry |
---|---|
Request Method |
DELETE |
Path |
/subscriberdata/sqlconfig |
Parameters |
|
Request Body |
Not used |
Success Result |
204 No content |
Response Headers |
None |
Response Body |
Not used |
Operation |
Create a new Subscriber Data Config entry |
---|---|
Request Method |
POST |
Path |
/subscriberdata/sqlconfig |
Parameters |
|
Request Body |
|
Success Result |
201 Created |
Response Headers |
Location — contains the URL to access the created record |
Response Body |
Not used |
Operation |
Retrieve an existing Subscriber Data Config entry or a listing of Subscriber Data Config entries |
---|---|
Request Method |
GET |
Path |
/subscriberdata/sqlconfig |
Parameters |
|
Request Body |
Not used |
Success Result |
200 OK |
Response Headers |
None |
Response Body |
If scope is provided: SubscriberDataLookupSqlConfig Otherwise: SubscriberDataLookupSqlConfigs |
/subscriberdata/records
Operation |
Create a new subscriber data record |
---|---|
Request Method |
POST |
Path |
/subscriberdata/records |
Parameters |
|
Request Body |
|
Success Result |
201 Created |
Response Headers |
Location — contains the URL to access the created record |
Response Body |
Not used |
Operation |
Retrieve an existing subscriber data record |
---|---|
Request Method |
GET |
Path |
/subscriberdata/records/{subscriberId} |
Parameters |
|
Request Body |
Not used |
Success Result |
200 OK |
Response Headers |
None |
Response Body |
Operation |
Retrieve IMS public user identities for an existing subscriber data record |
---|---|
Request Method |
GET |
Path |
/subscriberdata/records/{subscriberId}/imsPublicUserIdentities |
Parameters |
|
Request Body |
Not used |
Success Result |
200 OK |
Response Headers |
None |
Response Body |
Operation |
Update an existing subscriber data record |
---|---|
Request Method |
PUT |
Path |
/subscriberdata/records/{subscriberId} |
Parameters |
|
Request Body |
|
Success Result |
204 No content |
Response Headers |
None |
Response Body |
Not used |
Operation |
Update IMS public user identities for an existing subscriber data record |
---|---|
Request Method |
PUT |
Path |
/subscriberdata/records/{subscriberId}/imsPublicUserIdentities |
Parameters |
|
Request Body |
|
Success Result |
204 No content |
Response Headers |
None |
Response Body |
Not used |
Operation |
Add an IMS public user identity for an existing subscriber data record |
---|---|
Request Method |
POST |
Path |
/subscriberdata/records/{subscriberId}/imsPublicUserIdentities |
Parameters |
|
Request Body |
|
Success Result |
201 Created |
Response Headers |
Location — contains the URL to access the created record |
Response Body |
Not used |
Operation |
Remove an IMS public user identity from an existing subscriber data record |
---|---|
Request Method |
DELETE |
Path |
/subscriberdata/records/{subscriberId}/imsPublicUserIdentities/{imsPublicUserIdentity} |
Parameters |
|
Request Body |
Not used |
Success Result |
204 No content |
Response Headers |
None |
Response Body |
Not used |
Operation |
Delete an existing subscriber data record |
---|---|
Request Method |
DELETE |
Path |
/subscriberdata/records/{subscriberId} |
Parameters |
|
Request Body |
Not used |
Success Result |
204 No content |
Response Headers |
None |
Response Body |
Not used |
/subscriberdata/fields
Operation |
Create a new subscriber data lookup fields config |
---|---|
Request Method |
POST |
Path |
/subscriberdata/fields |
Parameters |
|
Request Body |
|
Success Result |
201 Created |
Response Headers |
Location — contains the URL to access the created record |
Response Body |
Not used |
Operation |
Retrieve an existing subscriber data lookup fields config or a listing of subscriber data lookup fields configs |
---|---|
Request Method |
GET |
Path |
/subscriberdata/fields |
Parameters |
|
Request Body |
Not used |
Success Result |
200 OK |
Response Headers |
None |
Response Body |
If scope is provided: SubscriberDataLookupFields Otherwise: SubscriberDataLookupFieldsListing |
Operation |
Update an existing subscriber data lookup fields config |
---|---|
Request Method |
PUT |
Path |
/subscriberdata/fields |
Parameters |
|
Request Body |
|
Success Result |
204 No content |
Response Headers |
None |
Response Body |
Not used |
Operation |
Delete an existing subscriber data lookup fields config |
---|---|
Request Method |
DELETE |
Path |
/subscriberdata/fields |
Parameters |
|
Request Body |
Not used |
Success Result |
204 No content |
Response Headers |
None |
Response Body |
Not used |
Schemas
Feature
Class: com.opencloud.sentinel.rest.common.Feature
JSON
{
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"resources" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"rel" : {
"type" : "string"
},
"href" : {
"type" : "string"
},
"title" : {
"type" : "string"
}
}
}
}
}
}
XML
<?xml version="1.0" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="feature" type="FeatureType"/>
<xs:element name="link" type="LinkType"/>
<xs:complexType name="FeatureType">
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0"/>
<xs:element name="resources" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element ref="link" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LinkType">
<xs:sequence/>
<xs:attribute name="rel" type="xs:string"/>
<xs:attribute name="href" type="xs:string"/>
<xs:attribute name="title" type="xs:string"/>
</xs:complexType>
</xs:schema>
SubscriberDataLookupLookupConfig
Class: com.opencloud.sentinel.provisioning.subscriberdata.SubscriberDataLookupLookupConfig
XML
<?xml version="1.0" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="subscriberDataLookupLookupConfig" type="SubscriberDataLookupLookupConfigType"/>
<xs:complexType name="SubscriberDataLookupLookupConfigType">
<xs:sequence>
<xs:element name="lookupType" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
SubscriberDataLookupLookupConfigs
Class: com.opencloud.sentinel.rest.server.resources.SubscriberDataLookupConfigResource$SubscriberDataLookupLookupConfigs
JSON
{
"type" : "object",
"properties" : {
"entries" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"resources" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"rel" : {
"type" : "string"
},
"href" : {
"type" : "string"
},
"title" : {
"type" : "string"
}
}
}
},
"selectionKey" : {
"type" : "string"
}
}
}
},
"next" : {
"type" : "string"
},
"prev" : {
"type" : "string"
}
}
}
XML
<?xml version="1.0" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="link" type="LinkType"/>
<xs:element name="subscriberDataLookupLookupConfig" type="SubscriberDataLookupLookupConfigsEntryType"/>
<xs:element name="subscriberDataLookupLookupConfigs" type="SubscriberDataLookupLookupConfigsType"/>
<xs:complexType name="SubscriberDataLookupLookupConfigsType">
<xs:sequence>
<xs:element ref="subscriberDataLookupLookupConfig" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="next" type="xs:string"/>
<xs:attribute name="prev" type="xs:string"/>
</xs:complexType>
<xs:complexType name="SubscriberDataLookupLookupConfigsEntryType">
<xs:complexContent>
<xs:extension base="simpleEntry">
<xs:sequence>
<xs:element name="selectionKey" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="simpleEntry" abstract="true">
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0"/>
<xs:element name="resources" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element ref="link" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LinkType">
<xs:sequence/>
<xs:attribute name="rel" type="xs:string"/>
<xs:attribute name="href" type="xs:string"/>
<xs:attribute name="title" type="xs:string"/>
</xs:complexType>
</xs:schema>
SubscriberDataLookupSqlConfig
Class: com.opencloud.sentinel.provisioning.subscriberdata.SubscriberDataLookupSqlConfig
JSON
{
"type" : "object",
"properties" : {
"listSQL" : {
"type" : "string"
},
"loadSQL" : {
"type" : "string"
},
"updateSQL" : {
"type" : "string"
},
"deleteSQL" : {
"type" : "string"
},
"insertSQL" : {
"type" : "string"
},
"loadByImsPublicUserIdentitySQL" : {
"type" : "string"
},
"listImsPublicUserIdentitiesSQL" : {
"type" : "string"
},
"insertImsPublicUserIdentitySQL" : {
"type" : "string"
},
"deleteImsPublicUserIdentitySQL" : {
"type" : "string"
},
"deleteAllImsPublicUserIdentitiesForSubscriberSQL" : {
"type" : "string"
},
"databaseRequestTimeout" : {
"type" : "integer"
},
"asynchronousQuery" : {
"type" : "boolean",
"required" : true
},
"useImsPublicUserIdentities" : {
"type" : "boolean",
"required" : true
}
}
}
XML
<?xml version="1.0" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="subscriberDataLookupSqlConfig" type="SubscriberDataLookupSqlConfigType"/>
<xs:complexType name="SubscriberDataLookupSqlConfigType">
<xs:sequence>
<xs:element name="listSQL" type="xs:string" minOccurs="0"/>
<xs:element name="loadSQL" type="xs:string" minOccurs="0"/>
<xs:element name="updateSQL" type="xs:string" minOccurs="0"/>
<xs:element name="deleteSQL" type="xs:string" minOccurs="0"/>
<xs:element name="insertSQL" type="xs:string" minOccurs="0"/>
<xs:element name="loadByImsPublicUserIdentitySQL" type="xs:string" minOccurs="0"/>
<xs:element name="listImsPublicUserIdentitiesSQL" type="xs:string" minOccurs="0"/>
<xs:element name="insertImsPublicUserIdentitySQL" type="xs:string" minOccurs="0"/>
<xs:element name="deleteImsPublicUserIdentitySQL" type="xs:string" minOccurs="0"/>
<xs:element name="deleteAllImsPublicUserIdentitiesForSubscriberSQL" type="xs:string" minOccurs="0"/>
<xs:element name="databaseRequestTimeout" type="xs:int"/>
<xs:element name="asynchronousQuery" type="xs:boolean"/>
<xs:element name="useImsPublicUserIdentities" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
SubscriberDataLookupSqlConfigs
Class: com.opencloud.sentinel.rest.server.resources.SubscriberDataSqlResource$SubscriberDataLookupSqlConfigs
JSON
{
"type" : "object",
"properties" : {
"entries" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"resources" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"rel" : {
"type" : "string"
},
"href" : {
"type" : "string"
},
"title" : {
"type" : "string"
}
}
}
},
"selectionKey" : {
"type" : "string"
}
}
}
},
"next" : {
"type" : "string"
},
"prev" : {
"type" : "string"
}
}
}
XML
<?xml version="1.0" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="link" type="LinkType"/>
<xs:element name="subscriberDataLookupSqlConfig" type="SubscriberDataLookupSqlConfigsEntryType"/>
<xs:element name="subscriberDataLookupSqlConfigs" type="SubscriberDataLookupSqlConfigsType"/>
<xs:complexType name="SubscriberDataLookupSqlConfigsType">
<xs:sequence>
<xs:element ref="subscriberDataLookupSqlConfig" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="next" type="xs:string"/>
<xs:attribute name="prev" type="xs:string"/>
</xs:complexType>
<xs:complexType name="SubscriberDataLookupSqlConfigsEntryType">
<xs:complexContent>
<xs:extension base="simpleEntry">
<xs:sequence>
<xs:element name="selectionKey" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="simpleEntry" abstract="true">
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0"/>
<xs:element name="resources" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element ref="link" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LinkType">
<xs:sequence/>
<xs:attribute name="rel" type="xs:string"/>
<xs:attribute name="href" type="xs:string"/>
<xs:attribute name="title" type="xs:string"/>
</xs:complexType>
</xs:schema>
SubscriberDataRecord
Class: com.opencloud.sentinel.provisioning.subscriberdata.SubscriberDataRecord
JSON
{
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"subscriberData" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"type" : {
"type" : "string",
"enum" : [ "String", "Boolean", "Integer", "String[]", "Date", "Date[]" ]
},
"valueString" : {
"type" : "string"
},
"valueInt" : {
"type" : "integer"
},
"valueBoolean" : {
"type" : "boolean"
},
"valueArray" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"valueDate" : {
"type" : "number"
},
"valueDateArray" : {
"type" : "array",
"items" : {
"type" : "number"
}
}
}
}
},
"imsPublicUserIdentities" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
}
}
XML
<?xml version="1.0" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="subscriberDataItem" type="SubscriberDataItemType"/>
<xs:element name="subscriberDataRecord" type="SubscriberDataRecordType"/>
<xs:complexType name="SubscriberDataRecordType">
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0"/>
<xs:element ref="subscriberDataItem" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="imsPublicUserIdentities" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="imsPublicUserIdentity" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SubscriberDataItemType">
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0"/>
<xs:element name="type" type="dataType" minOccurs="0"/>
<xs:element name="valueString" type="xs:string" minOccurs="0"/>
<xs:element name="valueInt" type="xs:int" minOccurs="0"/>
<xs:element name="valueBoolean" type="xs:boolean" minOccurs="0"/>
<xs:element name="valueArray" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="value" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="valueDate" type="xs:dateTime" minOccurs="0"/>
<xs:element name="valueDateArray" type="xs:dateTime" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="dataType">
<xs:restriction base="xs:string">
<xs:enumeration value="String"/>
<xs:enumeration value="Boolean"/>
<xs:enumeration value="Integer"/>
<xs:enumeration value="String[]"/>
<xs:enumeration value="Date"/>
<xs:enumeration value="Date[]"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
ImsPublicUserIdentities
Class: com.opencloud.sentinel.rest.subscriberdata.ImsPublicUserIdentities
XML
<?xml version="1.0" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="imsPublicUserIdentities" type="ImsPublicUserIdentitiesType"/>
<xs:complexType name="ImsPublicUserIdentitiesType">
<xs:sequence>
<xs:element name="imsPublicUserIdentity" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
SubscriberDataLookupFields
Class: com.opencloud.sentinel.provisioning.subscriberdata.SubscriberDataLookupFields
JSON
{
"type" : "object",
"properties" : {
"fields" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"type" : {
"type" : "string",
"enum" : [ "String", "Boolean", "Integer", "String[]", "Date", "Date[]" ]
},
"sessionStateFieldName" : {
"type" : "string"
},
"resFieldName" : {
"type" : "string"
},
"colIdx" : {
"type" : "string"
},
"insertParamIdx" : {
"type" : "integer"
},
"updateParamIdx" : {
"type" : "integer"
},
"displayName" : {
"type" : "string"
},
"description" : {
"type" : "string"
},
"required" : {
"type" : "boolean",
"required" : true
},
"idField" : {
"type" : "boolean",
"required" : true
}
}
}
}
}
}
XML
<?xml version="1.0" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="subscriberDataLookupField" type="SubscriberDataLookupFieldType"/>
<xs:element name="subscriberDataLookupFields" type="SubscriberDataLookupFieldsType"/>
<xs:complexType name="SubscriberDataLookupFieldsType">
<xs:sequence>
<xs:element ref="subscriberDataLookupField" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SubscriberDataLookupFieldType">
<xs:sequence>
<xs:element name="type" type="dataType" minOccurs="0"/>
<xs:element name="sessionStateFieldName" type="xs:string" minOccurs="0"/>
<xs:element name="resFieldName" type="xs:string" minOccurs="0"/>
<xs:element name="colIdx" type="xs:string" minOccurs="0"/>
<xs:element name="insertParamIdx" type="xs:int"/>
<xs:element name="updateParamIdx" type="xs:int"/>
<xs:element name="displayName" type="xs:string" minOccurs="0"/>
<xs:element name="description" type="xs:string" minOccurs="0"/>
<xs:element name="required" type="xs:boolean"/>
<xs:element name="idField" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="dataType">
<xs:restriction base="xs:string">
<xs:enumeration value="String"/>
<xs:enumeration value="Boolean"/>
<xs:enumeration value="Integer"/>
<xs:enumeration value="String[]"/>
<xs:enumeration value="Date"/>
<xs:enumeration value="Date[]"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
SubscriberDataLookupFieldsListing
Class: com.opencloud.sentinel.rest.server.resources.SubscriberDataLookupFieldsResource$SubscriberDataLookupFieldsListing
JSON
{
"type" : "object",
"properties" : {
"entries" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"resources" : {
"type" : "array",
"items" : {
"type" : "object",
"properties" : {
"rel" : {
"type" : "string"
},
"href" : {
"type" : "string"
},
"title" : {
"type" : "string"
}
}
}
},
"selectionKey" : {
"type" : "string"
}
}
}
},
"next" : {
"type" : "string"
},
"prev" : {
"type" : "string"
}
}
}
XML
<?xml version="1.0" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="link" type="LinkType"/>
<xs:element name="subscriberDataLookupFieldsEntry" type="SubscriberDataLookupFieldsEntryType"/>
<xs:element name="subscriberDataLookupFieldsListing" type="SubscriberDataLookupFieldsListingType"/>
<xs:complexType name="SubscriberDataLookupFieldsListingType">
<xs:sequence>
<xs:element ref="subscriberDataLookupFieldsEntry" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="next" type="xs:string"/>
<xs:attribute name="prev" type="xs:string"/>
</xs:complexType>
<xs:complexType name="SubscriberDataLookupFieldsEntryType">
<xs:complexContent>
<xs:extension base="simpleEntry">
<xs:sequence>
<xs:element name="selectionKey" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="simpleEntry" abstract="true">
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0"/>
<xs:element name="resources" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element ref="link" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LinkType">
<xs:sequence/>
<xs:attribute name="rel" type="xs:string"/>
<xs:attribute name="href" type="xs:string"/>
<xs:attribute name="title" type="xs:string"/>
</xs:complexType>
</xs:schema>