diff --git a/core/modules/views/config/schema/views.access.schema.yml b/core/modules/views/config/schema/views.access.schema.yml
new file mode 100644
index 0000000..6e1c8c0
--- /dev/null
+++ b/core/modules/views/config/schema/views.access.schema.yml
@@ -0,0 +1,17 @@
+views.access.*:
+  type: mapping
+
+views.access.none:
+  type: 'views.access.%'
+
+views.access.perm:
+  type: 'views.access.%'
+  label: Permission
+  mapping:
+    perm:
+      type: string
+      label: Permission
+
+views.access.role:
+  type: 'views.access.%'
+  label: Role
diff --git a/core/modules/views/config/schema/views.area.schema.yml b/core/modules/views/config/schema/views.area.schema.yml
new file mode 100644
index 0000000..fd450e0
--- /dev/null
+++ b/core/modules/views/config/schema/views.area.schema.yml
@@ -0,0 +1,63 @@
+# Views area plugin: Drupal\views\Plugin\views\area\AreaPluginBase
+views.area.base:
+  type: 'views.handler.base'
+  mapping:
+    label:
+      type: label
+      label: 'A string to identify the area instance in the admin UI.'
+    empty:
+      type: boolean
+      label: 'Should the area be displayed on empty results.'
+
+# Views area plugin: Drupal\views\Plugin\views\area\Text
+views.area.text:
+  type: 'views.area.base'
+  mapping:
+    content:
+      type: text
+      label: 'The shown text of the area'
+    format:
+      type: string
+      label: 'The filter format the content is in'
+    tokenize:
+      type: boolean
+      label: 'Should replacement tokens be used from the first row'
+
+# Views area plugin: Drupal\views\Plugin\views\area\TextCustom
+views.area.text_custom:
+  type: 'views.area.base'
+  mapping:
+    content:
+      type: text
+      label: 'The shown text of the area'
+    tokenize:
+      type: boolean
+      label: 'Should replacement tokens be used from the first row'
+
+# Views area plugin: Drupal\views\Plugin\views\area\Result
+views.area.result:
+  type: 'views.area.base'
+  mapping:
+    content:
+      type: text
+      label: 'The shown text of the result summary area'
+
+
+# Views area plugin: Drupal\views\Plugin\views\area\Title
+views.area.title:
+  type: 'views.area.base'
+  mapping:
+    title:
+      type: label
+      label: 'The title which will be overriden for the page'
+
+# Views area plugin: Drupal\views\Plugin\views\area\View
+views.area.view:
+  type: 'views.area.base'
+  mapping:
+    view_to_insert:
+      type: string
+      label: 'The ID of the view which will be displayed'
+    inherit_to_arguments:
+      type: boolean
+      label: 'Should the contextual filters be pulled from the main view.'
diff --git a/core/modules/views/config/schema/views.argument.schema.yml b/core/modules/views/config/schema/views.argument.schema.yml
new file mode 100644
index 0000000..1a86c8d
--- /dev/null
+++ b/core/modules/views/config/schema/views.argument.schema.yml
@@ -0,0 +1,99 @@
+# Views argument plugin: Drupal\views\Plugin\views\argument\ArgumentPluginBase
+views.argument.base:
+  type: 'views.handler.base'
+  mapping:
+    default_action:
+      type: string
+    exception:
+      type: mapping
+      mapping:
+        value:
+          type: string
+        title_enabled:
+          type: boolean
+        title:
+          type: label
+    title_enable:
+      type: boolean
+    title:
+      type: label
+    breadcrumb_enable:
+      type: boolean
+    breadcrumb:
+      type: label
+    default_argument_type:
+      type: string
+    default_argument_options:
+      type: 'views.argument_default.[%parent.default_argument_type]'
+    default_argument_skip_url:
+      type: boolean
+    summary_options:
+      type: 'views.style.[%parent.summary.format]'
+    summary:
+      type: mapping
+      mapping:
+        sort_order:
+          type: string
+        number_of_records:
+          type: integer
+        format:
+          type: string
+    specify_validation:
+      type: boolean
+    validate:
+      type: mapping
+      mapping:
+        type:
+          type: string
+        fail:
+          type: string
+    validate_options:
+      type: 'views.style.[%parent.validate.type]'
+
+# Views argument plugin: Drupal\views\Plugin\views\argument\ManyToOne
+views.argument.many_to_one:
+  type: 'views.argument.base'
+  mapping:
+    break_phrase:
+      type: boolean
+    add_table:
+      type: boolean
+    require_value:
+      type: boolean
+
+# Views argument plugin: Drupal\views\Plugin\views\argument\Null
+views.argument.null:
+  type: 'views.argument.base'
+  mapping:
+    must_not_be:
+      type: boolean
+
+# Views argument plugin: Drupal\views\Plugin\views\argument\Numeric
+views.argument.numeric:
+  type: 'views.argument.base'
+  mapping:
+    break_phrase:
+      type: boolean
+    not:
+      type: boolean
+
+# Views argument plugin: Drupal\views\Plugin\views\argument\String
+views.argument.string:
+  type: 'views.argument.base'
+  mapping:
+    glossary:
+      type: boolean
+    limit:
+      type: integer
+    case:
+      type: string
+    path_case:
+      type: string
+    transform_dash:
+      type: boolean
+    break_phrase:
+      type: boolean
+    add_table:
+      type: boolean
+    require_value:
+      type: boolean
diff --git a/core/modules/views/config/schema/views.argument_default.schema.yml b/core/modules/views/config/schema/views.argument_default.schema.yml
new file mode 100644
index 0000000..8801199
--- /dev/null
+++ b/core/modules/views/config/schema/views.argument_default.schema.yml
@@ -0,0 +1,27 @@
+# Views argument_default plugin: Drupal\views\Plugin\views\argument_default\ArgumentDefaultPluginBase
+views.argument_default.base:
+  type: mapping
+  mapping:
+
+# Views argument_default plugin: Drupal\views\Plugin\views\argument_default\Fixed
+views.argument_default.fixed:
+  type: views.argument_default.base
+  mapping:
+    argument:
+      type: string
+
+# Views argument_default plugin: Drupal\views\Plugin\views\argument_default\Php
+views.argument_default.php:
+  type: views.argument_default.base
+  mapping:
+    code:
+      type: string
+
+# Views argument_default plugin: Drupal\views\Plugin\views\argument_default\Raw
+views.argument_default.raw:
+  type: views.argument_default.base
+  mapping:
+    index:
+      type: string
+    use_alias:
+      type: boolean
diff --git a/core/modules/views/config/schema/views.argument_validator.schema.yml b/core/modules/views/config/schema/views.argument_validator.schema.yml
new file mode 100644
index 0000000..4fee333
--- /dev/null
+++ b/core/modules/views/config/schema/views.argument_validator.schema.yml
@@ -0,0 +1,11 @@
+# Views argument_validator plugin: Drupal\views\Plugin\views\argument_validator\ArgumentValidatorPluginBase
+views.argument_validator.base:
+  type: mapping
+  mapping:
+
+# Views argument_validator plugin: Drupal\views\Plugin\views\argument_validator\Php
+views.argument_validator.php:
+  type: views.argument_validator.base
+  mapping:
+    code:
+      type: text
diff --git a/core/modules/views/config/schema/views.cache.schema.yml b/core/modules/views/config/schema/views.cache.schema.yml
new file mode 100644
index 0000000..e6ac09d
--- /dev/null
+++ b/core/modules/views/config/schema/views.cache.schema.yml
@@ -0,0 +1,21 @@
+# Views cache plugin: Drupal\views\Plugin\views\cache\CachePluginBase
+views.cache.base:
+  type: mapping
+  mapping:
+
+# Views cache plugin: Drupal\views\Plugin\views\cache\Time
+views.cache.time:
+  type: mapping
+  mapping:
+    result_lifespan:
+      tipe: integer
+      label: The length of time raw query results should be cached.
+    result_lifespan_custom:
+      type: integer
+      label: Length of time in seconds raw query results should be cached.
+    output_lifespan:
+      type: integer
+      label: The length of time rendered HTML output should be cached.
+    output_lifespan_custom:
+      type: integer
+      label: Length of time in seconds rendered HTML output should be cached.
diff --git a/core/modules/views/config/schema/views.display.schema.yml b/core/modules/views/config/schema/views.display.schema.yml
new file mode 100644
index 0000000..5cb71a8
--- /dev/null
+++ b/core/modules/views/config/schema/views.display.schema.yml
@@ -0,0 +1,191 @@
+# Views display: common
+# Options for Drupal\views\Plugin\views\display\DisplayPluginBase
+views.display.*:
+  type: mapping
+  label: 'Display options'
+  mapping:
+    title:
+      type: text
+      label: 'Display title'
+    format:
+      label: 'Format'
+    fields:
+      type: sequence
+      label: 'Fields'
+      sequence:
+        - type: 'views.field.[table]-[field]'
+    pager:
+      type: mapping
+      label: 'Pager'
+      mapping:
+        type:
+          label: 'Pager type'
+        options:
+          type: 'views.pager.[%parent.type]'
+    exposed_form:
+      type: mapping
+      label: 'Exposed form'
+      mapping:
+        type:
+          label: 'Exposed form type'
+        options:
+          label: 'Options'
+          type: 'views.exposed_form.[%parent.type]'
+    access:
+      type: mapping
+      label: 'Access'
+      mapping:
+        type:
+          label: 'Access type'
+        options:
+          type: 'views.access.[%parent.type]'
+    other:
+      label: 'Other'
+    cache:
+      type: mapping
+      label: 'Cache'
+      mapping:
+        type:
+          label: 'Cache type'
+    sorts:
+      type: sequence
+      label: 'Sorts'
+      sequence:
+        - type: 'views.sort.[table]-[field]'
+    arguments:
+      type: sequence
+      label: 'Arguments'
+      sequence:
+        - type: 'views.argument.[table]-[field]'
+    filters:
+      type: sequence
+      label: 'Filters'
+      sequence:
+        - type: 'views.filter.[table]-[field]'
+    style:
+      type: mapping
+      label: 'Style'
+      mapping:
+        type:
+          label: 'Type'
+        options:
+          type: 'views.style.[%parent.type]'
+          label: 'Options'
+    row:
+      type: mapping
+      label: 'Row'
+      mapping:
+        type:
+          label: 'Row type'
+        options:
+          include: 'views.row.[%parent.type]'
+    query:
+      type: mapping
+      label: 'Query'
+      mapping:
+        type:
+          label: 'Query type'
+        options:
+          type: mapping
+          label: 'Query options'
+          mapping:
+            query_comment:
+              type: boolean
+              label: 'Query comment'
+    defaults:
+      type: mapping
+      label: 'Defaults'
+      mapping:
+        style_plugin:
+          label: 'Style plugin'
+        style_options:
+          type: 'views.style.[%parent.style_plugin]'
+        row_plugin:
+          label: 'Row plugin'
+        row_options:
+          type: 'views.style.[%parent.row_plugin]'
+    relationships:
+      type: sequence
+      label: 'Relationships'
+      sequence:
+        - type: 'views.relationship.[table]-[field]'
+    display_options:
+      type: mapping
+      label: Display options
+      mapping:
+        exposed_block:
+          type: boolean
+          label:  Exposed form in block
+
+# Options for Drupal\views\Plugin\views\display\PathPluginBase
+views.display.PathPluginBase:
+  include: 'views.display.%'
+  type: mapping
+  mapping:
+    path:
+      type: string
+      label: 'Page path'
+
+# Views display plugin: Drupal\views\Plugin\views\display\Page
+views.display.page:
+  type: 'views.display.PathPluginBase'
+  label: 'Page display options'
+  mapping:
+    menu:
+      type: mapping
+      label: 'Menu'
+      mapping:
+        type:
+          label: 'Type'
+        title:
+          type: text
+          label: 'Title'
+        description:
+          type: text
+          label: 'Description'
+        weight:
+          type: integer
+          label: 'Weight'
+        name:
+          label: 'Menu name'
+        context:
+          label: 'Context'
+    tab_options:
+      type: mapping
+      label: 'Tab options'
+      mapping:
+        type:
+          label: 'Type'
+        title:
+          type: text
+          label: 'Title'
+        description:
+          type: text
+          label: 'Description'
+        weight:
+          type: integer
+          label: 'Weight'
+        name:
+          label: 'Menu name'
+
+# Views display plugin: Drupal\views\Plugin\views\display\Block
+views.display.block:
+  type: 'views.display.%'
+  label: 'Block display options'
+  mapping:
+    block_description:
+      type: text
+      label: 'Block name'
+    block_caching:
+      label: 'Block caching'
+
+# Views display plugin: Drupal\views\Plugin\views\display\Feed
+views.display.feed:
+  type: 'views.display.PathPluginBase'
+  label: 'Feed display options'
+  mapping:
+    sitename_title:
+      type: boolean
+      label: 'Use the site name for the title'
+    displays:
+      label: 'The feed icon will be available only to the selected displays.'
diff --git a/core/modules/views/config/schema/views.display_extender.schema.yml b/core/modules/views/config/schema/views.display_extender.schema.yml
new file mode 100644
index 0000000..e69de29
diff --git a/core/modules/views/config/schema/views.exposed_form.schema.yml b/core/modules/views/config/schema/views.exposed_form.schema.yml
new file mode 100644
index 0000000..9215ac7
--- /dev/null
+++ b/core/modules/views/config/schema/views.exposed_form.schema.yml
@@ -0,0 +1,41 @@
+# Views exposed form plugin: Drupal\views\Plugin\views\exposed_form\ExposedFormPluginBase
+views.exposed_form.*:
+  type: mapping
+  mapping:
+    submit_button:
+      type: string
+      label: Submit button text
+    reset_button:
+      type: boolean
+      label: Include reset button
+    reset_button_label:
+      type: string
+      label: Reset button label
+    exposed_sorts_label:
+      type: string
+      label: Exposed sorts label
+    expose_sort_order:
+      type: boolean
+      label: Expose sort order
+    sort_asc_label:
+      type: string
+      label: Ascending
+    sort_desc_label:
+      type: string
+      label: Descending
+
+
+# Views exposed form plugin: Drupal\views\Plugin\views\exposed_form\Basic
+views.exposed_form.basic:
+  type: 'views.exposed_form.%'
+
+# Views exposed form plugin: Drupal\views\Plugin\views\exposed_form\InputRequired
+views.exposed_form.input_required:
+  type: 'views.exposed_form.%'
+  mapping:
+    text_input_required:
+      type: text
+      label: Text on demand
+    text_input_required_format:
+      type: string
+      label: Text on demand format
diff --git a/core/modules/views/config/schema/views.field.schema.yml b/core/modules/views/config/schema/views.field.schema.yml
new file mode 100644
index 0000000..2fc5444
--- /dev/null
+++ b/core/modules/views/config/schema/views.field.schema.yml
@@ -0,0 +1,224 @@
+# Views field plugin: Drupal\views\Plugin\views\field\FieldPluginBase
+views.field.base:
+  type: 'views.handler.base'
+  mapping:
+    label:
+      type: string
+    exclude:
+      type: boolean
+    alter:
+      type: mapping
+      mapping:
+        contains:
+          type: mapping
+          mapping:
+            alter_text:
+              type: boolean
+            text:
+              type: string
+            make_link:
+              type: boolean
+            path:
+              type: string
+            absolute:
+              type: boolean
+            external:
+              type: boolean
+            replace_spaces:
+              type: boolean
+            path_case:
+              type: string
+            trim_whitespace:
+              type: boolean
+            alt:
+              type: string
+            rel:
+              type: string
+            link_class:
+              type: string
+            prefix:
+              type: string
+            suffix:
+              type: string
+            target:
+              type: string
+            nl2br:
+              type: boolean
+            max_length:
+              type: string
+            word_boundary:
+              type: boolean
+            ellipsis:
+              type: boolean
+            more_link:
+              type: boolean
+            more_link_text:
+              type: string
+            more_link_path:
+              type: string
+            strip_tags:
+              type: boolean
+            trim:
+              type: boolean
+            preserve_tags:
+              type: string
+            html:
+              type: boolean
+    element_type:
+      type: string
+    element_class:
+      type: string
+    element_label_type:
+      type: string
+    element_label_class:
+      type: string
+    element_label_colon:
+      type: boolean
+    element_wrapper_type:
+      type: string
+    element_wrapper_class:
+      type: string
+    element_default_classes:
+      type: boolean
+    empty:
+      type: string
+    hide_empty:
+      type: boolean
+    empty_zero:
+      type: boolean
+    hide_alter_empty:
+      type: boolean
+
+# Views field plugin: Drupal\views\Plugin\views\field\Boolean
+views.field.boolean:
+  type: 'views.field.base'
+  mapping:
+    type:
+      type: string
+    type_custom_true:
+      type: string
+    type_custom_false:
+      type: string
+    not:
+      type: string
+
+# Views field plugin: Drupal\views\Plugin\views\field\Broken
+views.field.broken:
+  type: 'views.field.base'
+  mapping:
+
+# Views field plugin: Drupal\views\Plugin\views\field\Counter
+views.field.counter:
+  type: 'views.field.base'
+  mapping:
+    counter_start:
+      type: integer
+
+# Views field plugin: Drupal\views\Plugin\views\field\Custom
+views.field.custom:
+  type: 'views.field.base'
+  mapping:
+    alter:
+      type: mapping
+      mapping:
+        contains:
+          type: mapping
+          mapping:
+            alter_text:
+              type: boolean
+    hide_alter_empty:
+      type: boolean
+
+# Views field plugin: Drupal\views\Plugin\views\field\Date
+views.field.date:
+  type: 'views.field.base'
+  mapping:
+    date_format:
+      type: string
+    custom_date_format:
+      type: string
+    timezone:
+      type: string
+
+# Views field plugin: Drupal\views\Plugin\views\field\FileSize
+views.field.file_size:
+  type: 'views.field.base'
+  mapping:
+    file_size_display:
+      type: string
+
+# Views field plugin: Drupal\views\Plugin\views\field\Links
+views.field.links:
+  type: 'views.field.base'
+  mapping:
+    fields:
+      type: string
+    destination:
+      type: boolean
+
+# Views field plugin: Drupal\views\Plugin\views\field\MachineName
+views.field.machine_name:
+  type: 'views.field.base'
+  mapping:
+    machine_name:
+      type: boolean
+
+# Views field plugin: Drupal\views\Plugin\views\field\Numeric
+views.field.numeric:
+  type: 'views.field.base'
+  mapping:
+    set_precision:
+      type: boolean
+    precision:
+      type: integer
+    decimal:
+      type: string
+    separator:
+      type: string
+    format_plural:
+      type: boolean
+    format_plural_singular:
+      type: string
+    format_plural_plural:
+      type: string
+    prefix:
+      type: string
+    suffix:
+      type: string
+
+# Views field plugin: Drupal\views\Plugin\views\field\PrerenderList
+views.field.prerender_list:
+  type: 'views.field.base'
+  mapping:
+    type:
+      type: string
+    separator:
+      type: string
+
+# Views field plugin: Drupal\views\Plugin\views\field\Serialized
+views.field.serialized:
+  type: 'views.field.base'
+  mapping:
+    format:
+      type: string
+    key:
+      type: string
+
+# Views field plugin: Drupal\views\Plugin\views\field\Standard
+views.field.standart:
+  type: 'views.field.base'
+  mapping:
+
+# Views field plugin: Drupal\views\Plugin\views\field\TimeInterval
+views.field.time_interval:
+  type: 'views.field.base'
+  mapping:
+    granularity:
+      type: integer
+
+# Views field plugin: Drupal\views\Plugin\views\field\Url
+views.field.url:
+  type: 'views.field.base'
+  mapping:
+    display_as_link:
+      type: boolean
diff --git a/core/modules/views/config/schema/views.filter.schema.yml b/core/modules/views/config/schema/views.filter.schema.yml
new file mode 100644
index 0000000..b239609
--- /dev/null
+++ b/core/modules/views/config/schema/views.filter.schema.yml
@@ -0,0 +1,172 @@
+# Views filter plugin: Drupal\views\Plugin\views\filter\FilterPluginBase
+views.filter.base:
+  type: 'views.handler.base'
+  mapping:
+    operator:
+      type: string
+    value:
+      type: string
+    group:
+      type: string
+    exposed:
+      type: boolean
+    expose:
+      type: mapping
+      mapping:
+        contains:
+          type: mapping
+          mapping:
+            operator_id:
+              type: string
+            label:
+              type: string
+            description:
+              type: string
+            use_operator:
+              type: boolean
+            operator:
+              type: string
+            identifier:
+              type: string
+            required:
+              type: boolean
+            remember:
+              type: boolean
+            multiple:
+              type: boolean
+            remember_roles:
+              type: string
+    is_grouped:
+      type: boolean
+    group_info:
+      type: mapping
+      mapping:
+        contains:
+          type: mapping
+          mapping:
+            label:
+              type: string
+            description:
+              type: string
+            identifier:
+              type: string
+            optional:
+              type: boolean
+            widget:
+              type: string
+            multiple:
+              type: boolean
+            remember:
+              type: integer
+            default_group:
+              type: string
+            default_group_multiple:
+              type: string
+            group_items:
+              type: string
+
+# Views filter plugin: Drupal\views\Plugin\views\filter\BooleanOperator
+views.filter.boolean_operator:
+  type: views.filter.base
+  mapping:
+    value:
+      type: boolean
+
+# Views filter plugin: Drupal\views\Plugin\views\filter\BooleanOperatorString
+views.filter.boolean_operator_string:
+  type: views.filter.boolean_operator
+
+# Views filter plugin: Drupal\views\Plugin\views\filter\Broken
+views.filter.broken:
+  type: views.filter.base
+
+# Views filter plugin: Drupal\views\Plugin\views\filter\Bundle
+views.filter.bundle:
+  type: views.filter.in_operator
+
+# Views filter plugin: Drupal\views\Plugin\views\filter\Combine
+views.filter.combine:
+  type: views.filter.string
+  mapping:
+    fields:
+      type: sequence
+      seqence:
+        - type: views.field
+
+# Views filter plugin: Drupal\views\Plugin\views\filter\Date
+views.filter.date:
+  type: views.filter.numeric
+  mapping:
+    fields:
+      type: sequence
+      seqence:
+        - type: views.field
+
+# Views filter plugin: Drupal\views\Plugin\views\filter\InOperator
+views.filter.in_operator:
+  type: views.filter.base
+  mapping:
+    operator:
+      type: string
+    value:
+      type: sequence
+      sequence:
+        - type: string
+    expose:
+      type: mapping
+      mapping:
+        contains:
+          type: mapping
+          mapping:
+            reduce:
+              type: boolean
+
+# Views filter plugin: Drupal\views\Plugin\views\filter\String
+views.filter.string:
+  type: views.filter.base
+  mapping:
+    expose:
+      type: mapping
+      mapping:
+        contains:
+          type: mapping
+          mapping:
+            required:
+              type: boolean
+
+# Views filter plugin: Drupal\views\Plugin\views\filter\Numeric
+views.filter.numeric:
+  type: views.filter.base
+  mapping:
+    value:
+      type: mapping
+      mapping:
+        contains:
+          type: mapping
+          mapping:
+            min:
+              type: string
+            max:
+              type: string
+            value:
+              type: string
+
+# Views filter plugin: Drupal\views\Plugin\views\filter\Equality
+views.filter.equality:
+  type: views.filter.base
+
+# Views filter plugin: Drupal\views\Plugin\views\filter\GroupByNumeric
+views.filter.equality:
+  type: views.filter.numeric
+
+# Views filter plugin: Drupal\views\Plugin\views\filter\ManyToOne
+views.filter.many_to_one:
+  type: views.filter.in_operator
+  mapping:
+    operator:
+      type: string
+    value:
+      type: sequence
+      sequence:
+        - type: string
+
diff --git a/core/modules/views/config/schema/views.handler.schema.yml b/core/modules/views/config/schema/views.handler.schema.yml
new file mode 100644
index 0000000..38a4aca
--- /dev/null
+++ b/core/modules/views/config/schema/views.handler.schema.yml
@@ -0,0 +1,21 @@
+# Views handler: Drupal\views\Plugin\views\HandlerBase
+views.handler.base:
+  mapping:
+    id:
+      type: boolean
+      label: 'A unique ID per handler type'
+    table:
+      type: string
+      label: 'The views_data table for this handler'
+    field:
+      type: string
+      label: 'The views_data field for this handler'
+    relationship:
+      type: string
+      label: 'The ID of the relationship instance used by this handler'
+    group_type:
+      type: string
+      label: 'A sql aggregation type'
+    admin_label:
+      type: label
+      label: 'A string to identify the handler instance in the admin UI.'
diff --git a/core/modules/views/config/schema/views.pager.schema.yml b/core/modules/views/config/schema/views.pager.schema.yml
new file mode 100644
index 0000000..261ac8f
--- /dev/null
+++ b/core/modules/views/config/schema/views.pager.schema.yml
@@ -0,0 +1,86 @@
+# Views pager plugin: Drupal\views\Plugin\views\pager\PagerPluginBase
+views.pager.*:
+  type: mapping
+  mapping:
+    offset:
+      type: integer
+      label: Offset
+
+# Views pager plugin: Drupal\views\Plugin\views\pager\PagerPluginBase
+views.pager.sql_base:
+  type: 'views.pager.%'
+  mapping:
+    items_per_page:
+      type: integer
+      label: Items per page
+    total_pages:
+      type: integer
+      label: Number of pages
+    id:
+      type: integer
+      label: Pager ID
+    tags:
+      type: mapping
+      label: Pager link labels
+      mapping:
+        next:
+          type: string
+          label: Next page link text
+        previous:
+          type: string
+          label: Previous page link text
+    expose:
+      type: mapping
+      label: Exposed options
+      mapping:
+        items_per_page_label:
+          type: boolean
+          label: Items per page label
+        items_per_page_options:
+          type: string
+          label: Exposed items per page options
+        items_per_page_options_all:
+          type: boolean
+          label: Include all items option
+        items_per_page_options_all_label:
+          type: string
+          label: All items label
+        offset:
+          type: boolean
+          label: Expose Offset
+        offset_label:
+          type: string
+          label: Offset label
+
+# Views pager plugin:  Drupal\views\Plugin\views\pager\None
+views.pager.none:
+  type: 'views.pager.%'
+  label: Display all items
+
+# Views pager plugin:  Drupal\views\Plugin\views\pager\Some
+views.pager.some:
+  type: 'views.pager.%'
+  label: Display a specified number of items
+  mapping:
+    items_per_page:
+      type: integer
+      label: Items per page
+
+# Views pager plugin:  Drupal\views\Plugin\views\pager\Mini
+views.pager.mini:
+  type: 'views.pager.sql_base'
+  label: 'Paged output, mini pager'
+
+# Views pager plugin:  Drupal\views\Plugin\views\pager\Full
+views.pager.full:
+  type: 'views.pager.sql_base'
+  label: 'Paged output, full pager'
+  mapping:
+    tags:
+      mapping:
+        first:
+          type: string
+          label: First page link text
+        last:
+          type: string
+          label: Last page link text
diff --git a/core/modules/views/config/schema/views.schema.yml b/core/modules/views/config/schema/views.schema.yml
index 59c90a5..c838768 100644
--- a/core/modules/views/config/schema/views.schema.yml
+++ b/core/modules/views/config/schema/views.schema.yml
@@ -48,185 +48,3 @@ views.view.*:
             display_options:
               type: 'views.display.[%parent.display_plugin]'
 
