16장: 링크

16.1. 참조

16.1.1. 개요

인터넷에서 리소스는 URL (국제화 리소스 식별자)을 사용하여 식별됩니다. 예를 들어, http://example.com에 위치한 someDrawing.svg라는 SVG 파일은 다음과 같은 URL을 가질 수 있습니다:

http://example.com/someDrawing.svg

URL은 또한 XML 문서 내의 특정 요소를 URL 프래그먼트 식별자를 포함하여 지정할 수 있습니다. URLURL 프래그먼트 식별자가 포함되면, 선택적으로 기본 URL 다음에 "#" 문자가 오고, 그 뒤에 URL 프래그먼트 식별자가 옵니다. 예를 들어, 다음 URL은 someDrawing.svg 파일 내에서 ID가 "Lamppost"인 요소를 지정하는 데 사용할 수 있습니다:

http://example.com/someDrawing.svg#Lamppost

16.1.2. 정의

URL 참조
URL 참조는 국제화 리소스 식별자 [rfc3987]로 정의됩니다. 참조참조와 ‘defs’ 요소를 참고하세요.
프래그먼트 식별자가 포함된 URL 참조
국제화 리소스 식별자 [rfc3987]로, <absoluteURL> 또는 <relativeURL>과 해당 리소스 내 프래그먼트 식별자를 포함할 수 있습니다. 자세한 내용은 참조와 ‘defs’ 요소를 참고하세요. 프래그먼트 식별자가 포함된 URL 참조는 페인트 서버 참조에 자주 사용됩니다.
외부 파일 참조
현재 문서의 일부가 아닌 리소스를 참조하는 URL 참조 또는 프래그먼트 식별자가 포함된 URL 참조입니다.
동일 문서 URL 참조
프래그먼트 식별자가 포함된 URL 참조로, URL의 비프래그먼트 부분이 현재 문서를 참조합니다.
데이터 URL
URL 참조 중, "data" URL 스킴 [rfc2397]을 사용해 지정된 임베디드 문서를 가리킵니다. 데이터 URL 참조는 외부 파일 참조동일 문서 URL 참조에 속하지 않습니다.
순환 참조
URL 참조가 직접 또는 간접적으로 자기 자신을 참조하는 경우는 유효하지 않은 순환 참조로 처리됩니다. 순환 참조의 판단 기준은 참조된 리소스의 사용 방식에 따라 달라지며, 현재 요소의 조상에 대한 참조도 포함될 수 있습니다.
미해결 참조
아직 처리 중이며, 오류나 식별된 리소스로 판정되지 않은 참조입니다.
잘못된 참조

