Resource Promotions
Resource  | 
Promotions  | 
|---|---|
Workspace  | 
Sentinel Services  | 
Path  | 
/promotions  | 
Operations
Operation  | 
Retrieve a list of sub-resources offered by this resource  | 
|---|---|
Request Method  | 
GET  | 
Path  | 
/promotions  | 
Parameters  | 
|
Request Body  | 
Not used  | 
Success Result  | 
200 OK  | 
Response Headers  | 
None  | 
Response Body  | 
/promotions/bucketsConfig
Operation  | 
Retrieve a listing of Promotions Config entries  | 
|---|---|
Request Method  | 
GET  | 
Path  | 
/promotions/bucketsConfig  | 
Parameters  | 
  | 
Request Body  | 
Not used  | 
Success Result  | 
200 OK  | 
Response Headers  | 
None  | 
Response Body  | 
Operation  | 
Create a new Promotions Config entry  | 
|---|---|
Request Method  | 
POST  | 
Path  | 
/promotions/bucketsConfig  | 
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 Promotions Config entry  | 
|---|---|
Request Method  | 
GET  | 
Path  | 
/promotions/bucketsConfig/{bucketName}  | 
Parameters  | 
  | 
Request Body  | 
Not used  | 
Success Result  | 
200 OK  | 
Response Headers  | 
None  | 
Response Body  | 
Operation  | 
Update an existing Promotions Config entry  | 
|---|---|
Request Method  | 
PUT  | 
Path  | 
/promotions/bucketsConfig/{bucketName}  | 
Parameters  | 
  | 
Request Body  | 
|
Success Result  | 
204 No content  | 
Response Headers  | 
None  | 
Response Body  | 
Not used  | 
Operation  | 
Delete an existing Promotions Config entry  | 
|---|---|
Request Method  | 
DELETE  | 
Path  | 
/promotions/bucketsConfig/{bucketName}  | 
Parameters  | 
  | 
Request Body  | 
Not used  | 
Success Result  | 
204 No content  | 
Response Headers  | 
None  | 
Response Body  | 
Not used  | 
/promotions/configTables
Operation  | 
Create a new promotion table  | 
|---|---|
Request Method  | 
POST  | 
Path  | 
/promotions/configTables  | 
Parameters  | 
  | 
Request Body  | 
|
Success Result  | 
201 Created  | 
Response Headers  | 
Location — contains the URL to access the created record  | 
Response Body  | 
Not used  | 
Operation  | 
Update an existing promotion table  | 
|---|---|
Request Method  | 
PUT  | 
Path  | 
/promotions/configTables  | 
Parameters  | 
  | 
Request Body  | 
|
Success Result  | 
204 No content  | 
Response Headers  | 
None  | 
Response Body  | 
Not used  | 
Operation  | 
Delete an existing promotion table  | 
|---|---|
Request Method  | 
DELETE  | 
Path  | 
/promotions/configTables  | 
Parameters  | 
  | 
Request Body  | 
Not used  | 
Success Result  | 
204 No content  | 
Response Headers  | 
None  | 
Response Body  | 
Not used  | 
Operation  | 
Retrieve an existing promotion table or a listing of promotion tables  | 
|---|---|
Request Method  | 
GET  | 
Path  | 
/promotions/configTables  | 
Parameters  | 
  | 
Request Body  | 
Not used  | 
Success Result  | 
200 OK  | 
Response Headers  | 
None  | 
Response Body  | 
If scope is provided: PromotionTable Otherwise: PromotionTables  | 
/promotions/sqlconfig
Operation  | 
Create a new Promotions Config entry  | 
|---|---|
Request Method  | 
POST  | 
Path  | 
/promotions/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 Promotions Config entry or a listing of Promotions Config entries  | 
|---|---|
Request Method  | 
GET  | 
Path  | 
/promotions/sqlconfig  | 
Parameters  | 
  | 
Request Body  | 
Not used  | 
Success Result  | 
200 OK  | 
Response Headers  | 
None  | 
Response Body  | 
If scope is provided: PromotionsSqlConfig Otherwise: PromotionsSqlConfigs  | 
Operation  | 
Update an existing Promotions Config entry  | 
|---|---|
Request Method  | 
PUT  | 
Path  | 
/promotions/sqlconfig  | 
Parameters  | 
  | 
Request Body  | 
|
Success Result  | 
204 No content  | 
Response Headers  | 
None  | 
Response Body  | 
Not used  | 
Operation  | 
Delete an existing Promotions Config entry  | 
|---|---|
Request Method  | 
DELETE  | 
Path  | 
/promotions/sqlconfig  | 
Parameters  | 
  | 
