답변:
모든 사용자 에이전트 (브라우저)는 버전 속성을 무시하므로 언제든지 삭제할 수 있습니다.
SVG 인라인을 HTML 페이지에 임베드하고 해당 페이지를 그대로 제공 text/html하면 xmlns 속성이 필요하지 않습니다 . HTML 문서에 SVG 인라인을 포함시키는 것은 HTML5의 일부로 등장한 상당히 최근의 혁신입니다.
그러나 페이지를 image / svg + xml 또는 application / xhtml + xml 또는 사용자 에이전트가 XML 파서를 사용하게하는 다른 MIME 유형으로 제공하는 경우 xmlns 속성 이 필요합니다 . 이것은 최근까지만 할 수있는 유일한 방법이므로 이와 같은 많은 콘텐츠가 제공됩니다.
<!DOCTYPE svg xmlns="www.w3.org/2000/svg">작동하지만 xmlns를 제거하거나 변경하면 <!DOCTYPE svg xmlns="www.example.com">작동하지 않습니다. 왜 그런 겁니까?
xmlns="http://www.w3.org/2000/svg"속성은 다음과 같습니다
<svg>. 2xmlns:xlink="http://www.w3.org/1999/xlink"속성은 다음과 같습니다
<svg> 으로 되는 XLink : 속성. 2version="1.1"속성은 다음과 같습니다
1 국제화 된 자원 식별자 (RFC3987)
2 HTML5 이후
3 XML (Extensible Markup Language) 1.0
4 추가 메이저 버전이 출시 될 때까지.
5 SVG 2, W3C 후보 추천, 2018 년 8 월 7 일
versionxml 선언 ( <?xml version...)의 version속성을 <svg>요소 의 속성으로 착각하지 마십시오 . 첫 번째는 XML 마크 업 언어의 버전에 관한 것이고 후자는 SVG의 버전을 지정합니다. 이 답변의 저자는 ³의 SVG 사양이 아닌 XML을 참조하여 실수를 범했습니다. 나는 그것을 고치려고 노력했지만 일부 바보들은 편집을 거부했다.
두 답변에 모두 추가하고 싶지만 포인트가 없으며 새로운 답변을 추가하고 있습니다. Chrome (버전 63.0.3239.132 (공식 빌드) (64 비트 Windows))에 대한 최근 테스트에서 다음을 발견했습니다.
xhr.responseText및을 사용하십시오 elm.innerHTML. xmlns가 필요하지 않습니다.xhr.responseXML.documentElement및 elm.appendChild()나 elm.insertBefore(). 인라인 SVG를 생성하는이 방법은에서와 같이 기본 SVG 네임 스페이스를 선언하지 않고 반 베이크 결과를 생성합니다 xmlns="http://www.w3.org/2000/svg". <svg>는 HTML로로드되지만 getElementById()<svg> 요소에서 인식되지 않는 등의 문서 수준 함수 입니다. HTML 외부에서 XMLHttpRequest XML 파서를 사용하기 때문이라고 가정합니다.MDN WebDoc 은 SVG 버전 속성에 대해
SVG 2부터 사용되지 않음
이 기능은 더 이상 권장되지 않습니다. 일부 브라우저는 여전히이를 지원할 수 있지만 관련 웹 표준에서 이미 제거되었거나 삭제 중이거나 호환성 목적으로 만 유지 될 수 있습니다. 사용하지 말고 가능한 경우 기존 코드를 업데이트하십시오. 결정을 안내하려면이 페이지 하단의 호환성 표를 참조하십시오. 이 기능은 언제든지 작동하지 않을 수 있습니다.version 속성은 SVG 문서가 준수하는 사양을 나타내는 데 사용됩니다. 루트 요소에서만 허용됩니다. 이는 순전히 자문이며 렌더링 또는 처리에 영향을 미치지 않습니다.
추신 : SVG 2는 아직 표준이 아닙니다.