답변:
모든 사용자 에이전트 (브라우저)는 버전 속성을 무시하므로 언제든지 삭제할 수 있습니다.
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 일
version
xml 선언 ( <?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는 아직 표준이 아닙니다.