Request Body  | 
Not used  | 
Success Result  | 
204 No content  | 
Response Headers  | 
None  | 
Response Body  | 
Not used  | 
/promotions/buckets
Operation  | 
Retrieve an existing promotion bucket  | 
|---|---|
Request Method  | 
GET  | 
Path  | 
/promotions/buckets;subscriberId=?;bucketName=?  | 
Parameters  | 
  | 
Request Body  | 
Not used  | 
Success Result  | 
200 OK  | 
Response Headers  | 
None  | 
Response Body  | 
Operation  | 
Create a new promotion bucket  | 
|---|---|
Request Method  | 
POST  | 
Path  | 
/promotions/buckets;subscriberId=?;bucketName=?  | 
Parameters  | 
  | 
Request Body  | 
|
Success Result  | 
201 Created  | 
Response Headers  | 
Location — contains the URL to access the created record  | 
Response Body  | 
Not used  | 
Operation  | 
Update an existing promotion bucket  | 
|---|---|
Request Method  | 
PUT  | 
Path  | 
/promotions/buckets;subscriberId=?;bucketName=?  | 
Parameters  | 
  | 
Request Body  | 
|
Success Result  | 
204 No content  | 
Response Headers  | 
None  | 
Response Body  | 
Not used  | 
Operation  | 
Delete an existing promotion bucket  | 
|---|---|
Request Method  | 
DELETE  | 
Path  | 
/promotions/buckets;subscriberId=?;bucketName=?  | 
Parameters  | 
  | 
Request Body  | 
Not used  | 
Success Result  | 
204 No content  | 
Response Headers  | 
None  | 
Response Body  | 
Not used  | 
/promotions/config
Operation  | 
Create a new Promotions Config entry  | 
|---|---|
Request Method  | 
POST  | 
Path  | 
/promotions/config  | 
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 Promotions Config entry or a listing of Promotions Config entries  | 
|---|---|
Request Method  | 
GET  | 
Path  | 
/promotions/config  | 
Parameters  | 
  | 
Request Body  | 
Not used  | 
Success Result  | 
200 OK  | 
Response Headers  | 
None  | 
Response Body  | 
If scope is provided: PromotionsConfig Otherwise: PromotionsConfigs  | 
Operation  | 
Update an existing Promotions Config entry  | 
|---|---|
Request Method  | 
PUT  | 
Path  | 
/promotions/config  | 
Parameters  | 
  | 
Request Body  | 
|
Success Result  | 
204 No content  | 
Response Headers  | 
None  | 
Response Body  | 
Not used  | 
Operation  | 
Delete an existing Promotions Config entry  | 
|---|---|
Request Method  | 
DELETE  | 
Path  | 
/promotions/config  | 
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>
PromotionsBucketsConfigs
Class: com.opencloud.sentinel.rest.server.resources.PromotionBucketsConfigResource$PromotionsBucketsConfigs
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="promotionsBucketsConfig" type="PromotionsBucketsConfigsEntryType"/>
  <xs:element name="promotionsBucketsConfigs" type="PromotionsBucketsConfigsType"/>
  <xs:complexType name="PromotionsBucketsConfigsType">
    <xs:sequence>
      <xs:element ref="promotionsBucketsConfig" 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="PromotionsBucketsConfigsEntryType">
    <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>
