Repository: angular
Issue: Angular converts schema.org properties to lower case when loading a component via router-outlet
Labels: type: bug/fix,freq1: low,area: core,state: confirmed,core: dynamic view creation,P4

<!--
PLEASE HELP US PROCESS GITHUB ISSUES FASTER BY PROVIDING THE FOLLOWING INFORMATION.

ISSUES MISSING IMPORTANT INFORMATION MAY BE CLOSED WITHOUT INVESTIGATION.
-->
This is my first issue so please let me know if there is anything missing.

## I'm submitting a...
<!-- Check one of the following options with "x" -->
<pre><code>
[ ] Regression (a behavior that used to work and stopped working in a new release)
[x] Bug report  <!-- Please search GitHub for a similar issue or PR before submitting -->
[ ] Performance issue
[ ] Feature request
[ ] Documentation issue or request
[ ] Support request => Please do not submit support request here, instead see https://github.com/angular/angular/blob/master/CONTRIBUTING.md#question
[ ] Other... Please describe:
</code></pre>

## Current behavior
In Angular, when trying to use schema.org properties (via RDFa or Microdata) as component selectors, the attribute values get converted to lowercase. For example, if I want to markup a product and write
`selector: 'section[vocab="http://schema.org/"][typeof="Product"]'`,
The code that gets rendered is the following:
`<section typeof="product" vocab="http://schema.org/" _nghost-c1="">`
The problem occurs only when loading a component via `<router-outlet>`.

## Expected behavior
The attribute values should stay uppercase.

## Minimal reproduction of the problem with instructions
<!--
For bug reports please provide the *STEPS TO REPRODUCE* and if possible a *MINIMAL DEMO* of the problem via
https://stackblitz.com or similar (you can use this template as a starting point: https://stackblitz.com/fork/angular-gitter).
-->
1. Create an app with routing and some component behind a route.
2. Create a `<router-outlet>` in the `<app-root>` and configure a route to your component
3. Change the component selector to a schema.org definition, for example `'section[vocab="http://schema.org/"][typeof="Product"]'`
4. Open the route and look in the inspector to see the rendered source code

## What is the motivation / use case for changing the behavior?
Altough the Google "Structured Data Testing Tool" recognises the schema types, some other linters do not. To my knowledge, the schemas "http://schema.org/Product" and"http://schema.org/product" are not the same and should not be handled that way.

## Environment

<pre><code>
Angular version: 6.1.1
<!-- Check whether this is still an issue in the most recent Angular version -->

Browser:
- [x] Chrome (desktop) version 68
- [ ] Chrome (Android) version XX
- [ ] Chrome (iOS) version XX
- [x] Firefox version 61
- [ ] Safari (desktop) version XX
- [ ] Safari (iOS) version XX
- [ ] IE version XX
- [x] Edge version 40
 
For Tooling issues:
- Node version: XX  <!-- run `node --version` -->
- Platform:  Windows<!-- Mac, Linux, Windows -->

Others:
<!-- Anything else relevant?  Operating system version, IDE, package manager, HTTP server, ... -->
Occurs only when using the routing module.
</code></pre>