From 10091d106d39966890dd70380b52ebdea6daaacc Mon Sep 17 00:00:00 2001 From: Evgeniy Date: Mon, 10 Mar 2014 16:18:26 +0100 Subject: [PATCH 01/11] Update README.md --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9877548..d63d83a 100644 --- a/README.md +++ b/README.md @@ -21,4 +21,13 @@ the drawing board. ;) Thanks to [@peterhost](https://github.com/peterhost) we now have a bookmarklet available (source: https://gist.github.com/1397528) for your use without having to modify your page's source code! Simply visit [this page](http://jsfiddle.net/peterhost/ZJfpL/14/embedded/result/) and drag -the link to your bookmark bar and you're set to go. \ No newline at end of file +the link to your bookmark bar and you're set to go. + +6.03.2014 - Changes made by Evgeniy Orlov, chilly_bang@yahoo.de + +-- schemas.js: Added 106 new classes with properties accordingly to official Schema Version 1.0f + +-- jquery.microdata.js: Added validations for number and data + +-- file schemas-stub.js added. File contains the part of code for adding new classes/properties to schemas.js. +For adding new classes/properties: open schemas-stub.js, copy and edit code, add the code to schemas.js, like it done there. From 2309fab93beb61f4d6d2cce467c0683d2a2f681d Mon Sep 17 00:00:00 2001 From: Evgeniy Date: Mon, 10 Mar 2014 16:19:21 +0100 Subject: [PATCH 02/11] Update jquery.microdata.js --- jquery.microdata.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/jquery.microdata.js b/jquery.microdata.js index 6d54726..d499bd9 100644 --- a/jquery.microdata.js +++ b/jquery.microdata.js @@ -32,9 +32,15 @@ float: function(value, el) { return (/^\d+([.,]\d*)?$/).test(value); }, + // ADD 6.03.2014: Number (both of int and float) Validation + number: function(value, el) { return (/(\d+(.\d+)?)/).test(value); }, + + // ADD 6.03.2014: Date Validation + date: function(value, el) { return (/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/).test(value); }, + // TODO: need a proper datetime validator datetime: function(value, el) { return (/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}(:\d{2})?)?$/).test(value); }, - + // TODO: check the duration per http://en.wikipedia.org/wiki/ISO_8601#Durations duration: function(value, el) { return (/^P(([0-9.,]+[YMD])*(T[0-9.,]+[HMS])*|[0-9.,]W)$/).test(value); }, @@ -44,6 +50,8 @@ // TODO: check three-letter ISO code for currency: http://www.iso.org/iso/support/faqs/faqs_widely_used_standards/widely_used_standards_other/currency_codes.htm currency: function(value, el) { return (/^[a-zA-Z]{3}$/).test(value); }, + //Validation TODOs: Geocoordinates, Geo-shape, Country: two-letter ISO 3166-1 alpha-2 + any: function(value, el) { return true; }, boolean: function(value, el) { return (/(True|False)/i).test(value); } From c6c59bc6b2277aea00dcdf4e28827604ef5d5843 Mon Sep 17 00:00:00 2001 From: Evgeniy Date: Mon, 10 Mar 2014 16:20:36 +0100 Subject: [PATCH 03/11] Update jquery.microdata.js --- jquery.microdata.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/jquery.microdata.js b/jquery.microdata.js index d499bd9..37a6910 100644 --- a/jquery.microdata.js +++ b/jquery.microdata.js @@ -32,10 +32,10 @@ float: function(value, el) { return (/^\d+([.,]\d*)?$/).test(value); }, - // ADD 6.03.2014: Number (both of int and float) Validation - number: function(value, el) { return (/(\d+(.\d+)?)/).test(value); }, + // ADD 6.03.2014: Number (both of int and float) Validation + number: function(value, el) { return (/(\d+(.\d+)?)/).test(value); }, - // ADD 6.03.2014: Date Validation + // ADD 6.03.2014: Date Validation date: function(value, el) { return (/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/).test(value); }, // TODO: need a proper datetime validator From 31373da9e194ac0235c800d401f5919fc8c3c8f9 Mon Sep 17 00:00:00 2001 From: Evgeniy Date: Mon, 10 Mar 2014 16:23:02 +0100 Subject: [PATCH 04/11] Create schemas-stub.js.txt --- schemas-stub.js.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 schemas-stub.js.txt diff --git a/schemas-stub.js.txt b/schemas-stub.js.txt new file mode 100644 index 0000000..035d3c7 --- /dev/null +++ b/schemas-stub.js.txt @@ -0,0 +1,18 @@ +schemaOrg.push({ + url: "http://schema.org/Class", // Class to describe + fields: extend(findByUrl(schemaOrg, "http://schema.org/ParentClass"), [ //Parent class + + {name: "exampleProperty", required: false, type: "complex", validator: validators.complex }, // List of (mostly validated) Properties + {name: "", required: false, type: "text", validator: validators.text }, // Validations are done in the jquery.microdata.js + {name: "", required: false, type: "url", validator: validators.url }, // Property type "complex" is the property, with expected type is a node/another class + {name: "", required: false, type: "date", validator: validators.date }, + {name: "", required: false, type: "datetime", validator: validators.datetime}, + {name: "", required: false, type: "duration", validator: validators.duration}, + {name: "", required: false, type: "number", validator: validators.number }, + {name: "", required: false, type: "int", validator: validators.int }, + {name: "", required: false, type: "boolean", validator: validators.boolean }, + {name: "", required: false, type: "email", validator: validators.email }, + {name: "", required: false, type: "currency", validator: validators.currency} + + ]) +}); From 28426d8a03c3c5a906e10d42cee66534fb653bdd Mon Sep 17 00:00:00 2001 From: Evgeniy Date: Mon, 10 Mar 2014 16:24:16 +0100 Subject: [PATCH 05/11] Update schemas.js --- schemas.js | 1917 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 1769 insertions(+), 148 deletions(-) diff --git a/schemas.js b/schemas.js index e223c50..824445d 100644 --- a/schemas.js +++ b/schemas.js @@ -107,199 +107,1820 @@ } ]; - // add the data-vocabulary.org validators to the plugin for (var i = 0; i < dataVocabulary.length; i++) { $.microdata.addDefinition(dataVocabulary[i].url, dataVocabulary[i].fields); } // This section pertains to the schema.org definitions - - var schemaOrg = [ - { - url: "http://schema.org/Thing", - fields: [ - { name: "description", required: false, type: "text", validator: validators.text }, - { name: "image", required: false, type: "url", validator: validators.url }, - { name: "name", required: false, type: "text", validator: validators.text }, - { name: "url", required: false, type: "url", validator: validators.url } - ] - } - ]; + + //Thing Updated to official Schema Version 1.0f +var schemaOrg = [ + { + url: "http://schema.org/Thing", + fields: [ + + { name: "name", required: false, type: "text", validator: validators.text }, + { name: "alternateName", required: false, type: "text", validator: validators.text }, + { name: "description", required: false, type: "text", validator: validators.text }, + { name: "image", required: false, type: "url", validator: validators.url }, + { name: "url", required: false, type: "url", validator: validators.url }, + { name: "additionalType", required: false, type: "url", validator: validators.url }, + { name: "sameAs", required: false, type: "url", validator: validators.url } + + ] + } +]; + + //Event Updated to official Schema Version 1.0f schemaOrg.push({ url: "http://schema.org/Event", fields: extend(findByUrl(schemaOrg, "http://schema.org/Thing"), [ - { name: "attendees", required: false, type: "complex", validator: validators.complex }, // child elements of type Person or Organization - { name: "duration", required: false, type: "duration", validator: validators.duration }, - { name: "endDate", required: false, type: "datetime", validator: validators.datetime }, - { name: "location", required: false, type: "complex", validator: validators.complex }, // child elements of type Place or PostalAddress - { name: "offers", required: false, type: "complex", validator: validators.complex }, // child elements of type Offer - { name: "performers", required: false, type: "complex", validator: validators.complex }, // child elements of type Person or Organization - { name: "startDate", required: false, type: "datetime", validator: validators.datetime }, - { name: "subEvents", required: false, type: "complex", validator: validators.complex }, // child elements of type Event - { name: "superEvent", required: false, type: "complex", validator: validators.complex } // a child element of type Event + + {name: "attendee", required: false, type: "complex", validator: validators.complex }, // new, child elements of type Person or Organization + {name: "doorTime", required: false, type: "datetime", validator: validators.datetime }, // new, + { name: "attendees", required: false, type: "complex", validator: validators.complex }, // child elements of type Person or Organization + {name: "doorTime", required: false, type: "datetime", validator: validators.datetime }, + { name: "duration", required: false, type: "duration", validator: validators.duration }, + { name: "endDate", required: false, type: "datetime", validator: validators.datetime }, + {name: "eventStatus", required: false, type: "complex", validator: validators.complex }, + { name: "location", required: false, type: "complex", validator: validators.complex }, // child elements of type Place or PostalAddress + { name: "offers", required: false, type: "complex", validator: validators.complex }, // child elements of type Offer + {name: "performer", required: false, type: "complex", validator: validators.complex }, + { name: "performers", required: false, type: "complex", validator: validators.complex }, // child elements of type Person or Organization + {name: "previousStartDate", required: false, type: "date", validator: validators.date }, + { name: "startDate", required: false, type: "datetime", validator: validators.datetime }, + {name: "subEvent", required: false, type: "complex", validator: validators.complex }, // new, child elements of type Event + { name: "subEvents", required: false, type: "complex", validator: validators.complex }, // child elements of type Event + { name: "superEvent", required: false, type: "complex", validator: validators.complex }, // a child element of type Event + {name: "typicalAgeRange", required: false, type: "text", validator: validators.text } + ]) }); - schemaOrg.push({ + + //Organization Updated to official Schema Version 1.0f + schemaOrg.push({ url: "http://schema.org/Organization", fields: extend(findByUrl(schemaOrg, "http://schema.org/Thing"), [ - { name: "address", required: false, type: "complex", validator: validators.complex }, // a child element of PostalAddress - { name: "aggregatRating", required: false, type: "complex", validator: validators.complex }, // a child element of AggregateRating - { name: "contactPoints", required: false, type: "complex", validator: validators.complex }, // child elements of ContactPoint - { name: "email", required: false, type: "text", validator: validators.email }, - { name: "employees", required: false, type: "complex", validator: validators.complex }, // child elements of Person - { name: "events", required: false, type: "complex", validator: validators.complex }, // a child element of Event - { name: "faxNumber", required: false, type: "text", validator: validators.text }, - { name: "founders", required: false, type: "complex", validator: validators.complex }, // child elements of type Person - { name: "foundingDate", required: false, type: "datetime", validator: validators.datetime }, - { name: "interactionCount", required: false, type: "text", validator: validators.text }, // should be one of the types of UserInteraction - { name: "location", required: false, type: "complex", validator: validators.complex }, // a child element of Place or PostalAddress - { name: "members", required: false, type: "complex", validator: validators.complex }, // child elements of Person or Organization - { name: "reviews", required: false, type: "complex", validator: validators.complex }, // child elements of Review - { name: "telephone", required: false, type: "text", validator: validators.text } + + { name: "address", required: false, type: "complex", validator: validators.complex }, // a child element of PostalAddress + { name: "aggregatRating", required: false, type: "complex", validator: validators.complex }, // a child element of AggregateRating + {name: "brand", required: false, type: "complex", validator: validators.complex }, //new, a child element of Brand or Organization + {name: "contactPoint", required: false, type: "complex", validator: validators.complex }, //new, child elements of ContactPoint + { name: "contactPoints", required: false, type: "complex", validator: validators.complex }, // child elements of ContactPoint + {name: "department", required: false, type: "complex", validator: validators.complex }, //new, a child element of Organization + {name: "duns", required: false, type: "text", validator: validators.text }, //new + { name: "email", required: false, type: "text", validator: validators.email }, //new + {name: "employee", required: false, type: "complex", validator: validators.complex }, //new, child elements of Person + { name: "employees", required: false, type: "complex", validator: validators.complex }, // child elements of Person + {name: "event", required: false, type: "complex", validator: validators.complex }, //new, a child element of Event + { name: "events", required: false, type: "complex", validator: validators.complex }, // a child element of Event + { name: "faxNumber", required: false, type: "text", validator: validators.text }, + {name: "founder", required: false, type: "complex", validator: validators.complex }, //new, a child element of Person + { name: "founders", required: false, type: "complex", validator: validators.complex }, // child elements of type Person + { name: "foundingDate", required: false, type: "datetime", validator: validators.datetime }, + {name: "globalLocationNumber", required: false, type: "text", validator: validators.text }, //new + {name: "hasPOS", required: false, type: "complex", validator: validators.complex }, //new, a child element of Place + { name: "interactionCount", required: false, type: "text", validator: validators.text }, // should be one of the types of UserInteraction + {name: "isicV4", required: false, type: "text", validator: validators.text }, //new + {name: "legalName", required: false, type: "text", validator: validators.text }, //new + { name: "location", required: false, type: "complex", validator: validators.complex }, // a child element of Place or PostalAddress + {name: "logo", required: false, type: "complex", validator: validators.complex }, //new, a child element of ImageObject or URL + {name: "makesOffer", required: false, type: "complex", validator: validators.complex }, //new, a child element of Offer + {name: "member", required: false, type: "complex", validator: validators.complex }, //new, a child element of Person or Organization + { name: "members", required: false, type: "complex", validator: validators.complex }, // a child element of Person or Organization + {name: "naics", required: false, type: "text", validator: validators.text }, //new + {name: "owns", required: false, type: "complex", validator: validators.complex }, //new, a child element of OwnershipInfo or Product + {name: "review", required: false, type: "complex", validator: validators.complex }, //new, child elements of Review + { name: "reviews", required: false, type: "complex", validator: validators.complex }, // child elements of Review + {name: "seeks", required: false, type: "text", validator: validators.text }, //new, a child element of Demand + {name: "subOrganization", required: false, type: "complex", validator: validators.complex }, //new, a child element of Organization + {name: "taxID", required: false, type: "text", validator: validators.text }, //new + { name: "telephone", required: false, type: "text", validator: validators.text }, + {name: "vatID", required: false, type: "text", validator: validators.text } + ]) }); + schemaOrg.push({ url: "http://schema.org/Intangible", fields: extend(findByUrl(schemaOrg, "http://schema.org/Thing"), []) }); - schemaOrg.push({ - url: "http://schema.org/Product", - fields: extend(findByUrl(schemaOrg, "http://schema.org/Thing"), [ - { name: "aggregateRating", required: false, type: "complex", validator: validators.complex }, // a child element of AggregateRating - { name: "brand", required: false, type: "complex", validator: validators.complex }, // a child element of Organization - { name: "manufacturer", required: false, type: "complex", validator: validators.complex }, // a child element of Organization - { name: "model", required: false, type: "text", validator: validators.text }, - { name: "offers", required: false, type: "complex", validator: validators.complex }, // child elements of Offer - { name: "productId", required: false, type: "text", validator: validators.text }, - { name: "reviews", required: false, type: "complex", validator: validators.complex } // child elements of Review - ]) - }); - schemaOrg.push({ + + //Product Updated to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Product", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Thing"), [ + + { name: "aggregateRating", required: false, type: "complex", validator: validators.complex }, // a child element of AggregateRating + {name: "audience", required: false, type: "complex", validator: validators.complex }, // new, a child element of Audience + { name: "brand", required: false, type: "complex", validator: validators.complex }, // a child element of Organization + {name: "color", required: false, type: "text", validator: validators.text }, // new, + {name: "depth", required: false, type: "complex", validator: validators.complex }, // new, Distance or QuantitativeValue + {name: "gtin13", required: false, type: "text", validator: validators.text }, // new, + {name: "gtin14", required: false, type: "text", validator: validators.text }, // new, + {name: "gtin8", required: false, type: "text", validator: validators.text }, // new, + {name: "height", required: false, type: "complex", validator: validators.complex }, // new, Distance or QuantitativeValue + {name: "isAccessoryOrSparePartFor", required: false, type: "complex", validator: validators.complex }, // new, + {name: "isConsumableFor", required: false, type: "complex", validator: validators.complex }, // new, + {name: "isRelatedTo", required: false, type: "complex", validator: validators.complex }, // new, + {name: "itemCondition", required: false, type: "complex", validator: validators.complex }, // new, + {name: "logo", required: false, type: "complex", validator: validators.complex }, // new, + { name: "manufacturer", required: false, type: "complex", validator: validators.complex }, // a child element of Organization + { name: "model", required: false, type: "text", validator: validators.text }, + {name: "mpn", required: false, type: "text", validator: validators.text }, // new, + { name: "offers", required: false, type: "complex", validator: validators.complex }, // child elements of Offer + { name: "productId", required: false, type: "text", validator: validators.text }, + {name: "releaseDate", required: false, type: "date", validator: validators.date }, // new, + {name: "review", required: false, type: "complex", validator: validators.complex }, // new, + { name: "reviews", required: false, type: "complex", validator: validators.complex }, // child elements of Review + {name: "sku", required: false, type: "text", validator: validators.text }, // new, + {name: "weight", required: false, type: "complex", validator: validators.complex }, // new, QuantitativeValue + {name: "width", required: false, type: "complex", validator: validators.complex } + + ]) +}); + + //CreativeWork Updated to official Schema Version 1.0f + schemaOrg.push({ url: "http://schema.org/CreativeWork", fields: extend(findByUrl(schemaOrg, "http://schema.org/Thing"), [ - {name: "about", required: false, type: "complex", validator: validators.text }, - {name: "accountablePerson", required: false, type: "complex", validator: validators.text }, - {name: "aggregateRating", required: false, type: "complex", validator: validators.text }, - {name: "alternativeHeadline", required: false, type: "text", validator: validators.text }, - {name: "associatedMedia", required: false, type: "complex", validator: validators.text }, - {name: "audience", required: false, type: "complex", validator: validators.text }, - {name: "audio", required: false, type: "complex", validator: validators.complex }, - {name: "author", required: false, type: "complex", validator: validators.complex }, - {name: "award", required: false, type: "text", validator: validators.text }, - {name: "awards", required: false, type: "text", validator: validators.text }, - {name: "comment", required: false, type: "complex", validator: validators.complex }, - {name: "contentLocation", required: false, type: "complex", validator: validators.complex }, - {name: "contentRating", required: false, type: "text", validator: validators.text }, - {name: "contributor", required: false, type: "complex", validator: validators.complex }, - {name: "copyrightHolder", required: false, type: "complex", validator: validators.complex }, - {name: "copyrightYear", required: false, type: "number", validator: validators.number }, - {name: "creator", required: false, type: "complex", validator: validators.complex }, - {name: "dateCreated", required: false, type: "datetime", validator: validators.datetime }, - {name: "dateModified", required: false, type: "datetime", validator: validators.datetime }, - {name: "datePublished", required: false, type: "datetime", validator: validators.datetime }, - {name: "discussionUrl", required: false, type: "url", validator: validators.url }, - {name: "editor", required: false, type: "complex", validator: validators.complex }, - {name: "educationalAlignment", required: false, type: "complex", validator: validators.complex }, - {name: "educationalUse", required: false, type: "text", validator: validators.text }, - {name: "encoding", required: false, type: "complex", validator: validators.complex }, - {name: "encodings", required: false, type: "complex", validator: validators.complex }, - {name: "genre", required: false, type: "text", validator: validators.text }, - {name: "headline", required: false, type: "text", validator: validators.text }, - {name: "inLanguage", required: false, type: "text", validator: validators.text }, - {name: "interactionCount", required: false, type: "text", validator: validators.text }, - {name: "interactivityType", required: false, type: "text", validator: validators.text }, - {name: "isBasedOnUrl", required: false, type: "url", validator: validators.url }, - {name: "isFamilyFriendly", required: false, type: "boolean", validator: validators.boolean }, - {name: "keywords", required: false, type: "text", validator: validators.text }, - {name: "learningResourceType", required: false, type: "text", validator: validators.text }, - {name: "mentions", required: false, type: "complex", validator: validators.complex }, - {name: "offers", required: false, type: "complex", validator: validators.complex }, - {name: "provider", required: false, type: "complex", validator: validators.complex }, - {name: "publisher", required: false, type: "complex", validator: validators.complex }, - {name: "publishingPrinciples", required: false, type: "url", validator: validators.url }, - {name: "review", required: false, type: "complex", validator: validators.complex }, - {name: "reviews", required: false, type: "complex", validator: validators.complex }, - {name: "sourceOrganization", required: false, type: "complex", validator: validators.complex }, - {name: "text", required: false, type: "text", validator: validators.text }, - {name: "thumbnailUrl", required: false, type: "url", validator: validators.url }, - {name: "timeRequired", required: false, type: "duration", validator: validators.duration }, - {name: "typicalAgeRange", required: false, type: "text", validator: validators.text }, - {name: "version", required: false, type: "number", validator: validators.number }, - {name: "video" , required: false, type: "complex", validator: validators.complex } + + {name: "about", required: false, type: "complex", validator: validators.text }, + {name: "accessibilityAPI", required: false, type: "text", validator: validators.text }, // new + {name: "accessibilityControl", required: false, type: "text", validator: validators.text }, // new + {name: "accessibilityFeature", required: false, type: "text", validator: validators.text }, // new + {name: "accessibilityHazard", required: false, type: "text", validator: validators.text }, // new + {name: "accountablePerson", required: false, type: "complex", validator: validators.text }, + {name: "aggregateRating", required: false, type: "complex", validator: validators.text }, + {name: "alternativeHeadline", required: false, type: "text", validator: validators.text }, + {name: "associatedMedia", required: false, type: "complex", validator: validators.text }, + {name: "audience", required: false, type: "complex", validator: validators.text }, + {name: "audio", required: false, type: "complex", validator: validators.complex }, + {name: "author", required: false, type: "complex", validator: validators.complex }, + {name: "award", required: false, type: "text", validator: validators.text }, + {name: "awards", required: false, type: "text", validator: validators.text }, + {name: "comment", required: false, type: "complex", validator: validators.complex }, + {name: "contentLocation", required: false, type: "complex", validator: validators.complex }, + {name: "contentRating", required: false, type: "text", validator: validators.text }, + {name: "contributor", required: false, type: "complex", validator: validators.complex }, + {name: "copyrightHolder", required: false, type: "complex", validator: validators.complex }, + {name: "copyrightYear", required: false, type: "number",validator: validators.number }, + {name: "creator", required: false, type: "complex", validator: validators.complex }, + {name: "dateCreated", required: false, type: "date", validator: validators.date }, // Changed from datetime to date, accordingly to official Schema Version 1.0f + {name: "dateModified", required: false, type: "date", validator: validators.date }, // Changed from datetime to date, accordingly to official Schema Version 1.0f + {name: "datePublished", required: false, type: "date", validator: validators.date }, // Changed from datetime to date, accordingly to official Schema Version 1.0f + {name: "discussionUrl", required: false, type: "url", validator: validators.url }, + {name: "editor", required: false, type: "complex", validator: validators.complex }, + {name: "educationalAlignment", required: false, type: "complex", validator: validators.complex }, + {name: "educationalUse", required: false, type: "text", validator: validators.text }, + {name: "encoding", required: false, type: "complex", validator: validators.complex }, + {name: "encodings", required: false, type: "complex", validator: validators.complex }, + {name: "genre", required: false, type: "text", validator: validators.text }, + {name: "headline", required: false, type: "text", validator: validators.text }, + {name: "inLanguage", required: false, type: "text", validator: validators.text }, + {name: "interactionCount", required: false, type: "text", validator: validators.text }, + {name: "interactivityType", required: false, type: "text", validator: validators.text }, + {name: "isBasedOnUrl", required: false, type: "url", validator: validators.url }, + {name: "isFamilyFriendly", required: false, type: "boolean", validator: validators.boolean }, + {name: "keywords", required: false, type: "text", validator: validators.text }, + {name: "learningResourceType", required: false, type: "text", validator: validators.text }, + {name: "mentions", required: false, type: "complex", validator: validators.complex }, + {name: "offers", required: false, type: "complex", validator: validators.complex }, + {name: "provider", required: false, type: "complex", validator: validators.complex }, + {name: "publisher", required: false, type: "complex", validator: validators.complex }, + {name: "publishingPrinciples", required: false, type: "url", validator: validators.url }, + {name: "review", required: false, type: "complex", validator: validators.complex }, + {name: "reviews", required: false, type: "complex", validator: validators.complex }, + {name: "sourceOrganization", required: false, type: "complex", validator: validators.complex }, + {name: "text", required: false, type: "text", validator: validators.text }, + {name: "thumbnailUrl", required: false, type: "url", validator: validators.url }, + {name: "timeRequired", required: false, type: "duration", validator: validators.duration }, + {name: "typicalAgeRange", required: false, type: "text", validator: validators.text }, + {name: "version", required: false, type: "number", validator: validators.number }, + {name: "video" , required: false, type: "complex", validator: validators.complex } + ]) }); + schemaOrg.push({ url: "http://schema.org/Book", fields: extend(findByUrl(schemaOrg, "http://schema.org/CreativeWork"), [ - { name: "bookEdition", required: false, type: "text", validator: validators.text }, - { name: "bookFormat", required: false, type: "complex", validator: validators.complex }, - { name: "illustrator", required: false, type: "complex", validator: validators.complex }, - { name: "isbn", required: false, type: "text", validator: validators.text }, - { name: "numberOfPages", required: false, type: "int", validator: validators.int } + + { name: "bookEdition", required: false, type: "text", validator: validators.text }, + { name: "bookFormat", required: false, type: "complex", validator: validators.complex }, + { name: "illustrator", required: false, type: "complex", validator: validators.complex }, + { name: "isbn", required: false, type: "text", validator: validators.text }, + { name: "numberOfPages", required: false, type: "int", validator: validators.int } + ]) }); + + //Person Updated to official Schema Version 1.0f schemaOrg.push({ url: "http://schema.org/Person", fields: extend(findByUrl(schemaOrg, "http://schema.org/Thing"), [ - { name: "additionalName", required: false, type: "text", validator: validators.text }, - { name: "address", required: false, type: "complex", validator: validators.complex }, // a child element of PostalAddress - { name: "affiliation", required: false, type: "complex", validator: validators.complex }, // a child element of Organization - { name: "alumniOf", required: false, type: "complex", validator: validators.complex }, // a child element of EducationalOrganization - { name: "awards", required: false, type: "text", validator: validators.text }, - { name: "birthDate", required: false, type: "datetime", validator: validators.datetime }, - { name: "children", required: false, type: "complex", validator: validators.complex }, // child elements of Person - { name: "colleagues", required: false, type: "complex", validator: validators.complex }, // child elements of Person - { name: "contactPoints", required: false, type: "complex", validator: validators.complex }, // child elements of ContactPoint - { name: "deathDate", required: false, type: "datetime", validator: validators.datetime }, // hopefully null - { name: "email", required: false, type: "email", validator: validators.email }, - { name: "familyName", required: false, type: "text", validator: validators.text }, - { name: "faxNumber", required: false, type: "text", validator: validators.text }, - { name: "follows", required: false, type: "complex", validator: validators.complex }, // child elements of Person - { name: "gender", required: false, type: "text", validator: validators.text }, // oddly enough, does not enumerate valid values - { name: "givenName", required: false, type: "text", validator: validators.text }, - { name: "homeLocation", required: false, type: "complex", validator: validators.complex }, // a child element of Place or ContactPoint - { name: "honorificPrefix", required: false, type: "text", validator: validators.text }, // something along the lines of Mr., Mrs., etc. - { name: "honorificSuffix", required: false, type: "text", validator: validators.text }, // similarly, M.D., PhD., etc. - { name: "interactionCount", required: false, type: "text", validator: validators.text }, // example: "20 UserLikes, 5 UserComments" - { name: "jobTitle", required: false, type: "text", validator: validators.text }, // example: "Lion tamer" - { name: "knows", required: false, type: "complex", validator: validators.complex }, // child elements of Person - { name: "memberOf", required: false, type: "complex", validator: validators.complex }, // child elements of Organization - { name: "nationality", required: false, type: "complex", validator: validators.complex }, // a child element of Country - { name: "parents", required: false, type: "complex", validator: validators.complex }, // child elements of Person - { name: "performerIn", required: false, type: "complex", validator: validators.complex }, // child elements of Event - { name: "relatedTo", required: false, type: "complex", validator: validators.complex }, // child elements of Person - { name: "siblings", required: false, type: "complex", validator: validators.complex }, // child elements of Person - { name: "spouse", required: false, type: "complex", validator: validators.complex }, // a child element of Person (as wrong as that sounds) - { name: "telephone", required: false, type: "text", validator: validators.text }, - { name: "workLocation", required: false, type: "complex", validator: validators.complex }, // a child element of Location or ContactPoint - { name: "worksFor", required: false, type: "complex", validator: validators.complex } // a child element of Organization + + { name: "additionalName", required: false, type: "text", validator: validators.text }, + { name: "address", required: false, type: "complex", validator: validators.complex }, // a child element of PostalAddress + { name: "affiliation", required: false, type: "complex", validator: validators.complex }, // a child element of Organization + { name: "alumniOf", required: false, type: "complex", validator: validators.complex }, // a child element of EducationalOrganization + {name: "award", required: false, type: "text", validator: validators.text }, //new, + { name: "awards", required: false, type: "text", validator: validators.text }, + { name: "birthDate", required: false, type: "datetime", validator: validators.datetime }, + {name: "brand", required: false, type: "complex", validator: validators.complex }, //new, + { name: "children", required: false, type: "complex", validator: validators.complex }, // child elements of Person + {name: "colleague", required: false, type: "complex", validator: validators.complex }, //new, + { name: "colleagues", required: false, type: "complex", validator: validators.complex }, // child elements of Person + {name: "contactPoints", required: false, type: "complex", validator: validators.complex }, //new, child elements of ContactPoint + { name: "contactPoints", required: false, type: "complex", validator: validators.complex }, // child elements of ContactPoint + { name: "deathDate", required: false, type: "datetime", validator: validators.datetime }, // hopefully null + {name: "duns", required: false, type: "text", validator: validators.text }, //new, + { name: "email", required: false, type: "email", validator: validators.email }, + { name: "familyName", required: false, type: "text", validator: validators.text }, + { name: "faxNumber", required: false, type: "text", validator: validators.text }, + { name: "follows", required: false, type: "complex", validator: validators.complex }, // child elements of Person + { name: "gender", required: false, type: "text", validator: validators.text }, // oddly enough, does not enumerate valid values + { name: "givenName", required: false, type: "text", validator: validators.text }, + {name: "globalLocationNumber", required: false, type: "text", validator: validators.text }, //new, + {name: "hasPOS", required: false, type: "complex", validator: validators.complex }, //new, a child element of Place + { name: "homeLocation", required: false, type: "complex", validator: validators.complex }, // a child element of Place or ContactPoint + { name: "honorificPrefix", required: false, type: "text", validator: validators.text }, // something along the lines of Mr., Mrs., etc. + { name: "honorificSuffix", required: false, type: "text", validator: validators.text }, // similarly, M.D., PhD., etc. + { name: "interactionCount", required: false, type: "text", validator: validators.text }, // example: "20 UserLikes, 5 UserComments" + {name: "isicV4", required: false, type: "text", validator: validators.text }, //new, + { name: "jobTitle", required: false, type: "text", validator: validators.text }, // example: "Lion tamer" + { name: "knows", required: false, type: "complex", validator: validators.complex }, // child elements of Person + {name: "makesOffer", required: false, type: "complex", validator: validators.complex }, //new, a child element of Offer + { name: "memberOf", required: false, type: "complex", validator: validators.complex }, // child elements of Organization + {name: "naics", required: false, type: "text", validator: validators.text }, //new, + { name: "nationality", required: false, type: "complex", validator: validators.complex }, // a child element of Country + {name: "owns", required: false, type: "complex", validator: validators.complex }, //new, + {name: "parent", required: false, type: "complex", validator: validators.complex }, //new, a child element of Person + { name: "parents", required: false, type: "complex", validator: validators.complex }, // child elements of Person + { name: "performerIn", required: false, type: "complex", validator: validators.complex }, // child elements of Event + { name: "relatedTo", required: false, type: "complex", validator: validators.complex }, // child elements of Person + {name: "seeks", required: false, type: "text", validator: validators.text }, //new, + { name: "siblings", required: false, type: "complex", validator: validators.complex }, // child elements of Person + { name: "spouse", required: false, type: "complex", validator: validators.complex }, // a child element of Person (as wrong as that sounds) + {name: "taxID", required: false, type: "text", validator: validators.text }, //new, + { name: "telephone", required: false, type: "text", validator: validators.text }, + {name: "vatID", required: false, type: "text", validator: validators.text }, //new, + { name: "workLocation", required: false, type: "complex", validator: validators.complex }, // a child element of Location or ContactPoint + { name: "worksFor", required: false, type: "complex", validator: validators.complex } // a child element of Organization + ]) }); + //Offer Updated to official Schema Version 1.0f schemaOrg.push({ url: "http://schema.org/Offer", fields: extend(findByUrl(schemaOrg, "http://schema.org/Intangible"), [ - { name: "aggregateRating", required: false, type: "complex", validator: validators.complex }, // AggregateRating schema child element - { name: "availability", required: false, type: "complex", validator: validators.complex }, // ItemAvailability schema child element - { name: "itemCondition", required: false, type: "complex", validator: validators.complex }, // OfferItemCondition schema child element - { name: "itemOffered", required: false, type: "complex", validator: validators.complex }, // Product schema child element - { name: "price", required: false, type: "text", validator: validators.text }, - { name: "priceCurrency", required: false, type: "text", validator: validators.text }, - { name: "priceValidUntil", required: false, type: "text", validator: validators.text }, - { name: "reviews", required: false, type: "complex", validator: validators.complex }, // Review schema child element - { name: "seller", required: false, type: "complex", validator: validators.complex } // Organization schema child element + + {name: "acceptedPaymentMethod", required: false, type: "complex", validator: validators.complex }, //new, a child element of PaymentMethod + {name: "addOn", required: false, type: "complex", validator: validators.complex }, //new, a child element of Offer + {name: "advanceBookingRequirement",required: false, type: "complex", validator: validators.complex }, //new, a child element of QuantitativeValue + { name: "aggregateRating", required: false, type: "complex", validator: validators.complex }, // AggregateRating schema child element + { name: "availability", required: false, type: "complex", validator: validators.complex }, // ItemAvailability schema child element + {name: "availabilityEnds", required: false, type: "datetime", validator: validators.datetime }, //new, + {name: "availabilityStarts", required: false, type: "datetime", validator: validators.datetime }, //new, + {name: "availableAtOrFrom", required: false, type: "complex", validator: validators.complex }, //new, + {name: "availableDeliveryMethod", required: false, type: "complex", validator: validators.complex }, //new, a child element of DeliveryMethod + {name: "businessFunction", required: false, type: "complex", validator: validators.complex }, //new, a child element of BusinessFunction + {name: "category", required: false, type: "complex", validator: validators.complex }, + {name: "deliveryLeadTime", required: false, type: "complex", validator: validators.complex }, //new, a child element of QuantitativeValue + {name: "eligibleCustomerType", required: false, type: "complex", validator: validators.complex }, //new, a child element of BusinessEntityType + {name: "eligibleDuration", required: false, type: "complex", validator: validators.complex }, //new, a child element of QuantitativeValue + {name: "eligibleQuantity", required: false, type: "complex", validator: validators.complex }, //new, a child element of QuantitativeValue + {name: "eligibleRegion", required: false, type: "text", validator: validators.text }, //new, + {name: "eligibleTransactionVolume", required: false, type: "complex", validator: validators.complex }, //new, a child element of PriceSpecification + {name: "gtin8", required: false, type: "text", validator: validators.text }, //new, + {name: "gtin13", required: false, type: "text", validator: validators.text }, //new, + {name: "gtin14", required: false, type: "text", validator: validators.text }, //new, + {name: "includesObject", required: false, type: "complex", validator: validators.complex }, //new, a child element of TypeAndQuantityNode + {name: "inventoryLevel", required: false, type: "complex", validator: validators.complex }, //new, a child element of QuantitativeValue + { name: "itemCondition", required: false, type: "complex", validator: validators.complex }, // OfferItemCondition schema child element + { name: "itemOffered", required: false, type: "complex", validator: validators.complex }, // Product schema child element + {name: "mpn", required: false, type: "text", validator: validators.text }, //new, + { name: "price", required: false, type: "text", validator: validators.text }, + { name: "priceCurrency", required: false, type: "currency", validator: validators.currency }, + {name: "priceSpecification", required: false, type: "complex", validator: validators.complex }, //new, a child element of PriceSpecification + { name: "priceValidUntil", required: false, type: "text", validator: validators.text }, + {name: "review", required: false, type: "complex", validator: validators.complex }, //new, a child element of Review + { name: "reviews", required: false, type: "complex", validator: validators.complex }, // a child element of Review + { name: "seller", required: false, type: "complex", validator: validators.complex }, // Organization schema child element + {name: "serialNumber", required: false, type: "text", validator: validators.text }, //new, + {name: "sku", required: false, type: "text", validator: validators.text }, //new, + {name: "validFrom", required: false, type: "datetime", validator: validators.datetime }, //new, + {name: "validThrough", required: false, type: "datetime", validator: validators.datetime }, //new, + {name: "warranty", required: false, type: "complex", validator: validators.complex } + ]) }); + schemaOrg.push({ url: "http://schema.org/AggregateOffer", fields: extend(findByUrl(schemaOrg, "http://schema.org/Offer"), [ - { name: "highPrice", required: false, type: "text", validator: validators.text }, - { name: "lowPrice", required: false, type: "text", validator: validators.text }, + + { name: "highPrice", required: false, type: "text", validator: validators.text }, + { name: "lowPrice", required: false, type: "text", validator: validators.text }, { name: "offerCount", required: false, type: "text", validator: validators.text } + ]) }); - + +//WebPage, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/WebPage", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreativeWork"), [ + + {name: "breadcrumb", required: false, type: "text", validator: validators.text }, + {name: "isPartOf", required: false, type: "complex", validator: validators.complex }, + {name: "lastReviewed", required: false, type: "date", validator: validators.date }, + {name: "mainContentOfPage", required: false, type: "complex", validator: validators.complex }, + {name: "primaryImageOfPage", required: false, type: "complex", validator: validators.complex }, + {name: "relatedLink", required: false, type: "url", validator: validators.url }, + {name: "reviewedBy", required: false, type: "complex", validator: validators.complex }, + {name: "significantLink", required: false, type: "url", validator: validators.url }, + {name: "significantLinks", required: false, type: "url", validator: validators.url }, + {name: "specialty", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//MediaObject, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/MediaObject", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreativeWork"), [ + + {name: "associatedArticle", required: false, type: "complex", validator: validators.complex }, + {name: "bitrate", required: false, type: "text", validator: validators.text }, + {name: "contentSize", required: false, type: "text", validator: validators.text }, + {name: "contentUrl", required: false, type: "url", validator: validators.url }, + { name: "duration", required: false, type: "duration", validator: validators.duration }, + {name: "embedUrl", required: false, type: "url", validator: validators.url }, + {name: "encodesCreativeWork", required: false, type: "complex", validator: validators.complex }, + {name: "encodingFormat", required: false, type: "text", validator: validators.text }, + {name: "expires", required: false, type: "date", validator: validators.date }, + {name: "height", required: false, type: "complex", validator: validators.complex }, + {name: "playerType", required: false, type: "text", validator: validators.text }, + {name: "productionCompany", required: false, type: "complex", validator: validators.complex }, + {name: "publication", required: false, type: "complex", validator: validators.complex }, + {name: "regionsAllowed", required: false, type: "complex", validator: validators.complex }, + {name: "requiresSubscription", required: false, type: "boolean", validator: validators.boolean }, + {name: "uploadDate", required: false, type: "date", validator: validators.date }, + {name: "width", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//VideoObject, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/VideoObject", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MediaObject"), [ + + {name: "caption", required: false, type: "text", validator: validators.text }, + {name: "thumbnail", required: false, type: "complex", validator: validators.complex }, + {name: "transcript", required: false, type: "text", validator: validators.text }, + {name: "videoFrameSize", required: false, type: "text", validator: validators.text }, + {name: "videoQuality", required: false, type: "text", validator: validators.text } + + ]) +}); + +//Article, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Article", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreativeWork"), [ + + {name: "articleBody", required: false, type: "text", validator: validators.text }, + {name: "articleSection", required: false, type: "text", validator: validators.text }, + { name: "wordCount", required: false, type: "int", validator: validators.int } + + ]) +}); + +//BlogPosting, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/BlogPosting", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Article"), [ + + {name: "articleBody", required: false, type: "text", validator: validators.text }, + {name: "articleSection", required: false, type: "text", validator: validators.text }, + { name: "wordCount", required: false, type: "int", validator: validators.int } + + ]) +}); + +//ScholarlyArticle, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/ScholarlyArticle", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Article"), [ + + {name: "articleBody", required: false, type: "text", validator: validators.text }, + {name: "articleSection", required: false, type: "text", validator: validators.text }, + { name: "wordCount", required: false, type: "int", validator: validators.int } + + ]) +}); + +//ScholarlyArticle, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/MedicalScholarlyArticle", + fields: extend(findByUrl(schemaOrg, "http://schema.org/ScholarlyArticle"), [ + + {name: "publicationType", required: false, type: "text", validator: validators.text } + + ]) +}); + +//ScholarlyArticle, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/TechArticle", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Article"), [ + + {name: "dependencies", required: false, type: "text", validator: validators.text }, + {name: "proficiencyLevel", required: false, type: "text", validator: validators.text } + + ]) +}); + +//NewsArticle, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/NewsArticle", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Article"), [ + + {name: "dateline", required: false, type: "text", validator: validators.text }, + {name: "printColumn", required: false, type: "text", validator: validators.text }, + {name: "printEdition", required: false, type: "text", validator: validators.text }, + {name: "printPage", required: false, type: "text", validator: validators.text }, + {name: "printSection", required: false, type: "text", validator: validators.text } + + ]) +}); + +//ContactPoint, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/ContactPoint", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Thing"), [ + + {name: "areaServed", required: false, type: "complex", validator: validators.complex }, + {name: "availableLanguage", required: false, type: "complex", validator: validators.complex }, + {name: "contactOption", required: false, type: "complex", validator: validators.complex }, + {name: "contactType", required: false, type: "text", validator: validators.text }, + { name: "email", required: false, type: "email", validator: validators.email }, + {name: "faxNumber", required: false, type: "text", validator: validators.text }, + {name: "hoursAvailable", required: false, type: "complex", validator: validators.complex }, + {name: "productSupported", required: false, type: "complex", validator: validators.complex }, + {name: "telephone", required: false, type: "text", validator: validators.text } + + ]) +}); + +//PostalAddress, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/PostalAddress", + fields: extend(findByUrl(schemaOrg, "http://schema.org/ContactPoint"), [ + + {name: "addressCountry", required: false, type: "complex", validator: validators.complex }, + {name: "addressLocality", required: false, type: "text", validator: validators.text }, + {name: "addressRegion", required: false, type: "text", validator: validators.text }, + {name: "postalCode", required: false, type: "text", validator: validators.text }, + {name: "postOfficeBoxNumber", required: false, type: "text", validator: validators.text }, + {name: "streetAddress", required: false, type: "text", validator: validators.text } + + ]) +}); + +//MusicRecording, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/MusicRecording", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreativeWork"), [ + + {name: "byArtist", required: false, type: "complex", validator: validators.complex }, + { name: "duration", required: false, type: "duration", validator: validators.duration }, + {name: "inAlbum", required: false, type: "complex", validator: validators.complex }, + {name: "inPlaylist", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//Place, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Place", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Thing"), [ + + {name: "address", required: false, type: "complex", validator: validators.complex }, + {name: "aggregateRating", required: false, type: "complex", validator: validators.complex }, + {name: "containedIn", required: false, type: "complex", validator: validators.complex }, + {name: "event", required: false, type: "complex", validator: validators.complex }, + {name: "events", required: false, type: "complex", validator: validators.complex }, + {name: "faxNumber", required: false, type: "text", validator: validators.text }, + {name: "geo", required: false, type: "complex", validator: validators.complex }, + {name: "globalLocationNumber", required: false, type: "text", validator: validators.text }, + {name: "interactionCount", required: false, type: "text", validator: validators.text }, + {name: "isicV4", required: false, type: "text", validator: validators.text }, + {name: "logo", required: false, type: "complex", validator: validators.complex }, + {name: "map", required: false, type: "url", validator: validators.url }, + {name: "maps", required: false, type: "url", validator: validators.url }, + {name: "openingHoursSpecification", required: false, type: "complex", validator: validators.complex }, + {name: "photo", required: false, type: "complex", validator: validators.complex }, + {name: "photos", required: false, type: "complex", validator: validators.complex }, + {name: "review", required: false, type: "complex", validator: validators.complex }, + {name: "reviews", required: false, type: "complex", validator: validators.complex }, + {name: "telephone", required: false, type: "text", validator: validators.text } + + ]) +}); + +//LocalBusiness, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/LocalBusiness", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Organization"), [ + + {name: "branchOf", required: false, type: "complex", validator: validators.complex }, + { name: "currenciesAccepted", required: false, type: "currency", validator: validators.currency }, + { name: "openingHours", required: false, type: "duration", validator: validators.duration }, + {name: "paymentAccepted", required: false, type: "text", validator: validators.text }, + {name: "priceRange", required: false, type: "text", validator: validators.text } + + ]) +}); + +//Rating, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Rating", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Intangible"), [ + + {name: "bestRating", required: false, type: "text", validator: validators.text }, + {name: "ratingValue", required: false, type: "text", validator: validators.text }, + {name: "worstRating", required: false, type: "text", validator: validators.text } + + ]) +}); + +//AggregateRating, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/AggregateRating", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Rating"), [ + + {name: "itemReviewed", required: false, type: "complex", validator: validators.complex }, + { name: "ratingCount", required: false, type: "number", validator: validators.number }, + { name: "reviewCount", required: false, type: "number", validator: validators.number } + + ]) +}); + +//UserComments, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/UserComments", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Event"), [ + + {name: "commentText", required: false, type: "text", validator: validators.text }, + {name: "commentTime", required: false, type: "date", validator: validators.date }, + {name: "creator", required: false, type: "complex", validator: validators.complex }, + {name: "discusses", required: false, type: "complex", validator: validators.complex }, + {name: "replyToUrl", required: false, type: "url", validator: validators.url } + + ]) +}); + +//Review, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Review", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreativeWork"), [ + + {name: "itemReviewed", required: false, type: "complex", validator: validators.complex }, + {name: "reviewBody", required: false, type: "text", validator: validators.text }, + {name: "reviewRating", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//MusicGroup, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/MusicGroup", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Organization"), [ + + {name: "album", required: false, type: "complex", validator: validators.complex }, + {name: "albums", required: false, type: "complex", validator: validators.complex }, + {name: "musicGroupMember", required: false, type: "complex", validator: validators.complex }, + {name: "track", required: false, type: "complex", validator: validators.complex }, + {name: "tracks", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//JobPosting, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/JobPosting", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Intangible"), [ + + { name: "baseSalary", required: false, type: "number", validator: validators.number }, + {name: "benefits", required: false, type: "text", validator: validators.text }, + {name: "datePosted", required: false, type: "date", validator: validators.date }, + {name: "educationRequirements", required: false, type: "text", validator: validators.text }, + {name: "employmentType", required: false, type: "text", validator: validators.text }, + {name: "experienceRequirements", required: false, type: "text", validator: validators.text }, + {name: "hiringOrganization", required: false, type: "complex", validator: validators.complex }, + {name: "incentives", required: false, type: "text", validator: validators.text }, + {name: "industry", required: false, type: "text", validator: validators.text }, + {name: "jobLocation", required: false, type: "complex", validator: validators.complex }, + {name: "occupationalCategory", required: false, type: "text", validator: validators.text }, + {name: "qualifications", required: false, type: "text", validator: validators.text }, + {name: "responsibilities", required: false, type: "text", validator: validators.text }, + { name: "salaryCurrency", required: false, type: "currency", validator: validators.currency }, + {name: "skills", required: false, type: "text", validator: validators.text }, + {name: "specialCommitments", required: false, type: "text", validator: validators.text }, + {name: "title", required: false, type: "text", validator: validators.text }, + {name: "workHours", required: false, type: "text", validator: validators.text } + + ]) +}); + +//MusicPlaylist, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/MusicPlaylist", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreativeWork"), [ + + { name: "numTracks", required: false, type: "int", validator: validators.int }, + {name: "track", required: false, type: "complex", validator: validators.complex }, + {name: "tracks", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//MusicAlbum, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/MusicAlbum", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MusicPlaylist"), [ + + {name: "byArtist", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//Blog, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Blog", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreativeWork"), [ + + {name: "blogPost", required: false, type: "complex", validator: validators.complex }, + {name: "blogPosts", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//GeoCoordinates, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/GeoCoordinates", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Thing"), [ + + {name: "elevation", required: false, type: "text", validator: validators.text }, + {name: "latitude", required: false, type: "text", validator: validators.text }, + {name: "longitude", required: false, type: "text", validator: validators.text } + + ]) +}); + +//SoftwareApplication, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/SoftwareApplication", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreativeWork"), [ + + {name: "applicationCategory", required: false, type: "text", validator: validators.text }, + {name: "applicationSubCategory", required: false, type: "text", validator: validators.text }, + {name: "applicationSuite", required: false, type: "text", validator: validators.text }, + {name: "countriesNotSupported", required: false, type: "text", validator: validators.text }, + {name: "countriesSupported", required: false, type: "text", validator: validators.text }, + {name: "device", required: false, type: "text", validator: validators.text }, + {name: "downloadUrl", required: false, type: "url", validator: validators.url }, + {name: "featureList", required: false, type: "text", validator: validators.text }, + {name: "fileFormat", required: false, type: "text", validator: validators.text }, + { name: "fileSize", required: false, type: "int", validator: validators.int }, + {name: "installUrl", required: false, type: "url", validator: validators.url }, + {name: "memoryRequirements", required: false, type: "text", validator: validators.text }, + {name: "operatingSystem", required: false, type: "text", validator: validators.text }, + {name: "permissions", required: false, type: "text", validator: validators.text }, + {name: "processorRequirements", required: false, type: "text", validator: validators.text }, + {name: "releaseNotes", required: false, type: "text", validator: validators.text }, + {name: "requirements", required: false, type: "text", validator: validators.text }, + {name: "screenshot", required: false, type: "complex", validator: validators.complex }, + {name: "softwareVersion", required: false, type: "text", validator: validators.text }, + {name: "storageRequirements", required: false, type: "text", validator: validators.text } + + ]) +}); + +//MobileApplication, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/MobileApplication", + fields: extend(findByUrl(schemaOrg, "http://schema.org/SoftwareApplication"), [ + + {name: "carrierRequirements", required: false, type: "text", validator: validators.text } + + ]) +}); + +//WebApplication, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/WebApplication", + fields: extend(findByUrl(schemaOrg, "http://schema.org/SoftwareApplication"), [ + + {name: "browserRequirements", required: false, type: "text", validator: validators.text } + + ]) +}); + +//ItemList, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/ItemList", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreativeWork"), [ + + {name: "itemListElement", required: false, type: "text", validator: validators.text }, + {name: "itemListOrder", required: false, type: "text", validator: validators.text } + + ]) +}); + +//Movie, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Movie", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreativeWork"), [ + + {name: "actor", required: false, type: "complex", validator: validators.complex }, + {name: "actors", required: false, type: "complex", validator: validators.complex }, + {name: "director", required: false, type: "complex", validator: validators.complex }, + {name: "directors", required: false, type: "complex", validator: validators.complex }, + { name: "duration", required: false, type: "duration", validator: validators.duration }, + {name: "musicBy", required: false, type: "complex", validator: validators.complex }, + {name: "producer", required: false, type: "complex", validator: validators.complex }, + {name: "productionCompany", required: false, type: "complex", validator: validators.complex }, + {name: "trailer", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//Recipe, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Recipe", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreativeWork"), [ + + {name: "cookingMethod", required: false, type: "text", validator: validators.text }, + { name: "cookTime", required: false, type: "duration", validator: validators.duration }, + {name: "ingredients", required: false, type: "text", validator: validators.text }, + {name: "nutrition", required: false, type: "complex", validator: validators.complex }, + { name: "prepTime", required: false, type: "duration", validator: validators.duration }, + {name: "recipeCategory", required: false, type: "text", validator: validators.text }, + {name: "recipeCuisine", required: false, type: "text", validator: validators.text }, + {name: "recipeInstructions", required: false, type: "text", validator: validators.text }, + {name: "recipeYield", required: false, type: "text", validator: validators.text }, + { name: "totalTime", required: false, type: "duration", validator: validators.duration } + + ]) +}); + +//AggregateOffer, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/AggregateOffer", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Offer"), [ + + {name: "highPrice", required: false, type: "text", validator: validators.text }, + {name: "lowPrice", required: false, type: "text", validator: validators.text }, + {name: "offerCount", required: false, type: "int", validator: validators.int } + + ]) +}); + +//Series, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Series", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreativeWork"), [ + + {name: "actor", required: false, type: "complex", validator: validators.complex }, + {name: "actors", required: false, type: "complex", validator: validators.complex }, + {name: "director", required: false, type: "complex", validator: validators.complex }, + {name: "directors", required: false, type: "complex", validator: validators.complex }, + {name: "endDate", required: false, type: "date", validator: validators.date }, + {name: "episode", required: false, type: "complex", validator: validators.complex }, + {name: "episodes", required: false, type: "complex", validator: validators.complex }, + {name: "musicBy", required: false, type: "complex", validator: validators.complex }, + {name: "numberOfEpisodes", required: false, type: "text", validator: validators.text }, + {name: "numberOfSeasons", required: false, type: "text", validator: validators.text }, + {name: "producer", required: false, type: "complex", validator: validators.complex }, + {name: "productionCompany", required: false, type: "complex", validator: validators.complex }, + {name: "season", required: false, type: "complex", validator: validators.complex }, + {name: "seasons", required: false, type: "complex", validator: validators.complex }, + {name: "startDate", required: false, type: "date", validator: validators.date }, + {name: "trailer", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//Action, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Action", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Thing"), [ + + {name: "agent", required: false, type: "complex", validator: validators.complex }, + {name: "endTime", required: false, type: "datetime", validator: validators.datetime }, + {name: "instrument", required: false, type: "complex", validator: validators.complex }, + {name: "location", required: false, type: "complex", validator: validators.complex }, + {name: "object", required: false, type: "complex", validator: validators.complex }, + {name: "participant", required: false, type: "complex", validator: validators.complex }, + {name: "result", required: false, type: "complex", validator: validators.complex }, + {name: "startTime", required: false, type: "datetime", validator: validators.datetime } + ]) +}); + +//Clip, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Clip", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreativeWork"), [ + + { name: "clipNumber", required: false, type: "int", validator: validators.int }, + {name: "partOfEpisode", required: false, type: "complex", validator: validators.complex }, + {name: "partOfSeason", required: false, type: "complex", validator: validators.complex }, + {name: "partOfSeries", required: false, type: "complex", validator: validators.complex }, + {name: "position", required: false, type: "text", validator: validators.text }, + {name: "publication", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//TVClip, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/TVClip", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Clip"), [ + + {name: "partOfTVSeries", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//Dataset, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Dataset", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreativeWork"), [ + + {name: "catalog", required: false, type: "complex", validator: validators.complex }, + {name: "distribution", required: false, type: "complex", validator: validators.complex }, + {name: "spatial", required: false, type: "complex", validator: validators.complex }, + {name: "temporal", required: false, type: "datetime", validator: validators.datetime } + + ]) +}); + +//Diet, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Diet", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreativeWork"), [ + + {name: "dietFeatures", required: false, type: "text", validator: validators.text }, + {name: "endorsers", required: false, type: "complex", validator: validators.complex }, + {name: "expertConsiderations", required: false, type: "text", validator: validators.text }, + {name: "overview", required: false, type: "text", validator: validators.text }, + {name: "physiologicalBenefits", required: false, type: "text", validator: validators.text }, + {name: "proprietaryName", required: false, type: "text", validator: validators.text }, + {name: "risks", required: false, type: "text", validator: validators.text } + + ]) +}); + +//MedicalEntity, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/MedicalEntity", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Thing"), [ + + {name: "code", required: false, type: "complex", validator: validators.complex }, + {name: "guideline", required: false, type: "complex", validator: validators.complex }, + {name: "medicineSystem", required: false, type: "complex", validator: validators.complex }, + {name: "recognizingAuthority", required: false, type: "complex", validator: validators.complex }, + {name: "relevantSpecialty", required: false, type: "complex", validator: validators.complex }, + {name: "study", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//MedicalTherapy, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/MedicalTherapy", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MedicalEntity"), [ + + {name: "adverseOutcome", required: false, type: "complex", validator: validators.complex }, + {name: "contraindication", required: false, type: "complex", validator: validators.complex }, + {name: "duplicateTherapy", required: false, type: "complex", validator: validators.complex }, + {name: "indication", required: false, type: "complex", validator: validators.complex }, + {name: "seriousAdverseOutcome", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//Episode, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Episode", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreativeWork"), [ + + {name: "actor", required: false, type: "complex", validator: validators.complex }, + {name: "actors", required: false, type: "complex", validator: validators.complex }, + {name: "director", required: false, type: "complex", validator: validators.complex }, + {name: "directors", required: false, type: "complex", validator: validators.complex }, + { name: "episodeNumber", required: false, type: "int", validator: validators.int }, + {name: "musicBy", required: false, type: "complex", validator: validators.complex }, + {name: "partOfSeason", required: false, type: "complex", validator: validators.complex }, + {name: "partOfSeries", required: false, type: "complex", validator: validators.complex }, + {name: "position", required: false, type: "text", validator: validators.text }, + {name: "producer", required: false, type: "complex", validator: validators.complex }, + {name: "productionCompany", required: false, type: "complex", validator: validators.complex }, + {name: "publication", required: false, type: "complex", validator: validators.complex }, + {name: "trailer", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//TVEpisode, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/TVEpisode", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Episode"), [ + + {name: "partOfTVSeries", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//ExercisePlan, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/ExercisePlan", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreativeWork"), [ + + { name: "activityDuration", required: false, type: "duration", validator: validators.duration }, + {name: "activityFrequency", required: false, type: "text", validator: validators.text }, + {name: "additionalVariable", required: false, type: "text", validator: validators.text }, + {name: "exerciseType", required: false, type: "text", validator: validators.text }, + {name: "intensity", required: false, type: "text", validator: validators.text }, + { name: "repetitions", required: false, type: "number", validator: validators.number }, + {name: "restPeriods", required: false, type: "text", validator: validators.text }, + {name: "workload", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//Season, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Season", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreativeWork"), [ + + {name: "endDate", required: false, type: "date", validator: validators.date }, + {name: "episode", required: false, type: "complex", validator: validators.complex }, + {name: "episodes", required: false, type: "complex", validator: validators.complex }, + { name: "numberOfEpisodes", required: false, type: "number", validator: validators.number }, + {name: "partOfSeries", required: false, type: "complex", validator: validators.complex }, + {name: "position", required: false, type: "text", validator: validators.text }, + {name: "producer", required: false, type: "complex", validator: validators.complex }, + {name: "productionCompany", required: false, type: "complex", validator: validators.complex }, + { name: "seasonNumber", required: false, type: "int", validator: validators.int }, + {name: "startDate", required: false, type: "date", validator: validators.date }, + {name: "trailer", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//TVSeason, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/TVSeason", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Season"), [ + + {name: "partOfTVSeries", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//DeliveryEvent, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/DeliveryEvent", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Event"), [ + + {name: "accessCode", required: false, type: "text", validator: validators.text }, + {name: "availableFrom", required: false, type: "datetime", validator: validators.datetime }, + {name: "availableThrough", required: false, type: "datetime", validator: validators.datetime }, + {name: "hasDeliveryMethod", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//Demand, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Demand", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Intangible"), [ + + {name: "acceptedPaymentMethod", required: false, type: "complex", validator: validators.complex }, + {name: "advanceBookingRequirement", required: false, type: "complex", validator: validators.complex }, + {name: "availability", required: false, type: "complex", validator: validators.complex }, + {name: "availabilityEnds", required: false, type: "datetime", validator: validators.datetime }, + {name: "availabilityStarts", required: false, type: "datetime", validator: validators.datetime }, + {name: "availableAtOrFrom", required: false, type: "complex", validator: validators.complex }, + {name: "availableDeliveryMethod", required: false, type: "complex", validator: validators.complex }, + {name: "businessFunction", required: false, type: "complex", validator: validators.complex }, + {name: "deliveryLeadTime", required: false, type: "complex", validator: validators.complex }, + {name: "eligibleCustomerType", required: false, type: "complex", validator: validators.complex }, + {name: "eligibleDuration", required: false, type: "complex", validator: validators.complex }, + {name: "eligibleQuantity", required: false, type: "complex", validator: validators.complex }, + {name: "eligibleRegion", required: false, type: "complex", validator: validators.complex }, + {name: "eligibleTransactionVolume", required: false, type: "complex", validator: validators.complex }, + {name: "gtin13", required: false, type: "text", validator: validators.text }, + {name: "gtin14", required: false, type: "text", validator: validators.text }, + {name: "gtin8", required: false, type: "text", validator: validators.text }, + {name: "includesObject", required: false, type: "complex", validator: validators.complex }, + {name: "inventoryLevel", required: false, type: "complex", validator: validators.complex }, + {name: "itemCondition", required: false, type: "complex", validator: validators.complex }, + {name: "itemOffered", required: false, type: "complex", validator: validators.complex }, + {name: "mpn", required: false, type: "text", validator: validators.text }, + {name: "priceSpecification", required: false, type: "complex", validator: validators.complex }, + {name: "seller", required: false, type: "complex", validator: validators.complex }, + {name: "serialNumber", required: false, type: "text", validator: validators.text }, + {name: "sku", required: false, type: "text", validator: validators.text }, + {name: "validFrom", required: false, type: "datetime", validator: validators.datetime }, + {name: "validThrough", required: false, type: "datetime", validator: validators.datetime }, + {name: "warranty", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//Order, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Order", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Intangible"), [ + + {name: "acceptedOffer", required: false, type: "complex", validator: validators.complex }, + {name: "billingAddress", required: false, type: "complex", validator: validators.complex }, + {name: "confirmationNumber", required: false, type: "text", validator: validators.text }, + {name: "customer", required: false, type: "complex", validator: validators.complex }, + {name: "discount", required: false, type: "text", validator: validators.text }, + {name: "discountCode", required: false, type: "text", validator: validators.text }, + { name: "discountCurrency", required: false, type: "currency", validator: validators.currency } + {name: "isGift", required: false, type: "boolean", validator: validators.boolean }, + {name: "merchant", required: false, type: "complex", validator: validators.complex }, + {name: "orderDate", required: false, type: "datetime", validator: validators.datetime }, + {name: "orderedItem", required: false, type: "complex", validator: validators.complex }, + {name: "orderNumber", required: false, type: "text", validator: validators.text }, + {name: "orderStatus", required: false, type: "complex", validator: validators.complex }, + {name: "paymentDue", required: false, type: "datetime", validator: validators.datetime }, + {name: "paymentMethod", required: false, type: "complex", validator: validators.complex }, + {name: "paymentMethodId", required: false, type: "text", validator: validators.text }, + {name: "paymentUrl", required: false, type: "url", validator: validators.url } + + ]) +}); + +//ParcelDelivery, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/ParcelDelivery", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Intangible"), [ + + {name: "carrier", required: false, type: "complex", validator: validators.complex }, + {name: "deliveryAddress", required: false, type: "complex", validator: validators.complex }, + {name: "deliveryStatus", required: false, type: "complex", validator: validators.complex }, + {name: "expectedArrivalFrom", required: false, type: "datetime", validator: validators.datetime }, + {name: "expectedArrivalUntil", required: false, type: "datetime", validator: validators.datetime }, + {name: "hasDeliveryMethod", required: false, type: "complex", validator: validators.complex }, + {name: "itemShipped", required: false, type: "complex", validator: validators.complex }, + {name: "originAddress", required: false, type: "complex", validator: validators.complex }, + {name: "partOfOrder", required: false, type: "complex", validator: validators.complex }, + {name: "trackingNumber", required: false, type: "text", validator: validators.text }, + {name: "trackingUrl", required: false, type: "url", validator: validators.url } + + ]) +}); + +//Permit, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Permit", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Intangible"), [ + + {name: "issuedBy", required: false, type: "complex", validator: validators.complex }, + {name: "issuedThrough", required: false, type: "complex", validator: validators.complex }, + {name: "permitAudience", required: false, type: "complex", validator: validators.complex }, + { name: "validFor", required: false, type: "duration", validator: validators.duration }, + {name: "validFrom", required: false, type: "datetime", validator: validators.datetime }, + {name: "validIn", required: false, type: "complex", validator: validators.complex }, + {name: "validUntil", required: false, type: "date", validator: validators.date } + + ]) +}); + +//Service, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Service", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Intangible"), [ + + {name: "availableChannel", required: false, type: "complex", validator: validators.complex }, + {name: "produces", required: false, type: "complex", validator: validators.complex }, + {name: "provider", required: false, type: "complex", validator: validators.complex }, + {name: "serviceArea", required: false, type: "complex", validator: validators.complex }, + {name: "serviceAudience", required: false, type: "complex", validator: validators.complex }, + {name: "serviceType", required: false, type: "text", validator: validators.text } + + ]) +}); + +//GovernmentService, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/GovernmentService", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Service"), [ + + {name: "serviceOperator", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//ServiceChannel, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/ServiceChannel", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Intangible"), [ + + {name: "availableLanguage", required: false, type: "complex", validator: validators.complex }, + { name: "processingTime", required: false, type: "duration", validator: validators.duration }, + {name: "providesService", required: false, type: "complex", validator: validators.complex }, + {name: "serviceLocation", required: false, type: "complex", validator: validators.complex }, + {name: "servicePhone", required: false, type: "complex", validator: validators.complex }, + {name: "servicePostalAddress", required: false, type: "complex", validator: validators.complex }, + {name: "serviceSmsNumber", required: false, type: "complex", validator: validators.complex }, + {name: "serviceUrl", required: false, type: "url", validator: validators.url } + + ]) +}); + +//AnatomicalStructure, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/AnatomicalStructure", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MedicalEntity"), [ + + {name: "associatedPathophysiology", required: false, type: "text", validator: validators.text }, + {name: "bodyLocation", required: false, type: "text", validator: validators.text }, + {name: "connectedTo", required: false, type: "complex", validator: validators.complex }, + {name: "diagram", required: false, type: "complex", validator: validators.complex }, + {name: "function", required: false, type: "text", validator: validators.text }, + {name: "partOfSystem", required: false, type: "complex", validator: validators.complex }, + {name: "relatedCondition", required: false, type: "complex", validator: validators.complex }, + {name: "relatedTherapy", required: false, type: "complex", validator: validators.complex }, + {name: "subStructure", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//IndividualProduct, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/IndividualProduct", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Product"), [ + + {name: "serialNumber", required: false, type: "text", validator: validators.text } + + ]) +}); + +//ProductModel, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/ProductModel", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Product"), [ + + {name: "isVariantOf", required: false, type: "complex", validator: validators.complex }, + {name: "predecessorOf", required: false, type: "complex", validator: validators.complex }, + {name: "successorOf", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//SomeProducts, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/SomeProducts", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Product"), [ + + {name: "inventoryLevel", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//Property, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Property", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Thing"), [ + + {name: "domainIncludes", required: false, type: "complex", validator: validators.complex }, + {name: "rangeIncludes", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//SuperficialAnatomy, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/SuperficialAnatomy", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MedicalEntity"), [ + + {name: "associatedPathophysiology", required: false, type: "text", validator: validators.text }, + {name: "relatedAnatomy", required: false, type: "complex", validator: validators.complex }, + {name: "relatedCondition", required: false, type: "complex", validator: validators.complex }, + {name: "relatedTherapy", required: false, type: "complex", validator: validators.complex }, + {name: "significance", required: false, type: "text", validator: validators.text } + + ]) +}); + +//Drug, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Drug", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MedicalTherapy"), [ + + {name: "activeIngredient", required: false, type: "text", validator: validators.text }, + {name: "administrationRoute", required: false, type: "text", validator: validators.text }, + {name: "alcoholWarning", required: false, type: "text", validator: validators.text }, + {name: "availableStrength", required: false, type: "complex", validator: validators.complex }, + {name: "breastfeedingWarning", required: false, type: "text", validator: validators.text }, + {name: "clincalPharmacology", required: false, type: "text", validator: validators.text }, + {name: "cost", required: false, type: "complex", validator: validators.complex }, + {name: "dosageForm", required: false, type: "text", validator: validators.text }, + {name: "doseSchedule", required: false, type: "complex", validator: validators.complex }, + {name: "drugClass", required: false, type: "complex", validator: validators.complex }, + {name: "foodWarning", required: false, type: "text", validator: validators.text }, + {name: "interactingDrug", required: false, type: "complex", validator: validators.complex }, + {name: "isAvailableGenerically", required: false, type: "boolean", validator: validators.boolean }, + {name: "isProprietary", required: false, type: "boolean", validator: validators.boolean }, + {name: "labelDetails", required: false, type: "url", validator: validators.url }, + {name: "legalStatus", required: false, type: "complex", validator: validators.complex }, + {name: "manufacturer", required: false, type: "complex", validator: validators.complex }, + {name: "mechanismOfAction", required: false, type: "text", validator: validators.text }, + {name: "nonProprietaryName", required: false, type: "text", validator: validators.text }, + {name: "overdosage", required: false, type: "text", validator: validators.text }, + {name: "pregnancyCategory", required: false, type: "complex", validator: validators.complex }, + {name: "pregnancyWarning", required: false, type: "text", validator: validators.text }, + {name: "prescribingInfo", required: false, type: "url", validator: validators.url }, + {name: "prescriptionStatus", required: false, type: "complex", validator: validators.complex }, + {name: "relatedDrug", required: false, type: "complex", validator: validators.complex }, + {name: "warning", required: false, type: "text", validator: validators.text } + + ]) +}); + +//DietarySupplement, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/DietarySupplement", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MedicalTherapy"), [ + + {name: "activeIngredient", required: false, type: "text", validator: validators.text }, + {name: "background", required: false, type: "text", validator: validators.text }, + {name: "dosageForm", required: false, type: "text", validator: validators.text }, + {name: "isProprietary", required: false, type: "boolean", validator: validators.boolean }, + {name: "legalStatus", required: false, type: "complex", validator: validators.complex }, + {name: "manufacturer", required: false, type: "complex", validator: validators.complex }, + {name: "maximumIntake", required: false, type: "complex", validator: validators.complex }, + {name: "mechanismOfAction", required: false, type: "text", validator: validators.text }, + {name: "nonProprietaryName", required: false, type: "text", validator: validators.text }, + {name: "recommendedIntake", required: false, type: "complex", validator: validators.complex }, + {name: "safetyConsideration", required: false, type: "text", validator: validators.text }, + {name: "targetPopulation", required: false, type: "text", validator: validators.text } + + ]) +}); + +//Joint, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Joint", + fields: extend(findByUrl(schemaOrg, "http://schema.org/AnatomicalStructure"), [ + + {name: "biomechnicalClass", required: false, type: "text", validator: validators.text }, + {name: "functionalClass", required: false, type: "text", validator: validators.text }, + {name: "structuralClass", required: false, type: "text", validator: validators.text } + + ]) +}); + +//Muscle, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Muscle", + fields: extend(findByUrl(schemaOrg, "http://schema.org/AnatomicalStructure"), [ + + {name: "action", required: false, type: "text", validator: validators.text }, + {name: "antagonist", required: false, type: "complex", validator: validators.complex }, + {name: "bloodSupply", required: false, type: "complex", validator: validators.complex }, + {name: "insertion", required: false, type: "complex", validator: validators.complex }, + {name: "nerve", required: false, type: "complex", validator: validators.complex }, + {name: "origin", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//Nerve, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Nerve", + fields: extend(findByUrl(schemaOrg, "http://schema.org/AnatomicalStructure"), [ + + {name: "branch", required: false, type: "complex", validator: validators.complex }, + {name: "nerveMotor", required: false, type: "complex", validator: validators.complex }, + {name: "sensoryUnit", required: false, type: "complex", validator: validators.complex }, + {name: "sourcedFrom", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//MedicalCondition, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/MedicalCondition", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MedicalEntity"), [ + + {name: "associatedAnatomy", required: false, type: "complex", validator: validators.complex }, + {name: "cause", required: false, type: "complex", validator: validators.complex }, + {name: "differentialDiagnosis", required: false, type: "complex", validator: validators.complex }, + {name: "epidemiology", required: false, type: "text", validator: validators.text }, + {name: "expectedPrognosis", required: false, type: "text", validator: validators.text }, + {name: "naturalProgression", required: false, type: "text", validator: validators.text }, + {name: "pathophysiology", required: false, type: "text", validator: validators.text }, + {name: "possibleComplication", required: false, type: "text", validator: validators.text }, + {name: "possibleTreatment", required: false, type: "complex", validator: validators.complex }, + {name: "primaryPrevention", required: false, type: "complex", validator: validators.complex }, + {name: "riskFactor", required: false, type: "complex", validator: validators.complex }, + {name: "secondaryPrevention", required: false, type: "complex", validator: validators.complex }, + {name: "signOrSymptom", required: false, type: "complex", validator: validators.complex }, + {name: "stage", required: false, type: "complex", validator: validators.complex }, + {name: "subtype", required: false, type: "text", validator: validators.text }, + {name: "typicalTest", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//InfectiousDisease, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/InfectiousDisease", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MedicalCondition"), [ + + {name: "infectiousAgent", required: false, type: "text", validator: validators.text }, + {name: "infectiousAgentClass", required: false, type: "complex", validator: validators.complex }, + {name: "transmissionMethod", required: false, type: "text", validator: validators.text } + + ]) +}); + +//MedicalDevice, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/MedicalDevice", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MedicalEntity"), [ + + {name: "adverseOutcome", required: false, type: "complex", validator: validators.complex }, + {name: "contraindication", required: false, type: "complex", validator: validators.complex }, + {name: "indication", required: false, type: "complex", validator: validators.complex }, + {name: "postOp", required: false, type: "text", validator: validators.text }, + {name: "preOp", required: false, type: "text", validator: validators.text }, + {name: "procedure", required: false, type: "text", validator: validators.text }, + {name: "purpose", required: false, type: "complex", validator: validators.complex }, + {name: "seriousAdverseOutcome", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//MedicalGuideline, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/MedicalGuideline", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MedicalEntity"), [ + + {name: "evidenceLevel", required: false, type: "complex", validator: validators.complex }, + {name: "evidenceOrigin", required: false, type: "text", validator: validators.text }, + {name: "guidelineDate", required: false, type: "date", validator: validators.date }, + {name: "guidelineSubject", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//MedicalProcedure, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/MedicalProcedure", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MedicalEntity"), [ + + {name: "followup", required: false, type: "text", validator: validators.text }, + {name: "howPerformed", required: false, type: "text", validator: validators.text }, + {name: "preparation", required: false, type: "text", validator: validators.text }, + {name: "procedureType", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//MedicalRiskEstimator, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/MedicalRiskEstimator", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MedicalEntity"), [ + + {name: "estimatesRiskOf", required: false, type: "complex", validator: validators.complex }, + {name: "includedRiskFactor", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//MedicalSignOrSymptom, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/MedicalSignOrSymptom", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MedicalEntity"), [ + + {name: "cause", required: false, type: "complex", validator: validators.complex }, + {name: "possibleTreatment", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//MedicalStudy, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/MedicalStudy", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MedicalEntity"), [ + + {name: "outcome", required: false, type: "text", validator: validators.text }, + {name: "population", required: false, type: "text", validator: validators.text }, + {name: "sponsor", required: false, type: "complex", validator: validators.complex }, + {name: "status", required: false, type: "complex", validator: validators.complex }, + {name: "studyLocation", required: false, type: "complex", validator: validators.complex }, + {name: "studySubject", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//MedicalTest, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/MedicalTest", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MedicalEntity"), [ + + {name: "affectedBy", required: false, type: "complex", validator: validators.complex }, + {name: "normalRange", required: false, type: "text", validator: validators.text }, + {name: "signDetected", required: false, type: "complex", validator: validators.complex }, + {name: "usedToDiagnose", required: false, type: "complex", validator: validators.complex }, + {name: "usesDevice", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//PlayAction, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/PlayAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Action"), [ + + {name: "audience", required: false, type: "complex", validator: validators.complex }, + {name: "event", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//ExerciseAction, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/ExerciseAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Action"), [ + + {name: "course", required: false, type: "complex", validator: validators.complex }, + {name: "diet", required: false, type: "complex", validator: validators.complex }, + {name: "distance", required: false, type: "complex", validator: validators.complex }, + {name: "exercisePlan", required: false, type: "complex", validator: validators.complex }, + {name: "exerciseType", required: false, type: "text", validator: validators.text }, + {name: "fromLocation", required: false, type: "complex", validator: validators.complex }, + {name: "oponent", required: false, type: "complex", validator: validators.complex }, + {name: "sportsActivityLocation", required: false, type: "complex", validator: validators.complex }, + {name: "sportsEvent", required: false, type: "complex", validator: validators.complex }, + {name: "sportsTeam", required: false, type: "complex", validator: validators.complex }, + {name: "toLocation", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//PerformAction, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/PerformAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/PlayAction"), [ + + {name: "entertainmentBusiness", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//SearchAction, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/SearchAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Action"), [ + + {name: "query", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//TradeAction, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/TradeAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Action"), [ + + {name: "price", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//BuyAction, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/BuyAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/TradeAction"), [ + + {name: "vendor", required: false, type: "complex", validator: validators.complex }, + {name: "warrantyPromise", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//DonateAction, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/DonateAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/TradeAction"), [ + + {name: "recipient", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//PayAction, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/PayAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/TradeAction"), [ + + {name: "purpose", required: false, type: "complex", validator: validators.complex }, + {name: "recipient", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//RentAction, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/RentAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/TradeAction"), [ + + {name: "landlord", required: false, type: "complex", validator: validators.complex }, + {name: "realEstateAgent", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//SellAction, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/SellAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/TradeAction"), [ + + {name: "buyer", required: false, type: "complex", validator: validators.complex }, + {name: "warrantyPromise", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//TipAction, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/TipAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/TradeAction"), [ + + {name: "recipient", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//TransferAction, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/TransferAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Action"), [ + + {name: "fromLocation", required: false, type: "complex", validator: validators.complex }, + {name: "toLocation", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//BorrowAction, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/BorrowAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/TransferAction"), [ + + {name: "lender", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//GiveAction, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/GiveAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/TransferAction"), [ + + {name: "recipient", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//LendAction, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/LendAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/TransferAction"), [ + + {name: "borrower", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//ReceiveAction, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/ReceiveAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/TransferAction"), [ + + {name: "deliveryMethod", required: false, type: "complex", validator: validators.complex }, + {name: "sender", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//ReturnAction, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/ReturnAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/TransferAction"), [ + + {name: "recipient", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//SendAction, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/SendAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/TransferAction"), [ + + {name: "deliveryMethod", required: false, type: "complex", validator: validators.complex }, + {name: "recipient", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//UpdateAction, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/UpdateAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Action"), [ + + {name: "collection", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//BroadcastService, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/BroadcastService", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Thing"), [ + + {name: "area", required: false, type: "complex", validator: validators.complex }, + {name: "broadcaster", required: false, type: "complex", validator: validators.complex }, + {name: "parentService", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//AudioObject, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/AudioObject", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MediaObject"), [ + + {name: "transcript", required: false, type: "text", validator: validators.text } + + ]) +}); + +//ImageObject, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/ImageObject", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MediaObject"), [ + + {name: "caption", required: false, type: "text", validator: validators.text }, + {name: "exifData", required: false, type: "text", validator: validators.text }, + {name: "representativeOfPage", required: false, type: "boolean", validator: validators.boolean }, + {name: "thumbnail", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//VideoObject, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/VideoObject", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MediaObject"), [ + + {name: "caption", required: false, type: "text", validator: validators.text }, + {name: "thumbnail", required: false, type: "complex", validator: validators.complex }, + {name: "transcript", required: false, type: "text", validator: validators.text }, + {name: "videoFrameSize", required: false, type: "text", validator: validators.text }, + {name: "videoQuality", required: false, type: "text", validator: validators.text } + + ]) +}); + +//MedicalWebPage, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/MedicalWebPage", + fields: extend(findByUrl(schemaOrg, "http://schema.org/WebPage"), [ + + {name: "aspect", required: false, type: "text", validator: validators.text } + + ]) +}); + +//PublicationEvent, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/PublicationEvent", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Event"), [ + + {name: "free", required: false, type: "boolean", validator: validators.boolean }, + {name: "publishedOn", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//Brand, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Brand", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Intangible"), [ + + {name: "logo", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//Audience, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/Audience", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Intangible"), [ + + {name: "audienceType", required: false, type: "text", validator: validators.text }, + {name: "geographicArea", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//BusinessAudience, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/BusinessAudience", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Audience"), [ + +Properties from BusinessAudience + {name: "numberofEmployees", required: false, type: "complex", validator: validators.complex }, + {name: "yearlyRevenue", required: false, type: "complex", validator: validators.complex }, + {name: "yearsInOperation", required: false, type: "complex", validator: validators.complex } + + ]) +}); + +//EducationalAudience, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/EducationalAudience", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Audience"), [ + + {name: "educationalRole", required: false, type: "text", validator: validators.text } + + ]) +}); + +//PeopleAudience, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/PeopleAudience", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Audience"), [ + + {name: "healthCondition", required: false, type: "complex", validator: validators.complex }, + {name: "requiredGender", required: false, type: "text", validator: validators.text }, + { name: "requiredMaxAge", required: false, type: "int", validator: validators.int }, + { name: "requiredMinAge", required: false, type: "int", validator: validators.int }, + {name: "suggestedGender", required: false, type: "text", validator: validators.text }, + { name: "suggestedMaxAge", required: false, type: "number", validator: validators.number }, + { name: "suggestedMinAge", required: false, type: "number", validator: validators.number } + + ]) +}); + +//ParentAudience, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/ParentAudience", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Audience"), [ + + { name: "childMaxAge", required: false, type: "number", validator: validators.number }, + { name: "childMinAge", required: false, type: "number", validator: validators.number } + + ]) +}); + +//AlignmentObject, added accordingly to official Schema Version 1.0f +schemaOrg.push({ + url: "http://schema.org/AlignmentObject", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Intangible"), [ + + {name: "alignmentType", required: false, type: "text", validator: validators.text }, + {name: "educationalFramework", required: false, type: "text", validator: validators.text }, + {name: "targetDescription", required: false, type: "text", validator: validators.text }, + {name: "targetName", required: false, type: "text", validator: validators.text }, + {name: "targetUrl", required: false, type: "url", validator: validators.url } + + ]) +}); + + + + + + + // add schema.org to the roster for (var i = 0; i < schemaOrg.length; i++) { $.microdata.addDefinition(schemaOrg[i].url, schemaOrg[i].fields); From e135bfb5054156d6926573efec94f1faf50346a0 Mon Sep 17 00:00:00 2001 From: Evgeniy Date: Mon, 10 Mar 2014 23:52:35 +0100 Subject: [PATCH 06/11] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d63d83a..224fb6c 100644 --- a/README.md +++ b/README.md @@ -31,3 +31,5 @@ the link to your bookmark bar and you're set to go. -- file schemas-stub.js added. File contains the part of code for adding new classes/properties to schemas.js. For adding new classes/properties: open schemas-stub.js, copy and edit code, add the code to schemas.js, like it done there. + +-- [Go to this page and drop the given link to your bookmarks](http://jsfiddle.net/chilly_bang/mf3xt/embedded/result/) This bookmarklet works with updated and enriched schemas.js and jquery.microdata.js and is based on this one from [@peterhost](https://gist.github.com/1397528). From 9fd9d3d9ddaa91d36df99e19335d3013465b7d80 Mon Sep 17 00:00:00 2001 From: Evgeniy Date: Mon, 10 Mar 2014 23:54:11 +0100 Subject: [PATCH 07/11] Update README.md --- README.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/README.md b/README.md index 224fb6c..1a8ab8d 100644 --- a/README.md +++ b/README.md @@ -18,12 +18,7 @@ This tool is a work-in-progress and still doesn't adhere to the full specs (yet) Plans to support the full microdata spec + data vocabulary validation are on the drawing board. ;) -Thanks to [@peterhost](https://github.com/peterhost) we now have a bookmarklet available -(source: https://gist.github.com/1397528) for your use without having to modify your page's source code! -Simply visit [this page](http://jsfiddle.net/peterhost/ZJfpL/14/embedded/result/) and drag -the link to your bookmark bar and you're set to go. - -6.03.2014 - Changes made by Evgeniy Orlov, chilly_bang@yahoo.de +#6.03.2014 - Changes made by Evgeniy Orlov, chilly_bang@yahoo.de# -- schemas.js: Added 106 new classes with properties accordingly to official Schema Version 1.0f From 6a497b282211a19b826f9d00f517ba443e51054f Mon Sep 17 00:00:00 2001 From: Evgeniy Date: Mon, 10 Mar 2014 23:57:10 +0100 Subject: [PATCH 08/11] Update schemas.js --- schemas.js | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/schemas.js b/schemas.js index 824445d..1db0d70 100644 --- a/schemas.js +++ b/schemas.js @@ -137,23 +137,23 @@ var schemaOrg = [ url: "http://schema.org/Event", fields: extend(findByUrl(schemaOrg, "http://schema.org/Thing"), [ - {name: "attendee", required: false, type: "complex", validator: validators.complex }, // new, child elements of type Person or Organization - {name: "doorTime", required: false, type: "datetime", validator: validators.datetime }, // new, - { name: "attendees", required: false, type: "complex", validator: validators.complex }, // child elements of type Person or Organization - {name: "doorTime", required: false, type: "datetime", validator: validators.datetime }, - { name: "duration", required: false, type: "duration", validator: validators.duration }, - { name: "endDate", required: false, type: "datetime", validator: validators.datetime }, - {name: "eventStatus", required: false, type: "complex", validator: validators.complex }, - { name: "location", required: false, type: "complex", validator: validators.complex }, // child elements of type Place or PostalAddress - { name: "offers", required: false, type: "complex", validator: validators.complex }, // child elements of type Offer - {name: "performer", required: false, type: "complex", validator: validators.complex }, - { name: "performers", required: false, type: "complex", validator: validators.complex }, // child elements of type Person or Organization - {name: "previousStartDate", required: false, type: "date", validator: validators.date }, - { name: "startDate", required: false, type: "datetime", validator: validators.datetime }, - {name: "subEvent", required: false, type: "complex", validator: validators.complex }, // new, child elements of type Event - { name: "subEvents", required: false, type: "complex", validator: validators.complex }, // child elements of type Event - { name: "superEvent", required: false, type: "complex", validator: validators.complex }, // a child element of type Event - {name: "typicalAgeRange", required: false, type: "text", validator: validators.text } + {name: "attendee", required: false, type: "complex", validator: validators.complex }, // new, child elements of type Person or Organization + {name: "doorTime", required: false, type: "datetime", validator: validators.datetime }, // new, + { name: "attendees", required: false, type: "complex", validator: validators.complex }, // child elements of type Person or Organization + {name: "doorTime", required: false, type: "datetime", validator: validators.datetime }, + { name: "duration", required: false, type: "duration", validator: validators.duration }, + { name: "endDate", required: false, type: "datetime", validator: validators.datetime }, + {name: "eventStatus", required: false, type: "complex", validator: validators.complex }, + { name: "location", required: false, type: "complex", validator: validators.complex }, // child elements of type Place or PostalAddress + { name: "offers", required: false, type: "complex", validator: validators.complex }, // child elements of type Offer + {name: "performer", required: false, type: "complex", validator: validators.complex }, + { name: "performers", required: false, type: "complex", validator: validators.complex }, // child elements of type Person or Organization + {name: "previousStartDate", required: false, type: "date", validator: validators.date }, + { name: "startDate", required: false, type: "datetime", validator: validators.datetime }, + {name: "subEvent", required: false, type: "complex", validator: validators.complex }, // new, child elements of type Event + { name: "subEvents", required: false, type: "complex", validator: validators.complex }, // child elements of type Event + { name: "superEvent", required: false, type: "complex", validator: validators.complex }, // a child element of type Event + {name: "typicalAgeRange", required: false, type: "text", validator: validators.text } ]) }); @@ -1157,7 +1157,7 @@ schemaOrg.push({ {name: "customer", required: false, type: "complex", validator: validators.complex }, {name: "discount", required: false, type: "text", validator: validators.text }, {name: "discountCode", required: false, type: "text", validator: validators.text }, - { name: "discountCurrency", required: false, type: "currency", validator: validators.currency } + { name: "discountCurrency", required: false, type: "currency", validator: validators.currency }, {name: "isGift", required: false, type: "boolean", validator: validators.boolean }, {name: "merchant", required: false, type: "complex", validator: validators.complex }, {name: "orderDate", required: false, type: "datetime", validator: validators.datetime }, From 4db3ba93693e180f4daa42eb10d9c96b1c8da052 Mon Sep 17 00:00:00 2001 From: Evgeniy Date: Tue, 11 Mar 2014 00:07:56 +0100 Subject: [PATCH 09/11] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1a8ab8d..3dfdf84 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ This tool is a work-in-progress and still doesn't adhere to the full specs (yet) Plans to support the full microdata spec + data vocabulary validation are on the drawing board. ;) -#6.03.2014 - Changes made by Evgeniy Orlov, chilly_bang@yahoo.de# +#UPDATE 6.03.2014# -- schemas.js: Added 106 new classes with properties accordingly to official Schema Version 1.0f From ad6beb40bfabac462a42c4e639c34a0e9b7b4398 Mon Sep 17 00:00:00 2001 From: Evgeniy Date: Tue, 11 Mar 2014 11:03:22 +0100 Subject: [PATCH 10/11] Update schemas.js added extended action classes --- schemas.js | 585 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 568 insertions(+), 17 deletions(-) diff --git a/schemas.js b/schemas.js index 1db0d70..2cc8d63 100644 --- a/schemas.js +++ b/schemas.js @@ -137,23 +137,23 @@ var schemaOrg = [ url: "http://schema.org/Event", fields: extend(findByUrl(schemaOrg, "http://schema.org/Thing"), [ - {name: "attendee", required: false, type: "complex", validator: validators.complex }, // new, child elements of type Person or Organization - {name: "doorTime", required: false, type: "datetime", validator: validators.datetime }, // new, - { name: "attendees", required: false, type: "complex", validator: validators.complex }, // child elements of type Person or Organization - {name: "doorTime", required: false, type: "datetime", validator: validators.datetime }, - { name: "duration", required: false, type: "duration", validator: validators.duration }, - { name: "endDate", required: false, type: "datetime", validator: validators.datetime }, - {name: "eventStatus", required: false, type: "complex", validator: validators.complex }, - { name: "location", required: false, type: "complex", validator: validators.complex }, // child elements of type Place or PostalAddress - { name: "offers", required: false, type: "complex", validator: validators.complex }, // child elements of type Offer - {name: "performer", required: false, type: "complex", validator: validators.complex }, - { name: "performers", required: false, type: "complex", validator: validators.complex }, // child elements of type Person or Organization - {name: "previousStartDate", required: false, type: "date", validator: validators.date }, - { name: "startDate", required: false, type: "datetime", validator: validators.datetime }, - {name: "subEvent", required: false, type: "complex", validator: validators.complex }, // new, child elements of type Event - { name: "subEvents", required: false, type: "complex", validator: validators.complex }, // child elements of type Event - { name: "superEvent", required: false, type: "complex", validator: validators.complex }, // a child element of type Event - {name: "typicalAgeRange", required: false, type: "text", validator: validators.text } + {name: "attendee", required: false, type: "complex", validator: validators.complex }, // new, child elements of type Person or Organization + {name: "doorTime", required: false, type: "datetime", validator: validators.datetime }, // new, + { name: "attendees", required: false, type: "complex", validator: validators.complex }, // child elements of type Person or Organization + {name: "doorTime", required: false, type: "datetime", validator: validators.datetime }, + { name: "duration", required: false, type: "duration", validator: validators.duration }, + { name: "endDate", required: false, type: "datetime", validator: validators.datetime }, + {name: "eventStatus", required: false, type: "complex", validator: validators.complex }, + { name: "location", required: false, type: "complex", validator: validators.complex }, // child elements of type Place or PostalAddress + { name: "offers", required: false, type: "complex", validator: validators.complex }, // child elements of type Offer + {name: "performer", required: false, type: "complex", validator: validators.complex }, + { name: "performers", required: false, type: "complex", validator: validators.complex }, // child elements of type Person or Organization + {name: "previousStartDate", required: false, type: "date", validator: validators.date }, + { name: "startDate", required: false, type: "datetime", validator: validators.datetime }, + {name: "subEvent", required: false, type: "complex", validator: validators.complex }, // new, child elements of type Event + { name: "subEvents", required: false, type: "complex", validator: validators.complex }, // child elements of type Event + { name: "superEvent", required: false, type: "complex", validator: validators.complex }, // a child element of type Event + {name: "typicalAgeRange", required: false, type: "text", validator: validators.text } ]) }); @@ -1915,6 +1915,557 @@ schemaOrg.push({ ]) }); +//Add at 11.03.2014, mostly empty classes + + +schemaOrg.push({ + url: "http://schema.org/AchieveAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Action"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/Intangible", + fields: extend(findByUrl(schemaOrg, "http://schema.org/AchieveAction"), [ + + {name: "winner", required: false, type: "complex", validator: validators.complex } + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/Intangible", + fields: extend(findByUrl(schemaOrg, "http://schema.org/AchieveAction"), [ + + {name: "loser", required: false, type: "complex", validator: validators.complex } + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/TieAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/AchieveAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/AssessAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Action"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/ChooseAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/AssessAction"), [ + + {name: "option", required: false, type: "complex", validator: validators.complex } + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/VoteAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/ChooseAction"), [ + + {name: "candidate", required: false, type: "complex", validator: validators.complex } + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/IgnoreAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/AssessAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/ReactAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/AssessAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/AgreeAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/ReactAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/DisagreeAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/ReactAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/DislikeAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/ReactAction"), [ + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/EndorseAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/ReactAction"), [ + + {name: "endorsee", required: false, type: "complex", validator: validators.complex } + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/LikeAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/ReactAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/WantAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/ReactAction"), [ + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/ReviewAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/AssessAction"), [ + + {name: "resultReview", required: false, type: "complex", validator: validators.complex } + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/ConsumeAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Action"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/DrinkAction", + fields: extend(findByUrl(schemaOrg, "ConsumeAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/EatAction", + fields: extend(findByUrl(schemaOrg, "ConsumeAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/InstallAction", + fields: extend(findByUrl(schemaOrg, "ConsumeAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/ListenAction", + fields: extend(findByUrl(schemaOrg, "ConsumeAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/ReadAction", + fields: extend(findByUrl(schemaOrg, "ConsumeAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/UseAction", + fields: extend(findByUrl(schemaOrg, "ConsumeAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/ViewAction", + fields: extend(findByUrl(schemaOrg, "ConsumeAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/WatchAction", + fields: extend(findByUrl(schemaOrg, "ConsumeAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/WearAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/UseAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/CreateAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Action"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/CookAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreateAction"), [ + + {name: "foodEstablishment", required: false, type: "complex", validator: validators.complex }, + {name: "foodEvent", required: false, type: "complex", validator: validators.complex }, + {name: "recipe", required: false, type: "complex", validator: validators.complex } + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/DrawAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreateAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/FilmAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreateAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/PaintAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreateAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/PhotographAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreateAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/WriteAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CreateAction"), [ + + {name: "language", required: false, type: "complex", validator: validators.complex } + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/FindAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Action"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/CheckAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/FindAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/DiscoverAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/FindAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/TrackAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/FindAction"), [ + + {name: "deliveryMethod", required: false, type: "complex", validator: validators.complex } + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/InteractAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Action"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/BefriendAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/InteractAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/CommunicateAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/InteractAction"), [ + + {name: "about", required: false, type: "complex", validator: validators.complex }, + {name: "language", required: false, type: "complex", validator: validators.complex }, + {name: "recipient", required: false, type: "complex", validator: validators.complex } + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/FollowAction", + + fields: extend(findByUrl(schemaOrg, "http://schema.org/InteractAction"), [ + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/JoinAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/InteractAction"), [ + +{name: "event", required: false, type: "complex", validator: validators.complex } + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/LeaveAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/InteractAction"), [ + + {name: "event", required: false, type: "complex", validator: validators.complex } + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/MarryAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/InteractAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/RegisterAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/InteractAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/SubscribeAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/InteractAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/UnRegisterAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/InteractAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/AskAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CommunicateAction"), [ + + {name: "question", required: false, type: "text", validator: validators.text } + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/CheckInAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CommunicateAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/CheckOutAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CommunicateAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/CommentAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CommunicateAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/InformAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CommunicateAction"), [ + + {name: "event", required: false, type: "complex", validator: validators.complex } + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/InviteAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CommunicateAction"), [ + + {name: "event", required: false, type: "complex", validator: validators.complex } + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/ReplyAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CommunicateAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/ShareAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/CommunicateAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/ConfirmAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/InformAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/RsvpAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/InformAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/MoveAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Action"), [ + + {name: "fromLocation", required: false, type: "complex", validator: validators.complex }, + {name: "toLocation", required: false, type: "complex", validator: validators.complex } + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/ArriveAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MoveAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/DepartAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MoveAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/TravelAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/MoveAction"), [ + + {name: "distance", required: false, type: "complex", validator: validators.complex } + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/OrganizeAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/Action"), [ +]) +}); + + +schemaOrg.push({ + url: "http://schema.org/AllocateAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/OrganizeAction"), [ + + {name: "purpose", required: false, type: "complex", validator: validators.complex } +]) +}); + +schemaOrg.push({ + url: "http://schema.org/AcceptAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/AllocateAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/AssignAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/AllocateAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/AuthorizeAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/AllocateAction"), [ + + {name: "recipient", required: false, type: "complex", validator: validators.complex } + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/RejectAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/AllocateAction"), [ +]) +}); + + +schemaOrg.push({ + url: "http://schema.org/ApplyAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/OrganizeAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/BookmarkAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/OrganizeAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/PlanAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/OrganizeAction"), [ + + {name: "scheduledTime", required: false, type: "datetime", validator: validators.datetime } + +]) +}); + +schemaOrg.push({ + url: "http://schema.org/CancelAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/PlanAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/ReserveAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/PlanAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/ScheduleAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/PlanAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/AddAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/UpdateAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/InsertAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/AddAction"), [ + + {name: "toLocation", required: false, type: "complex", validator: validators.complex } +]) +}); + +schemaOrg.push({ + url: "http://schema.org/AppendAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/InsertAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/PrependAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/InsertAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/DeleteAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/UpdateAction"), [ +]) +}); + +schemaOrg.push({ + url: "http://schema.org/ReplaceAction", + fields: extend(findByUrl(schemaOrg, "http://schema.org/UpdateAction"), [ + + {name: "replacee", required: false, type: "complex", validator: validators.complex }, + {name: "replacer", required: false, type: "complex", validator: validators.complex } +]) +}); From 31d8606abcb41aa65e015e09922399e7296b05d2 Mon Sep 17 00:00:00 2001 From: Evgeniy Date: Tue, 11 Mar 2014 11:04:21 +0100 Subject: [PATCH 11/11] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 3dfdf84..6d1a69b 100644 --- a/README.md +++ b/README.md @@ -28,3 +28,7 @@ the drawing board. ;) For adding new classes/properties: open schemas-stub.js, copy and edit code, add the code to schemas.js, like it done there. -- [Go to this page and drop the given link to your bookmarks](http://jsfiddle.net/chilly_bang/mf3xt/embedded/result/) This bookmarklet works with updated and enriched schemas.js and jquery.microdata.js and is based on this one from [@peterhost](https://gist.github.com/1397528). + +#UPDATE 11.03.2014# + +-- added extended action classes