From 2e3f822372a9a153199b3a0b226832dfbe624fc6 Mon Sep 17 00:00:00 2001 From: Henry Story Date: Sat, 4 Jun 2022 21:08:33 +0200 Subject: [PATCH] add missing basket examples --- schema_salad/tests/basket.yml | 9 +++++ schema_salad/tests/basket_schema.yml | 52 ++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 schema_salad/tests/basket.yml create mode 100644 schema_salad/tests/basket_schema.yml diff --git a/schema_salad/tests/basket.yml b/schema_salad/tests/basket.yml new file mode 100644 index 00000000..a0732d6d --- /dev/null +++ b/schema_salad/tests/basket.yml @@ -0,0 +1,9 @@ +basket: + - product: bananas + price: 0.39 + per: pound + weight: 1 + - product: cucumbers + price: 0.79 + per: item + count: 3 diff --git a/schema_salad/tests/basket_schema.yml b/schema_salad/tests/basket_schema.yml new file mode 100644 index 00000000..afe5ed05 --- /dev/null +++ b/schema_salad/tests/basket_schema.yml @@ -0,0 +1,52 @@ +- name: Product + doc: | + The base type for a product. This is an abstract type, so it + can't be used directly, but can be used to define other types. + type: record + abstract: true + fields: + product: string + price: float + +- name: ByWeight + doc: | + A product, sold by weight. Products may be sold by pound or by + kilogram. Weights may be fractional. + type: record + extends: Product + fields: + per: + type: + type: enum + symbols: + - pound + - kilogram + jsonldPredicate: "#per" + weight: float + +- name: ByCount + doc: | + A product, sold by count. The count must be a integer value. + type: record + extends: Product + fields: + per: + type: + type: enum + symbols: + - item + jsonldPredicate: "#per" + count: int + +- name: Basket + doc: | + A basket of products. The 'documentRoot' field indicates it is a + valid starting point for a document. The 'basket' field will + validate subtypes of 'Product' (ByWeight and ByCount). + type: record + documentRoot: true + fields: + basket: + type: + type: array + items: Product