PromotionsBucketsConfig
Class: com.opencloud.sentinel.provisioning.promotions.PromotionsBucketsConfig
JSON
{
  "type" : "object",
  "properties" : {
    "bucketName" : {
      "type" : "string"
    },
    "dataSource" : {
      "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="promotionsBucketsConfig" type="PromotionsBucketsConfigType"/>
  <xs:complexType name="PromotionsBucketsConfigType">
    <xs:sequence>
      <xs:element name="bucketName" type="xs:string" minOccurs="0"/>
      <xs:element name="dataSource" type="xs:string" nillable="true" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
PromotionTable
Class: com.opencloud.sentinel.provisioning.promotions.PromotionTable
JSON
{
  "type" : "object",
  "properties" : {
    "promotions" : {
      "type" : "array",
      "items" : {
        "type" : "object",
        "properties" : {
          "promotionName" : {
            "type" : "string"
          },
          "bucketName" : {
            "type" : "string"
          },
          "conditionSrc" : {
            "type" : "string"
          },
          "priority" : {
            "type" : "integer"
          },
          "validityStart" : {
            "type" : "number"
          },
          "validityEnd" : {
            "type" : "number"
          }
        }
      }
    }
  }
}
XML
<?xml version="1.0" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="promotionConfig" type="PromotionConfigType"/>
  <xs:element name="promotionTable" type="PromotionTableType"/>
  <xs:complexType name="PromotionTableType">
    <xs:sequence>
      <xs:element ref="promotionConfig" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PromotionConfigType">
    <xs:sequence>
      <xs:element name="promotionName" type="xs:string" minOccurs="0"/>
      <xs:element name="bucketName" type="xs:string" minOccurs="0"/>
      <xs:element name="conditionSrc" type="xs:string" minOccurs="0"/>
      <xs:element name="priority" type="xs:int"/>
      <xs:element name="validityStart" type="xs:long"/>
      <xs:element name="validityEnd" type="xs:long"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
PromotionTables
Class: com.opencloud.sentinel.rest.common.PromotionTables
JSON
{
  "type" : "object",
  "properties" : {
    "promotionTables" : {
      "type" : "array",
      "items" : {
        "type" : "object",
        "properties" : {
          "selectionKey" : {
            "type" : "string"
          },
          "resources" : {
            "type" : "array",
            "items" : {
              "type" : "object",
              "properties" : {
                "rel" : {
                  "type" : "string"
                },
                "href" : {
                  "type" : "string"
                },
                "title" : {
                  "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="promotionTable" type="PromotionTableEntryType"/>
  <xs:element name="promotionTables" type="PromotionTablesType"/>
  <xs:complexType name="PromotionTablesType">
    <xs:sequence>
      <xs:element ref="promotionTable" 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="PromotionTableEntryType">
    <xs:sequence>
      <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:attribute name="selectionKey" type="xs:string"/>
  </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>
PromotionsSqlConfig
Class: com.opencloud.sentinel.provisioning.promotions.PromotionsSqlConfig
JSON
{
  "type" : "object",
  "properties" : {
    "listAllSQL" : {
      "type" : "string"
    },
    "loadSQL" : {
      "type" : "string"
    },
    "updateSQL" : {
      "type" : "string"
    },
    "deleteSQL" : {
      "type" : "string"
    },
    "addSQL" : {
      "type" : "string"
    },
    "databaseRequestTimeout" : {
      "type" : "integer"
    }
  }
}
XML
<?xml version="1.0" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="promotionsSqlConfig" type="PromotionsSqlConfigType"/>
  <xs:complexType name="PromotionsSqlConfigType">
    <xs:sequence>
      <xs:element name="listAllSQL" 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="addSQL" type="xs:string" minOccurs="0"/>
      <xs:element name="databaseRequestTimeout" type="xs:int"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
PromotionsSqlConfigs
Class: com.opencloud.sentinel.rest.server.resources.PromotionsSqlResource$PromotionsSqlConfigs
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="promotionsSqlConfig" type="PromotionsSqlConfigsEntryType"/>
  <xs:element name="promotionsSqlConfigs" type="PromotionsSqlConfigsType"/>
  <xs:complexType name="PromotionsSqlConfigsType">
    <xs:sequence>
      <xs:element ref="promotionsSqlConfig" 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="PromotionsSqlConfigsEntryType">
    <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>
PromotionBucket
Class: com.opencloud.sentinel.provisioning.promotions.PromotionBucket
JSON
{
  "type" : "object",
  "properties" : {
    "availableUnits" : {
      "type" : "number"
    },
    "reservedUnits" : {
      "type" : "number"
    }
  }
}
XML
<?xml version="1.0" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="promotionBucket" type="PromotionBucketType"/>
  <xs:complexType name="PromotionBucketType">
    <xs:sequence>
      <xs:element name="availableUnits" type="xs:long"/>
      <xs:element name="reservedUnits" type="xs:long"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
PromotionsConfig
Class: com.opencloud.sentinel.provisioning.promotions.PromotionsConfig
JSON
{
  "type" : "object",
  "properties" : {
    "defaultDataSource" : {
      "type" : "string"
    },
    "unitGrantingMode" : {
      "type" : "string"
    },
    "promotionApplicationMode" : {
      "type" : "string"
    },
    "partialGrantingThreshold" : {
      "type" : "number"
    }
  }
}
XML
<?xml version="1.0" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="promotionsConfig" type="PromotionsConfigType"/>
  <xs:complexType name="PromotionsConfigType">
    <xs:sequence>
      <xs:element name="defaultDataSource" type="xs:string" minOccurs="0"/>
      <xs:element name="unitGrantingMode" type="xs:string" minOccurs="0"/>
      <xs:element name="promotionApplicationMode" type="xs:string" minOccurs="0"/>
      <xs:element name="partialGrantingThreshold" type="xs:long"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
PromotionsConfigs
Class: com.opencloud.sentinel.rest.server.resources.PromotionsConfigResource$PromotionsConfigs
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="promotionsConfig" type="PromotionsConfigsEntryType"/>
  <xs:element name="promotionsConfigs" type="PromotionsConfigsType"/>
  <xs:complexType name="PromotionsConfigsType">
    <xs:sequence>
      <xs:element ref="promotionsConfig" 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="PromotionsConfigsEntryType">
    <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>
