DANFA

Ошибки в коде SVG

Приведу ошибки кода SVG, с которыми встречался сам. Ошибки из за которых иконка отображалась частично, либо не отображалась совсем.

Хочу отметить, что ошибки проявляют себя не везде. Например, я пробовал SVG код в онлайн HTML редакторе, и там не было ни каких ошибок, всё работало безупречно. Вставив этот же код на свой сайт, получал ошибку.

Первая моя ошибка - это отсутствие xmlns:xlink="http://www.w3.org/1999/xlink". Иконки пишу в отдельном файле ".svg". Чтобы не плодить повторяющий код, написал макет (Блог: Копирование SVG):
	<defs>
		<g id="model">
			<!-- Код макета -->
		</g>
	</defs>

И при необходимости обращаюсь к нему:
<use xlink:href="#model"/>

При первом же включении макета тегом <use>, с экрана исчезли все иконки. После добавлении строки: xmlns:xlink="http://www.w3.org/1999/xlink", всё заработало, как хотелось:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">

Строка: xmlns:xlink="http://www.w3.org/1999/xlink" сообщает, что ниже находиться xlink стандарт, который предложен организацией w3.
Ещё одна ошибка, которую я допустил, с тегом <path>. Я искал в интернете, как правильно, должен ли иметь закрывающий тег <path> или нет. Скаченные мной иконки для пробы были, как с закрывающим тегом, так и без него. Оба варианта работали, иконки отображались.

Я решил, что буду закрывать тег:
<path d="m47 7h-31v-6h28a3 3 0 0 1 3 3z" fill="var(--smoke)"></path>

Но, при первом написании иконки, это спровоцировало ошибку (Не знаю какую) и иконка не отобразилась. Убрав закрывающий тег, всё стало на свои места, иконка появилась на экране:
<path d="m47 7h-31v-6h28a3 3 0 0 1 3 3z" fill="var(--smoke)"/>
Ошибка с тегом <rect>, из за которой у меня отобразилась только часть иконки, та часть, что была до тега <rect>.

Я по аналогии, как с тегом <path> (Предыдущее сообщение), решил, что буду писать все теги без закрывающего, так и делал. Приходит время использовать тег <rect>, и я его пишу без закрывающего:
<rect fill="var(--cool)" height="20" rx="3" width="18" x="41" y="39"/>

После чего иконка выводится на экран частично, ровно до неправильно написанного тега. Я добавляю закрывающий тег:
<rect fill="var(--cool)" height="20" rx="3" width="18" x="41" y="39"></rect>

И всё сразу отображается.

Хочу отметить, что при написании закрывающего тега </rect>, слэш в конце открывающего необходимо убрать:
<rect fill="var(--cool)" height="20" rx="3" width="18" x="41" y="39"/>

Должно быть так:
<rect fill="var(--cool)" height="20" rx="3" width="18" x="41" y="39"></rect>