# Hotel Ads Schemas

Before submitting your feeds to Google, you can validate them with published
schemas.

The following table lists the available schemas that you can use to validate
your feeds against:

| Schema Download | Applicable pricing delivery modes | Schema Location |
|---|---|---|
| [Hotel List](https://gstatic.com/localfeed/local_feed.xsd) | All | gstatic.com/localfeed/local_feed.xsd |
| [Landing pages](https://gstatic.com/ads-travel/hotels/api/point_of_sale.xsd) | All | gstatic.com/ads-travel/hotels/api/point_of_sale.xsd |
| [Transaction (Property Data)](https://gstatic.com/ads-travel/hotels/api/transaction_property_data.xsd) | ARI | gstatic.com/ads-travel/hotels/api/transaction_property_data.xsd |
| [Transaction (Property Data) Response](https://gstatic.com/ads-travel/hotels/api/transaction_property_data_response.xsd) | ARI | gstatic.com/ads-travel/hotels/api/transaction_property_data_response.xsd |
| [OTA_HotelRateAmountNotifRQ](https://gstatic.com/ads-travel/hotels/api/ota_hotel_rate_amount_notif_rq.xsd) | ARI | gstatic.com/ads-travel/hotels/api/ota_hotel_rate_amount_notif_rq.xsd |
| [OTA_HotelRateAmountNotifRS](https://gstatic.com/ads-travel/hotels/api/ota_hotel_rate_amount_notif_rs.xsd) | ARI | gstatic.com/ads-travel/hotels/api/ota_hotel_rate_amount_notif_rs.xsd |
| [OTA_HotelAvailNotifRQ](https://gstatic.com/ads-travel/hotels/api/ota_hotel_avail_notif_rq.xsd) | ARI | gstatic.com/ads-travel/hotels/api/ota_hotel_avail_notif_rq.xsd |
| [OTA_HotelAvailNotifRS](https://gstatic.com/ads-travel/hotels/api/ota_hotel_avail_notif_rs.xsd) | ARI | gstatic.com/ads-travel/hotels/api/ota_hotel_avail_notif_rs.xsd |
| [OTA_HotelInvCountNotifRQ](https://gstatic.com/ads-travel/hotels/api/ota_hotel_inv_count_notif_rq.xsd) | ARI | gstatic.com/ads-travel/hotels/api/ota_hotel_inv_count_notif_rq.xsd |
| [OTA_HotelInvCountNotifRS](https://gstatic.com/ads-travel/hotels/api/ota_hotel_inv_count_notif_rs.xsd) | ARI | gstatic.com/ads-travel/hotels/api/ota_hotel_inv_count_notif_rs.xsd |
| [TaxFeeInfo](https://gstatic.com/ads-travel/hotels/api/tax_fee_info.xsd) | ARI | gstatic.com/ads-travel/hotels/api/tax_fee_info.xsd |
| [TaxFeeInfoResponse](https://gstatic.com/ads-travel/hotels/api/tax_fee_info_response.xsd) | ARI | gstatic.com/ads-travel/hotels/api/tax_fee_info_response.xsd |
| [Promotions](https://gstatic.com/ads-travel/hotels/api/promotions.xsd) | ARI | gstatic.com/ads-travel/hotels/api/promotions.xsd |
| [PromotionsResponse](https://gstatic.com/ads-travel/hotels/api/promotions_response.xsd) | ARI | gstatic.com/ads-travel/hotels/api/promotions_response.xsd |
| [RateModifications](https://gstatic.com/ads-travel/hotels/api/rate_modifications.xsd) | ARI | gstatic.com/ads-travel/hotels/api/rate_modifications.xsd |
| [RateModificationsResponse](https://gstatic.com/ads-travel/hotels/api/rate_modifications_response.xsd) | ARI | gstatic.com/ads-travel/hotels/api/rate_modifications_response.xsd |
| [Transaction](https://gstatic.com/ads-travel/hotels/api/transaction.xsd) | Pull, Changed Pricing | gstatic.com/ads-travel/hotels/api/transaction.xsd |
| [Rate rules](https://gstatic.com/ads-travel/hotels/api/private_rates.xsd) | Pull, Changed Pricing | gstatic.com/ads-travel/hotels/api/private_rates.xsd |
| [Hint Response](https://gstatic.com/ads-travel/hotels/api/hint.xsd) | Changed Pricing | gstatic.com/ads-travel/hotels/api/hint.xsd |
| [Query](https://gstatic.com/ads-travel/hotels/api/query.xsd) (from Google to partners) | Pull, Changed Pricing, Live Pricing Query | gstatic.com/ads-travel/hotels/api/query.xsd |

> [!IMPORTANT]
> **Key Point:** Some schemas reference include files with relative paths. Includes with relative paths can be found in the same directory as the file them. For example, `"tax_fee_info.xsd"` definition includes `"common_types.xsd"` and both of these files can be found in `"gstatic.com/ads-travel/hotels/api/"`. Therefore, common_types.xsd can be found at `"gstatic.com/ads-travel/hotels/api/common_types.xsd"`.

## How to validate files

To validate your files with these schemas, you can use a third-party XML tool
such as `xmllint`.

The syntax for using `xmllint` to validate a schema is as follows:

    xmllint --schema schema_location file_to_validate

> [!IMPORTANT]
> **Important:** Use `http:` for the <var translate="no">schema_location</var> URL since `xmllint` doesn't support `https:`.

The following example validates the `mypriceupdates.xml` file against the
Transaction message schema:

    xmllint --schema http://gstatic.com/ads-travel/hotels/api/transaction.xsd mypriceupdates.xml

The following example validates the `myfeed.xml` file against the Hotel List
Feed schema and shows errors if they exist:

    xmllint --noout --schema http://gstatic.com/localfeed/local_feed.xsd myfeed.xml