Use schema.org HTML in TinyMCE Editor

I dug this solution up, which adds meta to valid_children (untested):

// Prevent TinyMCE from stripping out schema.org metadata
// https://snipt.net/jamesw/prevent-tinymce-from-stripping-schemaorg-attributes-in-wordpress/
function schema_TinyMCE_init( $in ) {
    /**
     *   Edit extended_valid_elements as needed. For syntax, see
     *   http://www.tinymce.com/wiki.php/Configuration:valid_elements
     *
     *   NOTE: Adding an element to extended_valid_elements will cause TinyMCE to ignore
     *   default attributes for that element.
     *   Eg. aUse schema.org HTML in TinyMCE Editor would remove href unless included in new rule: a[title|href]
     */
    if ( ! empty( $in['extended_valid_elements'] ) ) {
            $in['extended_valid_elements'] .= ',';
    }
    $in['extended_valid_elements'] .= '@[id|class|style|title|itemscope|itemtype|itemprop|datetime|rel],div,dl,ul,dt,dd,li,span,meta[!content],a|rev|charset|href|lang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur]',

    if ( !empty( $in['valid_children'] ) ) {
        $in['valid_children'] .= ',';
    }
    $in['valid_children'] .= '+body[meta],+div[meta]';

    return $in;
}
add_filter('tiny_mce_before_init', 'schema_TinyMCE_init' );