다음 중 하나라도 해당되면 잘못된 참조입니다:

  • 순환 참조.
  • URL 참조처리 중에 오류를 발생시키는 경우.
  • URL 참조가 해결될 수 없는 경우.
  • URL 참조가 해당 참조에 적합하지 않은 요소를 가리키는 경우, 잘못된 참조로 처리해야 합니다 (유효한 URL 타겟에서 적합한 타겟 참고). 예를 들어, clip-path 속성은 clipPath 요소만 참조할 수 있습니다. clip-path:url(#MyElement) 설정은 참조된 요소가 clipPath가 아니라면 잘못된 참조입니다.

잘못된 참조는 오류일 수도 있고 아닐 수도 있습니다 (오류 처리 참고), 참조하는 속성이나 속성이 폴백 동작을 정의하는지 여부에 따라 달라집니다.

16.1.3. URL과 URI

국제화 리소스 식별자(URL)는 통합 리소스 식별자(URI)를 더 일반화한 개념입니다. URL은 유니버설 문자 집합 [UNICODE]에서 선택된 문자들의 시퀀스입니다. URI는 훨씬 더 제한된 문자 집합으로 구성됩니다. 모든 URI는 이미 적합한 URL입니다. URL에서 URI로의 매핑은 URL 명세에서 정의되어 있으며, 이로 인해 URL을 XML 문서에서 URI 대신 사용하여 리소스를 식별할 수 있습니다. 네트워크에서 URL을 직접 지원하지 않는 프로토콜의 경우, URL을 URI로 변환하여 사용할 수 있습니다.

이전 버전의 SVG는 XLink를 따라 URL 참조 타입을 URI 또는 특정 이스케이프 절차를 적용한 후 URL이 되는 문자 시퀀스로 정의했습니다. 이스케이프 절차는 XLink 1.0 명세 [xlink]와 W3C XML Schema Part 2: Datatypes 명세 [xmlschema-2]에서 반복적으로 설명되었습니다. 이러한 중복은 오류와 불일치의 가능성을 높였지만, URL 명세가 아직 표준화되지 않았기 때문에 이루어진 것입니다.

이 명세에서는 "URI 또는 문자 시퀀스 + 알고리즘"에 대해 올바른 용어인 URL을 사용하며, URL을 URI로 변환하는 이스케이프 방법은 URL 명세 [rfc3987]를 참조하여 정의합니다. 이 명세는 IETF 현행 표준(Proposed Standard)입니다. 다른 W3C 명세들도 시간이 지나면서 이러한 중복된 이스케이프 절차 설명을 제거하고 URL을 직접 참조하도록 수정될 예정입니다.

16.1.4. 문법 형태: URL 및 <url>

SVG에서 두 요소 간의 대부분의 구조적 관계는 ‘href’ 속성에 URL 값을 사용하여 지정합니다. 하지만 많은 표시 속성은 URL과 텍스트 문자열 모두를 콘텐츠로 허용합니다. 텍스트 문자열과 상대 URL을 구분하기 위해, <url> 생성식을 표시 속성 및 해당 CSS 속성 [css-values]에 사용합니다. 이는 단순히 함수 표기법으로 구분된 URL입니다.

SVG는 절대 및 상대 URL 참조를 다른 객체에 광범위하게 사용합니다. 예를 들어, linearGradient 요소는 다른 그라디언트 요소를 기반으로 할 수 있으며, 두 요소 간의 차이만을 지정하기 위해 href 속성에 URL로 원본 그라디언트를 참조합니다:

<linearGradient id="SourceGradient">...</linearGradient>
<linearGradient id="MyGradient"
                href="#SourceGradient">...</linearGradient>

해당 그라디언트로 사각형을 채우려면, 사각형의 fill 속성 값을 관련 linearGradient 요소에 대한 URL 참조로 지정할 수 있습니다; 다음은 예시입니다:

<rect fill="url(#MyGradient)"/>

16.1.5. URL 참조 속성

URL 참조는 일반적으로 ‘href’ 속성으로 지정합니다. 이 속성의 값은 원하는 리소스(또는 프래그먼트 식별자가 있다면 보조 리소스)에 대한 참조를 형성합니다. ‘href’ 속성의 값은 반드시 URL이어야 합니다.

어떤 애플리케이션도 값이 URL 참조인지 확인하는 것은 현실적으로 불가능하므로, 이 명세는 URL 현행 표준의 방침을 따르며 SVG 작성 도구에 해당 적합성 검사 요구사항을 부여하지 않습니다. 잘못된 URL이라도 SVG 문서가 비적합 문서가 되지는 않습니다. SVG 사용자 에이전트는 URL 참조 처리에 명시된 대로, 필요할 때만 URL을 처리하면 됩니다.

16.1.6. 사용 중단된 XLink URL 참조 속성

이전 SVG 버전에서는 ‘href’ 속성이 XLink 네임스페이스 [xlink]로 지정되었습니다. 이 사용법은 현재 사용 중단되었으며, 대신 URL 참조를 네임스페이스 없는 ‘href’ 속성으로 지정해야 합니다.

하위 호환성을 위해, 사용 중단된 xlink:href 속성과 xlink:title 속성 역시 아래에 정의되어 있습니다.

속성 정의:

이름 초기값 애니메이션 가능
xlink:href URL [URL] (없음) (아래 참조)

하위 호환을 위해, ‘href’ 속성이 있는 요소는 XLink 네임스페이스 [xlink] 내의 ‘href’ 속성도 인식합니다.

‘href’ 속성이 네임스페이스 있는 경우와 네임스페이스 없는 경우 둘 다 존재하면, 네임스페이스 없는 속성값을 사용해야 하며, XLink 네임스페이스의 속성은 무시해야 합니다.

적합한 SVG 생성기는 네임스페이스 없는 ‘href’ 속성만 생성해야 합니다. 단, 하위 호환을 위해 XLink 네임스페이스의 ‘href’ 속성도 함께 생성할 수 있습니다.

이 속성은 해당 ‘href’ 속성이 애니메이션 가능으로 정의된 경우에만 애니메이션 가능입니다.

이름 초기값 애니메이션 가능
xlink:title <anything> (없음) 아니오

링크나 리소스의 의미를 사람이 읽을 수 있도록 설명하는 데 사용되던 사용 중단된 속성입니다. 새로운 콘텐츠에서는 ‘xlink:title’ 속성 대신 ‘title’ 자식 요소를 사용해야 합니다.

이 정보의 사용 방식은 처리 유형에 따라 크게 달라집니다. 예를 들어, 시각 장애인용 애플리케이션에서 제목을 제공하거나, 링크 목록을 만들거나, 사용자가 마우스 포인터를 시작 리소스 위에 올려둘 때 도움말 텍스트를 나타내는 데 사용할 수 있습니다.

‘title’ 속성을 사용할 경우, 반드시 XLink 네임스페이스에 있어야 합니다. XML Linking Language(XLink) [xlink] 참고.

사용 중단된 XLink 속성 xlink:href 또는 xlink:title을 사용할 때는 명시적으로 XLink 네임스페이스 선언을 지정해야 합니다 [xml-names], XLink 네임스페이스 선언을 제공하는 가장 간단한 방법은, 해당 XLink 속성을 사용하는 콘텐츠의 svg 요소에 XLink 네임스페이스용 ‘xmlns’ 속성을 포함하는 것입니다. 예시:

<svg xmlns:xlink="http://www.w3.org/1999/xlink" ...>
  <image xlink:href="foo.png" .../>
</svg>

16.1.7. URL 참조 처리

URL은 필요할 때 리소스를 식별하기 위해 다음과 같이 처리됩니다:

레거시 xlink:href 속성은, 해당하는 href 속성이 요소에 없을 때만 href 속성 처리 시점에 처리됩니다.

URL 처리 과정은 세 단계로 이루어집니다: 절대 URL 생성; 문서 가져오기(필요한 경우); 타겟 요소 식별(필요한 경우).

URL 참조는 처리 결과가 잘못된 참조이거나 타겟 리소스가 식별될 때까지 미해결 참조 상태입니다. 구조적으로 외부 요소의 표시 속성이 아닌 속성에서 미해결 참조가 있으면 load 이벤트가 발생하지 않습니다. 사용자 에이전트는 동일 문서 URL 참조가 아닌 참조의 해상에 시간 제한을 둘 수 있으며, 이 제한 이후에는 네트워크 오류로 처리되어 (잘못된 참조가 됨) 처리해야 합니다.

동적 문서에서 동일 문서 URL 참조의 경우, 속성이나 프로퍼티의 수정·애니메이션 또는 요소가 DOM에서 제거되면 URL 참조가 다시 미해결 참조로 돌아갈 수 있습니다. 사용자 에이전트는 참조된 리소스를 식별하기 위해 다시 URI 해석을 시도해야 합니다.

16.1.7.1. 절대 URL 생성

URL 참조가 상대 URL인 경우, 사용 전에 반드시 절대 URL로 변환해야 합니다. 절대 URL은 다음 방법 중 하나로 생성해야 합니다:

‘xml:base’ 속성은 XML 문서에서만 효과가 있습니다; SVG 문서 및 XHTML 문서는 포함되지만, XML이 아닌 HTML 문서에서는 효과가 없습니다. 반면, base 요소는 SVG 또는 HTML 문서에서 상대 URL에 영향을 주며, 문서 기본 URL을 변경합니다.

HTTP 등 프로토콜이 URL을 직접 지원하지 않으면, URL 명세 [rfc3987] 3.1절에 따라 사용자 에이전트가 URL을 URI로 변환해야 합니다.

절대 URL 생성 후:

CSS 값 및 단위에서 정의된 대로, 스타일 속성의 프래그먼트만 포함된 URL은 선언된 파일에 관계없이 동일 문서 URL 참조로 처리해야 합니다.

16.1.7.2. 문서 가져오기

SVG 속성과 프로퍼티는 다른 문서를 참조할 수 있습니다. 이러한 URL을 처리할 때, 사용자 에이전트는 이 섹션에 설명된 대로 참조 문서를 가져와야 하며, 다음 조건이 있는 경우는 제외합니다:

인터넷에서 외부 리소스를 가져올 때, 사용자 에이전트는 HTML에서 정의한 잠재적 CORS 요청을 반드시 사용해야 하며 corsAttributeState는 다음과 같이 설정합니다:

base

요청의 originHTML과 동일한 규칙으로 계산되며, SVG script 요소는 HTML script 요소처럼, SVG image 요소는 HTML img 요소처럼 취급합니다. 기본 origin 동작taint로 설정되어야 합니다.

향후 SVG 명세에서는 href 속성이 있는 다른 SVG 요소에서도 CORS 참조를 활성화할 수 있습니다.

가져오기 알고리즘이 오류 또는 빈 응답 본문을 반환하면 참조 URL은 잘못된 참조로 처리됩니다.

유효한 응답이 반환되고, 해당 참조의 유효한 URL 타겟이 특정 요소 타입을 포함한다면, 사용자 에이전트는 서브리소스 문서 처리로 계속 진행해야 합니다. 그렇지 않고 전체 문서만 유효한 경우에는, 가져온 문서가 참조 리소스가 됩니다.

16.1.7.3. 하위 리소스 문서 처리

그 외의 경우, 하위 리소스를 파싱하여 타겟 요소를 식별해야 합니다. 가져온 문서가 사용자 에이전트가 파싱하여 문서 객체 모델을 생성할 수 있는 타입이라면, 보안 정적 모드로 처리해야 합니다 (즉, 추가 외부 리소스를 가져오지 않고, 스크립트 실행이나 애니메이션/비디오 재생을 하지 않음). 외부 하위 리소스 참조로 생성된 문서 모델은 반드시 불변(읽기 전용)이어야 하며, 수정할 수 없습니다.

가져온 파일에서 문서 객체 모델을 생성할 수 있으면, URL 처리는 타겟 요소 식별에 명시된 대로, 파싱된 하위 리소스 문서를 참조 문서로 사용하여 계속 진행해야 합니다. 사용자 에이전트는 문서를 완전히 파싱하기 전에 타겟 식별 과정을 시작할 수 있습니다.

사용자 에이전트는 외부 리소스 URL과 연관된 파싱된 문서 목록을 유지할 수 있으며, 처리 모드, 캐싱, CORS 요구사항을 위반하지 않는 한, 후속 참조에서 해당 문서를 재사용할 수 있습니다.

16.1.7.4. 타겟 요소 식별

특정 요소에 대한 URL 참조의 경우, 참조가 유효한지는 참조 문서 내에서 요소를 찾을 수 있는지와 해당 요소가 허용된 타입인지에 따라 결정됩니다.

이전 처리 단계에서 식별한 참조 문서(외부 하위 리소스 문서 또는 현재 문서)를 사용하여, 타겟 요소는 다음과 같이 식별합니다:

타겟 요소는 해당 참조에 대해 유효한 URL 타겟인 경우에만 참조 리소스를 제공합니다.

16.1.7.5. 유효한 URL 타겟

href (또는 xlink:href) 속성에 대한 유효한 타겟 요소 타입은 해당 속성을 가진 요소에 따라 다음과 같습니다:

이 명세에서 정의된 스타일 속성의 유효한 타겟 요소 타입은 다음과 같습니다:

타겟 요소 또는 이미지 파일 모두 참조 가능한 경우 (예: shape-inside, shape-subtract, mask 속성 등), 사용자 에이전트는 타겟 요소를 식별하고 해당 요소가 유효한 타겟인지 판단해야 합니다. 해석된 타겟 요소가 허용된 타입이 아니면, 참조 리소스는 전체 문서 파일이 되며, 타겟 프래그먼트는 이미지 처리 시 해당 파일 내에서 사용됩니다.

그 외 모든 경우, 해석된 타겟 요소 타입(또는 문서 타입)이 URL 참조에 허용되지 않으면, 잘못된 참조가 됩니다.

SVG는 링크(즉, 하이퍼링크 또는 웹 링크)를 나타내기 위해 a 요소를 제공합니다. a 요소가 href 또는 xlink:href 속성을 갖고 있으면 링크를 형성합니다; 이 속성이 없으면 a 요소는 비활성 링크 자리 표시자 역할을 합니다.

SVG 1.1은 XLink 명세([XLink])에 따라 XLink 네임스페이스에 정의된 속성으로 링크를 정의했습니다. SVG 2는 HTML 링크와 일관된 기본 네임스페이스의 대체 속성 집합을 사용하며 XLink 속성은 사용 중단됨.

a 요소는 부모가 포함할 수 있는 모든 요소를 포함할 수 있지만, 다른 a 요소는 포함할 수 없습니다; 동일한 요소가 그래픽 및 텍스트 링크 콘텐츠 모두에 사용됩니다. 링크는 중첩될 수 없습니다; a 요소가 다른 하이퍼링크 요소(다른 네임스페이스 포함)의 후손이면, 사용자 에이전트는 해당 href 속성을 무시하고 비활성으로 처리해야 합니다. 잘못된 a 요소도 일반 컨테이너 요소로 렌더링되어야 합니다.

잘못된 중첩 링크의 렌더링은 위험에 처해 있으며, unknown 요소의 렌더링 결정과 동기화될 가능성이 높습니다.

포인터 이벤트 처리에서, 각 개별 렌더링된 요소에 대해 a 요소 내에 링크 히트 영역이 정의됩니다 (해당 요소의 pointer-events 속성 값에 따라), a 요소 자체의 경계 박스가 아니라 각 하위 요소 별로 지정됩니다. 사용자 에이전트는 모든 링크가 포커스 가능하고 키보드 명령으로 활성화될 수 있도록 보장해야 합니다.

원격 리소스(링크 목적지)는 a 요소의 href 속성으로 지정된 URL로 정의됩니다. 원격 리소스는 이미지, 동영상, 음성, 프로그램, 다른 SVG 문서, HTML 문서, 현재 문서 내의 요소, 다른 문서 내의 요소 등 모든 웹 리소스가 될 수 있습니다. 사용자가 링크를 활성화하면(마우스 클릭, 키보드 입력, 음성 명령 등), 사용자 에이전트는 지정된 리소스 문서를 가져와서 표시하거나 다운로드 파일로 제공해야 합니다.

예제 link01은 타원에 링크를 할당합니다.

<?xml version="1.0" standalone="no"?>
<svg width="5cm" height="3cm" viewBox="0 0 5 3" version="1.1"
     xmlns="http://www.w3.org/2000/svg">
  <desc>예제 link01 - 타원에 링크 적용
  </desc>
  <rect x=".01" y=".01" width="4.98" height="2.98" 
        fill="none" stroke="blue"  stroke-width=".03"/>
  <a href="http://www.w3.org">
    <ellipse cx="2.5" cy="1.5" rx="2" ry="1"
             fill="red" />
  </a>
</svg>
예제 link01 — 타원에 링크 적용

예제 link01

이 예제를 SVG로 보기 (SVG 지원 브라우저에서만)

위의 SVG 파일을 SVG와 HTML을 모두 지원하는 사용자 에이전트로 보는 경우, 타원을 클릭하면 현재 창이나 프레임이 W3C 홈페이지로 대체됩니다.

a
카테고리:
컨테이너 요소, 렌더링 요소
콘텐츠 모델:
설명 콘텐츠, 부모의 콘텐츠 모델에서 허용하는 모든 요소 및 텍스트(단, 다른 a 요소는 제외). 부모가 switch 요소라면, 가장 가까운 switch가 아닌 상위 요소의 콘텐츠 모델을 사용.
속성:
DOM 인터페이스:

속성 정의:

이름 초기값 애니메이션 가능
href URL [URL] (없음)
참조 객체의 위치를 URL 참조로 표현합니다. URL 참조 속성의 공통 처리 참고.
이름 초기값 애니메이션 가능
target _self | _parent | _top | _blank | <XML-Name> _self

여러 가능한 링크 목적지가 있을 때(예: 부모 문서가 HTML/XHTML 문서에 임베드되었거나 탭 브라우저에서 볼 때) 이 속성을 사용해야 합니다. 이 속성은 링크가 활성화될 때 문서를 열 브라우징 컨텍스트(예: 브라우저 탭, SVG/HTML/XHTML iframe 또는 object 요소)의 이름을 지정합니다:

_self
현재 SVG 이미지를 동일한 브라우징 컨텍스트에서 링크된 콘텐츠로 대체합니다.
_parent
SVG 이미지의 즉시 부모 브라우징 컨텍스트가 링크된 콘텐츠로 대체됩니다(존재하고, 이 문서에서 안전하게 접근 가능할 경우).
_top
활성 윈도우 또는 탭 전체의 콘텐츠가 링크된 콘텐츠로 대체됩니다(존재하고, 이 문서에서 안전하게 접근 가능할 경우).
_blank
링크된 콘텐츠를 표시할 새로운 이름 없는 윈도우 또는 탭을 요청합니다(이 문서에서 안전하게 할 수 있는 경우). 사용자 에이전트가 여러 윈도우/탭을 지원하지 않으면 _top과 동일한 결과가 됩니다.
<XML-Name>
링크된 콘텐츠를 표시할 브라우징 컨텍스트(탭, 인라인 프레임, 오브젝트 등)의 이름을 지정합니다. 만약 해당 이름의 컨텍스트가 이미 존재하고, 이 문서에서 안전하게 접근 가능하면 재사용되어 기존 콘텐츠를 대체합니다. 존재하지 않으면 생성됨('_blank'과 동일하지만 이름이 있음). 이름은 유효한 XML Name이어야 하며, HTML의 유효한 브라우징 컨텍스트 이름 요구사항을 충족하기 위해 밑줄(U+005F LOW LINE)로 시작하지 않아야 합니다.

브라우징 컨텍스트와 브라우징 컨텍스트 간 내비게이션 동작의 보안 제한에 대한 규범적 정의는 HTML [현행 표준]의 웹 페이지 로딩 장입니다.

이전 SVG 버전에서는 특별한 target 값 '_replace'를 정의했습니다. 이는 실제로 잘 구현되지 않았고, '_replace''_self'의 차이는 HTML의 브라우징 컨텍스트 정의 변경으로 불필요해졌습니다. 현재 SVG 문서를 대체하려면 '_self'를 사용하세요.

'_new' 값은 유효한 target 값이 아닙니다. 새 탭/윈도우에서 문서를 열려면 '_blank'를 사용하세요.

이름 초기값 애니메이션 가능
download 아무 값(비어 있지 않으면, 값이 제안 파일명) (없음) 아니오
ping 공백으로 구분된 유효한 비어있지 않은 URL 토큰 [현행 표준] (없음) 아니오
rel 공백으로 구분된 키워드 토큰 [현행 표준] (없음) 아니오
hreflang BCP 47 언어 태그 문자열 [현행 표준] (없음) 아니오
type MIME 타입 문자열 [현행 표준] (없음) 아니오
referrerPolicy referrer policy 문자열 [REFERRERPOLICY] (없음) 아니오
이들 속성은 대상 리소스와 현재 문서의 관계를 추가로 설명합니다. 허용 값과 의미는 HTML의 a 요소 정의를 따릅니다.

16.3. SVG 콘텐츠로의 링크: URL 프래그먼트와 SVG 뷰

SVG 콘텐츠는 종종 어떤 대상을 그림이나 도면으로 표현하므로, 문서의 특정 로 링크할 필요가 많습니다. 뷰란 문서의 특정 부분을 확대하여 보여줄 수 있도록 초기 변환을 지정하는 것을 의미합니다.

16.3.1. SVG 프래그먼트 식별자

SVG 2 요구사항: SVG 1.1 SE 텍스트와 SVG Tiny 1.2의 프래그먼트 식별자 링크 이동 텍스트를 병합하고 미디어 프래그먼트 추가.
결정: SVG 2는 미디어 프래그먼트 식별자를 가짐.
목적: 미디어 프래그먼트 URI와 맞추기 위함.
담당자: Cyril (ACTION-3442)

SVG 문서의 특정 뷰로 링크하려면 프래그먼트 식별자가 포함된 URL 참조가 올바르게 작성된 SVG 프래그먼트 식별자여야 합니다. SVG 프래그먼트 식별자는 MIME 미디어 타입 "image/svg+xml" 리소스를 지정하는 URL의 "selector" 또는 "fragment identifier" 부분의 의미를 정의합니다.

SVG 프래그먼트 식별자는 다음과 같은 형태로 작성할 수 있습니다:

16.3.2. SVG 프래그먼트 식별자 정의

SVG 프래그먼트 식별자는 다음과 같이 정의됩니다:

SVGFragmentIdentifier ::= BareName *( "&" timesegment ) |
                          SVGViewSpec *( "&" timesegment ) |
                          spacesegment *( "&" timesegment ) |
                          timesegment *( "&" spacesegment )

BareName ::= XML_Name
SVGViewSpec ::= 'svgView(' SVGViewAttributes ')'
SVGViewAttributes ::= SVGViewAttribute |
                      SVGViewAttribute ';' SVGViewAttributes

SVGViewAttribute ::= viewBoxSpec |
                     preserveAspectRatioSpec |
                     transformSpec |
                     zoomAndPanSpec
viewBoxSpec ::= 'viewBox(' ViewBoxParams ')'
preserveAspectRatioSpec = 'preserveAspectRatio(' AspectParams ')'
transformSpec ::= 'transform(' TransformParams ')'
zoomAndPanSpec ::= 'zoomAndPan(' ZoomAndPanParams ')'

여기서:

SVG 뷰박스 파라미터는 CSS 변환 명세대로 순서대로 적용됩니다(예: SVG 뷰가 ViewBoxParams에 따라 변환된 후, TransformParams에 따라 추가 변환됨).

프래그먼트 명세에는 공백을 사용할 수 있습니다. SVG 뷰 명세 내에서 숫자 값은 쉼표로 구분(예: #svgView(viewBox(0,0,200,200))), 속성은 세미콜론으로 구분(예: #svgView(viewBox(0,0,200,200);preserveAspectRatio(none)))합니다.

프래그먼트 식별자는 CSSOM 명세의 규칙에 따라 URL 이스케이프될 수 있습니다. 예를 들어, 세미콜론은 %3B로 이스케이프할 수 있으며, 이는 세미콜론이 리스트 구분자로 해석되는 것을 방지해 애니메이션 시 URL 리스트를 올바르게 처리할 수 있게 합니다.

네 가지 SVGViewAttribute 타입은 어떤 순서로든 올 수 있지만, 올바른 SVGViewSpec에서는 각 타입은 최대 한 번만 사용할 수 있습니다.

소스 문서가 SVG 문서로 링크를 수행할 때(예: HTML 앵커 요소 ([현행 표준]; 즉, <a href=...> HTML 요소) 또는 XLink 명세 [xlink] 등), SVG 프래그먼트 식별자는 SVG 문서의 초기 뷰를 다음과 같이 지정합니다:

16.3.3. 미리 정의된 뷰: ‘view’ 요소

‘view’ 요소는 다음과 같이 정의됩니다:

view
카테고리:
없음
콘텐츠 모델:
아래 요소들을 임의의 순서와 개수로 포함 가능:script, style
속성:
DOM 인터페이스:

viewTarget 속성 제거하기로 결정됨.

결정: Paris 2015 F2F Day 3.

담당자: BogdanBrinza.

16.4. DOM 인터페이스

16.4.1. SVGAElement 인터페이스

SVGElement 객체는 DOM에서 a 요소를 나타냅니다.

[Exposed=Window]
interface SVGAElement : SVGGraphicsElement {
  [SameObject] readonly attribute SVGAnimatedString target;
  attribute DOMString download;
  attribute USVString ping;
  attribute DOMString rel;
  [SameObject, PutsForward=value] readonly attribute DOMTokenList relList;
  attribute DOMString hreflang;
  attribute DOMString type;

  attribute DOMString text;

  attribute DOMString referrerPolicy;
};

SVGAElement includes SVGURIReference;
SVGAElement includes HTMLHyperlinkElementUtils;

target, download, ping, rel, hreflang, type IDL 속성은 동일한 이름의 콘텐츠 속성을 반영합니다.

relList IDL 속성은 rel 콘텐츠 속성을 반영합니다.

referrerPolicy IDL 속성은 referrerpolicy 콘텐츠 속성을 반영하며, 알려진 값만으로 제한됩니다.

text IDL 속성은, 값을 가져올 때는 해당 요소의 textContent IDL 속성과 같은 값을 반환하며, 값을 설정할 때는 textContent IDL 속성에 새 값이 설정된 것처럼 동작해야 합니다.

16.4.2. SVGViewElement 인터페이스

SVGViewElement 객체는 DOM에서 view 요소를 나타냅니다.

[Exposed=Window]
interface SVGViewElement : SVGElement {};

SVGViewElement includes SVGFitToViewBox;
SVGViewElement includes SVGZoomAndPan;