-# Views display: common
-# Options for Drupal\views\Plugin\views\display\DisplayPluginBase
-views.display.*:
-  type: mapping
-  label: 'Display options'
-  mapping:
-    title:
-      type: text
-      label: 'Display title'
-    format:
-      label: 'Format'
-    fields:
-      type: sequence
-      label: 'Fields'
-      sequence:
-        - type: 'views.field.[table]-[field]'
-    pager:
-      type: mapping
-      label: 'Pager'
-      mapping:
-        type:
-          label: 'Pager type'
-        options:
-          type: mapping
-          label: 'Options'
-          mapping:
-            offset:
-              type: integer
-              label: 'Offset'
-
-    exposed_form:
-      type: mapping
-      label: 'Exposed form'
-      mapping:
-        type:
-          label: 'Exposed form type'
-    access:
-      type: mapping
-      label: 'Access'
-      mapping:
-        type:
-          label: 'Access type'
-    other:
-      label: 'Other'
-    cache:
-      type: mapping
-      label: 'Cache'
-      mapping:
-        type:
-          label: 'Cache type'
-    sorts:
-      type: sequence
-      label: 'Sorts'
-      sequence:
-        - type: 'views.sort.[table]-[field]'
-    arguments:
-      type: sequence
-      label: 'Arguments'
-      sequence:
-        - type: 'views.argument.[table]-[field]'
-    filters:
-      type: sequence
-      label: 'Filters'
-      sequence:
-        - type: 'views.filter.[table]-[field]'
-    style:
-      type: mapping
-      label: 'Style'
-      mapping:
-        type:
-          label: 'Type'
-    row:
-      type: mapping
-      label: 'Row'
-      mapping:
-        type:
-          label: 'Row type'
-        options:
-          include: 'views.row.[%parent.type]'
-    query:
-      type: mapping
-      label: 'Query'
-      mapping:
-        type:
-          label: 'Query type'
-        options:
-          type: mapping
-          label: 'Query options'
-          mapping:
-            query_comment:
-              type: boolean
-              label: 'Query comment'
-    defaults:
-      type: mapping
-      label: 'Defaults'
-      mapping:
-        style_plugin:
-          label: 'Style plugin'
-        style_options:
-          type: 'views.style.[%parent.style_plugin]'
-        row_plugin:
-          label: 'Row plugin'
-        row_options:
-          type: 'views.style.[%parent.row_plugin]'
-    relationships:
-      type: sequence
-      label: 'Relationships'
-      sequence:
-        - type: 'views.relationship.[table]-[field]'
-
-# Options for Drupal\views\Plugin\views\display\PathPluginBase
-views.display.PathPluginBase:
-  include: 'views.display.%'
-  type: mapping
-  mapping:
-    path:
-      type: string
-      label: 'Page path'
-
-# Views display plugin: Drupal\views\Plugin\views\display\Page
-views.display.page:
-  type: 'views.display.PathPluginBase'
-  label: 'Page display options'
-  mapping:
-    menu:
-      type: mapping
-      label: 'Menu'
-      mapping:
-        type:
-          label: 'Type'
-        title:
-          type: text
-          label: 'Title'
-        description:
-          type: text
-          label: 'Description'
-        weight:
-          type: integer
-          label: 'Weight'
-        name:
-          label: 'Menu name'
-        context:
-          label: 'Context'
-    tab_options:
-      type: mapping
-      label: 'Tab options'
-      mapping:
-        type:
-          label: 'Type'
-        title:
-          type: text
-          label: 'Title'
-        description:
-          type: text
-          label: 'Description'
-        weight:
-          type: integer
-          label: 'Weight'
-        name:
-          label: 'Menu name'
-
-# Views display plugin: Drupal\views\Plugin\views\display\Block
-views.display.block:
-  type: 'views.display.%'
-  label: 'Block display options'
-  mapping:
-    block_description:
-      type: text
-      label: 'Block name'
-    block_caching:
-      label: 'Block caching'
-
-# Views display plugin: Drupal\views\Plugin\views\display\Feed
-views.display.feed:
-  type: 'views.display.PathPluginBase'
-  label: 'Feed display options'
-  mapping:
-    sitename_title:
-      type: boolean
-      label: 'Use the site name for the title'
-    displays:
-      label: 'The feed icon will be available only to the selected displays.'
diff --git a/core/modules/views/config/schema/views.sort.schema.yml b/core/modules/views/config/schema/views.sort.schema.yml
new file mode 100644
index 0000000..21755fd
--- /dev/null
+++ b/core/modules/views/config/schema/views.sort.schema.yml
@@ -0,0 +1,18 @@
+views.sort.*:
+  type: mapping
+  mapping:
+    field:
+      type: string
+      label: Field name
+    id:
+      type: string
+      label: Field ID
+    order:
+      type: string
+      label: Order
+    table:
+      type: string
+      label: Table name
+    plugin_id:
+      type: string
+      label: Plugin ID
