도움말 > DITA 작성 개요 > 키 및 키 참조 사용
  
키 및 키 참조 사용
Arbortext Editor는 OASIS DITA Architectural SpecificationKey based (indirect) addressing 섹션에 정의된 대로 키 기반 참조를 지원합니다. Arbortext Editor 사용자 인터페이스에는 DITA 맵에서 키 정의를 정의하고 맵과 주제에 키 참조를 삽입하는 작업을 도와주는 다양한 기능이 제공됩니다. 또한 Arbortext Editor에는 키 정의만 모아 둔 DITA 키 정의 맵이라고 하는 특수 DITA 맵이 있습니다. 이 맵을 사용하여 키 정의에 대한 추가 정보를 제공할 수 있습니다.
키 정의를 보관하는 가장 좋은 방법은 키 정의만 모아 두는 전용 DITA 맵을 사용하는 것입니다. 이렇게 하면 필요할 경우 mapref 요소를 사용하여 키 정의를 포함하는 맵을 다른 DITA 맵에 포함시킬 수 있습니다. DITA 키 정의 맵을 사용하여 키 정의를 보관하는 것이 좋습니다.
키 참조 사용자 인터페이스
다음은 Arbortext Editor 사용자 인터페이스에서 키 참조를 지원하는 부분입니다.
삽입 메뉴에는 다음과 같은 옵션이 있습니다.
키 정의 - 키 정의 탭이 활성화된 리소스 매니저를 엽니다.
키 참조 - 키 참조 삽입 대화 상자를 엽니다.
도구 메뉴에는 다음과 같은 옵션이 있습니다.
키 및 키 참조 - 키 및 키 참조 대화 상자를 엽니다.
키 참조 찾기 - 커서가 있는 태그에 포함된 키만 표시하는 키 및 키 참조 대화 상자를 엽니다.
이 옵션은 Arbortext Editor 바로 가기 메뉴에서도 사용할 수 있습니다.
키 참조 정보 - 키 참조 정보 대화 상자를 엽니다.
이 옵션은 Arbortext Editor 바로 가기 메뉴에서도 사용할 수 있습니다.
마크업 도구 모음에는 키 참조 삽입 버튼이 있으며, 이 버튼을 클릭하면 키 참조 삽입 대화 상자가 열립니다.
다음은 리소스 매니저에서 키 참조를 지원하는 기능입니다.
DITA 맵에서 키 정의 탭을 사용하여 키 정의를 정의할 수 있습니다.
키 정의를 수정하기 위한 이 탭 버전은 속성 수정 대화 상자, 문서 맵 및 열 보기에서 사용할 수 있습니다.
콘텐츠 참조를 제외한 모든 리소스 매니저 탭과 대화 상자에서 Keyref 옵션을 사용할 수 있으며, 이를 통해 참조를 만들거나 수정할 때 keyref 속성에 삽입할 키 이름을 입력하거나 선택할 수 있습니다.
콘텐츠 참조를 위한 리소스 매니저 탭과 대화 상자에서 Conkeyref 옵션을 사용할 수 있으며, 이를 통해 참조를 만들거나 수정할 때 conkeyref 속성에 삽입할 키 이름을 입력할 수 있습니다.
링크/Xref, 콘텐츠 참조주제 탭과 대화 상자를 사용하여 키 정의가 들어 있는 DITA 맵을 찾아볼 수 있으며, 삽입하거나 수정한 참조에 선택한 키 정의를 사용할 수 있습니다.
다음은 키 참조를 지원하는 대화 상자입니다.
키 참조 삽입 - 문서에 키 참조를 삽입할 수 있습니다.
맵 추가/제거 - 키 참조 삽입 대화 상자에 키 정의를 제공하는 맵 목록에서 맵을 추가하거나 제거할 수 있습니다.
참조 선택 - 참조 요소에 정의된 참조 대상이 두 개 이상일 경우 어느 문서를 열 것인지 선택할 수 있습니다.
키 참조 정보 - 키 참조와 연관된 키 정의에 대한 정보를 표시합니다.
키 및 키 참조 - 현재 문서 및 현재 문서에서 참조하는 문서에 포함된 키 정의와 키 참조를 표시합니다.
키 참조 사용자 인터페이스 숨기기
Arbortext Editor에서는 기본적으로 키 참조 사용자 인터페이스를 사용할 수 있습니다. DITA 문서에서 키 참조를 사용하지 않을 경우 사용자 인터페이스에서 키 참조 기능을 제거할 수 있습니다.
키 참조 사용자 인터페이스를 사용할지 여부는 ditakeyrefui 고급 기본 설정으로 제어합니다. 키 참조 사용자 인터페이스를 제거하려면 이 기본 설정의 값을 off로 설정합니다.
키 컨텍스트 설정
Arbortext Editor에서 키 참조와 연관된 키 정의를 찾으려면 현재 문서의 키 컨텍스트를 알아야 합니다. 키 컨텍스트는 관련된 키 정의가 들어 있는 DITA 맵입니다. 정의가 들어 있는 맵이 DITA 키 정의 맵일 경우 키 참조 사용자 인터페이스에 표시할 추가 정보를 키 정의에 추가할 수 있습니다. 문서의 키 컨텍스트는 ditakeycontext set 옵션의 설정에 따라 결정됩니다.
ditakeycontext 옵션은 단일 맵으로 설정되고 현재 세션 동안 현재 문서의 기본 키 컨텍스트를 정의합니다. 문서에 키 컨텍스트가 설정되어 있을 경우 Arbortext Editor에서 참조를 처리하는 방식에 영향을 줍니다. 예를 들어, 이미지 태그에 hrefkeyref 속성이 모두 정의될 경우 Arbortext Editorkeyref 속성의 키 정의의 이미지를 표시합니다. Arbortext Editor는 일치하는 키 정의를 포함하는 키 컨텍스트가 설정되어 있을 경우 키 참조 또는 콘텐츠 키 참조 우선 순위를 부여합니다.
ditakeycontext는 사용자가 명시적으로 설정하거나 경우에 따라 Arbortext Editor에서 자동으로 설정합니다. 예를 들어 상호 참조 및 주제 참조 등을 두 번 클릭하여 문서를 열 경우 원본 문서의 키 컨텍스트가 새로 연 문서에 적용됩니다. 마찬가지로 Arbortext Editor DITA 관련 대화 상자에서 문서를 열 경우 현재 문서의 키 컨텍스트가 연 문서에 적용됩니다. 원본 문서가 키 컨텍스트를 포함하지 않는 DITA 맵일 경우 이 맵이 연 문서의 키 컨텍스트가 됩니다.
문서에 삽입하기 위해 키 정의를 정의하는 또 다른 옵션은 ditakeybaselist set 옵션입니다. 키 참조 삽입 대화 상자와 리소스 매니저Keyref 옵션에 표시될 키 정의에 사용되는 맵 목록을 설정하려면 기본적으로 ditakeybaselist 옵션을 사용합니다. ditakeycontext와 달리 ditakeybaselist는 고급 기본 설정으로서 여러 맵을 포함할 수 있으며 Arbortext Editor 세션 간에 유지됩니다. ditakeybaselist에 값을 지정했으며 현재 ditakeycontext인 맵이 이 목록에 없을 경우 현재 세션에 대한 ditakeybaselist 맵 목록의 앞에 키 컨텍스트 맵이 추가됩니다.
DITA 키 정의 맵 사용
Arbortext Editor는 DITA 키 정의 맵이라고 하는 특별한 DITA 맵을 제공합니다. 이 맵에는 키 정의에 정보를 추가로 제공할 수 있는 추가 요소가 들어 있으며, 이 맵은 키 정의를 보관하기 위한 전용 맵입니다. 추가 키 정의 정보는 키 참조 사용자 인터페이스의 다양한 위치에 표시됩니다. DITA 키 정의 맵은 새로 만들기 대화 상자의 DITA Technical Content 카테고리에 있습니다.
키 정의 맵은 topicmeta 요소에 요소를 추가하여 키 정의에 대한 자세한 정보를 제공합니다. 이러한 요소를 사용하려면 keydef 요소를 맵에 삽입하고, topicmeta 요소를 keydef 요소에 삽입하며 keyinfo 요소를 topicmeta에 삽입합니다. 그런 다음 keyinfo 내에 사용하려는 새 메타데이터 요소를 삽입할 수 있습니다. 또한 키 정의 맵에서 리소스 매니저키 정의 탭을 사용하여 키 정의에 이러한 정보를 추가할 수도 있습니다.
다음은 topicmeta에서 일반 키 참조에 사용할 수 있는 추가 요소입니다.
keyinfo - 다른 요소를 포함합니다.
keydescription - 키의 텍스트 설명을 포함합니다.
keysubelementid - 이 키를 적용할 특정 요소 ID를 지정합니다(value 속성 사용).
keyreftags - 이 키를 참조하는 데 사용할 하나 이상의 요소 이름 목록을 포함합니다(value 속성 사용).
콘텐츠 키 참조 사용
Arbortext Editor에서 키 참조를 통해 콘텐츠를 바꾸려면 요소에서 conkeyref 속성을 사용하여 콘텐츠 키 참조를 설정하면 됩니다. 일반 키 참조와 마찬가지로, 콘텐츠 키 참조의 키 컨텍스트에 문서에 대한 관련 정의가 있고 요소에 conref 속성과 conkeyref 속성이 모두 정의되어 있을 경우 Arbortext Editorconkeyref와 연관된 콘텐츠를 표시하고 일반적으로 키 콘텐츠 참조 우선 순위를 부여합니다.
일반 키 정의를 사용하여 콘텐츠 키 참조에 대한 키를 설정할 수 있습니다. 하지만 DITA 키 정의 맵은 콘텐츠 참조를 위한 키를 정의할 수 있도록 몇 가지 추가 요소를 제공합니다. 또한 키 참조 삽입 대화 상자에 콘텐츠 키 참조를 포함시키려면 DITA 키 정의 맵에 연관된 키 정의를 정의해야 합니다. 다음은 콘텐츠 키 참조에 사용할 수 있는 추가 요소입니다.
keyconrefs - 콘텐츠 키 참조 전용의 키 정의를 정의할 수 있습니다.
이 요소는 keydef 요소의 특수화 요소입니다. keyconrefs로 정의된 키 이름을 참조하는 주제나 맵 내에 ID를 포함하는 요소는 키 참조 삽입 대화 상자에서 conkeyref 참조의 대상으로 표시됩니다. 이 요소의 scope 속성은 local로 설정됩니다. format 속성은 dita(기본값) 또는 ditamap으로 설정됩니다.
또한 이 요소에는 새 keyinfo 요소와 그 하위 요소가 모두 포함됩니다. keyconrefs 정의의 keysubelementid 요소에 값을 지정하면 해당 ID를 가진 요소만 해당 정의를 사용하는 콘텐츠 키 참조에 사용할 수 있게 됩니다. 값을 지정하지 않으면 ID를 가진 모든 요소를 사용할 수 있습니다.
keyforconrefs - 키 정의가 콘텐츠 키 참조용임을 나타냅니다.
이 요소는 keyinfo 요소에 포함됩니다. keyforconrefs 요소의 value 속성을 true(기본값)로 설정할 경우 이 요소는 이 키 정의가 콘텐츠 키 참조용임을 나타내며 해당 키 정의는 키 참조 삽입 대화 상자에서와 같이 처리됩니다. 따라서 keydef 및 맵의 다른 요소를 사용하여 콘텐츠 키 참조에 대한 키 정의를 정의할 수 있습니다.
DITA 키 정의 맵을 사용하면 콘텐츠 키 참조에 단일 요소를 사용하거나 ID를 포함하는 모든 요소를 사용하도록 콘텐츠 키 정의를 설정할 수 있습니다. 키 참조 삽입 대화 상자에서 conkeyref 참조에 대해 단일 요소를 사용하도록 하려면 다음 마크업을 사용하여 DITA 키 정의 맵에 이를 정의해야 합니다.
키 정의의 href 속성은 해당 요소를 포함하는 주제나 맵을 가리켜야 합니다.
요소의 ID는 href에 포함시키지 않습니다.
keysubelementid 요소의 value 속성은 해당 요소의 ID를 지정해야 합니다.
keyreftags 요소의 value 속성은 지정된 ID를 갖는 요소의 이름을 포함해야 하며 요소 이름 앞에 conkeyref: 문자열이 와야 합니다.
예를 들어 다음 키 정의는 strings.dita 주제에 custom이라는 ID를 갖는 ph 요소를 키 참조 삽입 대화 상자에 conkeyref 대상으로 추가합니다.
<keydef keys=”strings” href=”strings.dita”>
<topicmeta>
<keyinfo>
<keydescription>Description of the “custom” element</keydescription>
<keysubelementid value=”custom”/>
<keyreftags value=”conkeyref:ph”/>
</keyinfo>
</topicmeta>
</keydef>
키 참조 삽입 대화 상자의 conkeyref 참조에 대해 ID를 갖는 모든 요소를 맵이나 주제에서 사용할 수 있도록 하려면 역시 DITA 키 정의 맵에 이를 정의해야 합니다. 이 마크업은 다음 방법 중 하나를 사용하여 정의할 수 있습니다.
keyconrefs 요소를 사용하여 키 정의를 만듭니다.
예를 들면 다음과 같습니다.
<keyconrefs href=”strings.dita” keys=”strings”/>
topicmeta 요소의 keyinfo 요소 내에 keyforconrefs 요소를 사용하여 키 정의를 정의하는 데 사용할 수 있는 요소를 사용합니다.
예를 들면 다음과 같습니다.
<keydef href=”strings.dita” keys=”strings”>
<topicmeta>
<keyinfo>
<keyforconrefs/>
</keyinfo>
</topicmeta>
</keydef>
키 참조를 포함하여 텍스트 삽입
일반 키 참조를 사용하여 문서에 텍스트를 삽입할 수도 있습니다. 여러 DITA 요소에는 Keyref 속성이 있습니다. 요소가 비어 있고 키 참조 세트가 있는 경우 키 정의에 텍스트를 포함하여 이러한 요소를 삽입할 수 있습니다. 텍스트 삽입에 사용하려면 요소가 비어 있어야 합니다. 예를 들어 문서에 다음 요소가 있을 수 있습니다.
<ph keyref="product-name"></ph>
키는 다음 키 정의를 참조합니다.
<keydef keys="product-name">
<topicmeta>
<keywords>
<keyword>Acme Product</keyword>
</keywords>
</topicmeta>
</keydef>
문서를 게시할 때 ph 요소에 다음 텍스트가 삽입됩니다.
<ph>Acme Product</ph>
삽입할 텍스트와 함께 마크업을 포함할 수도 있습니다. 예를 들어, 키가 다음 키 정의를 참조하는 경우
<keydef keys="product-name">
<topicmeta>
<keywords>
<keyword><i>Acme Product</i></keyword>
</keywords>
</topicmeta>
</keydef>
다음 텍스트가 문서에 삽입됩니다.
<ph><i>Acme Product</i></ph>
텍스트 삽입 외에도 키 정의에 href 속성을 포함하여 비연결 요소를 연결 요소로 바꾸거나, 반대로 연결 요소를 비연결 요소로 바꿀 수도 있습니다. 예를 들어, 다음 키 정의를 생각해 보십시오.
<keydef keys="product-name" href="acme.dita">
<topicmeta>
<keywords>
<keyword>Acme Product</keyword>
</keywords>
</topicmeta>
</keydef>
<keydef keys="product-name-no-link">
<topicmeta>
<keywords>
<keyword>Acme Product</keyword>
</keywords>
</topicmeta>
</keydef>
이러한 키 정의는 문서의 다음 요소에서 참조됩니다.
<ph keyref="product-name"></ph>
<xref keyref="product-name"></xref>
<ph keyref="product-name-no-link"></ph>
<xref keyref="product-name-no-link"></xref>
문서가 게시되면 문서에 다음 텍스트가 삽입됩니다.
<ph>
<xref href="acme.dita">Acme Product</xref>
</ph>
<xref href="acme.dita">Acme Product</xref>
<ph>Acme Product</ph>
<xref>Acme Product</xref>
키 정의에 href가 지정된 경우 이러한 텍스트가 삽입된 요소가 연결 요소가 됩니다. href가 지정되지 않은 경우에는 xref와 같은 연결 요소도 링크를 포함하지 않습니다. 이 연결 동작은 키 정의를 참조하는 요소에 콘텐츠가 포함된 경우에도 적용되며 텍스트 삽입에는 사용할 수 없습니다. 예를 들어, 다음 요소가 위의 키 정의를 참조하는 경우를 생각해 보십시오.
<ph keyref="product-name">New Acme Product</ph>
이때, 키 참조는 문서를 게시할 때 요소를 연결 요소로 만들기만 할 뿐, 키 정의에 텍스트를 삽입하지 않습니다.
<ph>
<xref href="acme.dita">New Acme Product</xref>
</ph>
키 정의에서 삽입할 텍스트는 다음 우선 순위 순서에 따라 결정됩니다.
1. 키 정의의 topicmeta 요소에 있는 keywords 요소의 첫 번째 keyword 요소의 콘텐츠
2. 키 정의의 topicmeta 요소에 있는 keywords 요소의 첫 번째 term 요소의 콘텐츠
3. 키 정의의 topicmeta 요소에 있는 linktext 요소의 콘텐츠
4. 키 정의의 topicmeta 요소에 있는 navtitle 요소의 콘텐츠
5. 키 정의의 navtitle 속성의 콘텐츠
예를 들어, 다음 키 정의의 영역 둘 이상에 텍스트가 포함된 경우(가능한 경우)
<keydef keys="product-name" navtitle="New Acme Product">
<topicmeta>
<keywords>
<keyword>Acme Product</keyword>
</keywords>
</topicmeta>
</keydef>
이때, 키 참조용으로 삽입되는 텍스트는 keyword 요소의 콘텐츠입니다. 이 요소는 navtitle 속성의 콘텐츠보다 우선 순위가 높기 때문입니다.
다음 요소는 특수한 텍스트 삽입 케이스입니다.
link
link 요소는 텍스트를 직접 포함하지 않고, 텍스트를 포함할 수 있는 linktextdesc 요소(선택사항)를 포함합니다. 이때, 키 정의의 topicmeta 요소에 linktextdesc 요소가 포함되어 있으면 문서를 게시할 때 해당 요소가 link 요소에 삽입됩니다.
image
image 요소에 이미지의 텍스트 설명을 제공하는 alt 요소가 포함되어 있습니다. 빈 image 요소에 키 정의(텍스트 삽입에 사용할 텍스트를 포함하고 있음)에 대한 키 참조가 있으면 문서 게시 중에 해당 텍스트가 imagealt 요소로 삽입됩니다.
텍스트 내용을 허용하지 않는 요소
longdescref와 같은 일부 DITA 요소에는 keyref 속성이 포함되지만 텍스트 내용은 허용되지 않습니다. 이러한 요소는 키 참조를 통한 텍스트 삽입에 사용할 수 없습니다.
Arbortext Editor 사용자 인터페이스(UI)에서는 키 참조를 통한 텍스트 삽입을 지원하기 위해 다음 기능을 제공합니다.
키 참조 정보 대화 상자에서는 키 정의에 제공된 텍스트 내용(마크업 포함)을 표시하는 텍스트 옵션을 제공합니다.
키 참조 삽입 대화 상자의 리소스 열에는 키 정의용 텍스트 내용(마크업 포함)이 표시됩니다.
또한 ditatextkeyrefs 고급 기본 설정을 on으로 설정하면 키 참조를 허용하는 비연결 요소가 삽입 드롭다운 목록에 표시됩니다.
DITA 문서 편집 시, 키 참조가 지정된 빈 요소는 괄호 안에 키 참조 이름을 표시합니다.
이것은 DITA 문서의 기본 스타일시트에 있는 비연결 요소에 대해서만 지원됩니다. 키 참조 이름은 Arbortext Editor에서 문서를 편집할 때만 나타납니다. 문서를 게시할 때는 나타나지 않습니다.
키 참조와 주제 참조 함께 사용
주제 참조에 키 참조가 포함된 경우 topicmeta 요소의 일부 정보가 키 정의에 있는 유사 정보와 충돌할 수 있습니다. 키 정의와 마찬가지로 topicref 요소에 topicmeta 요소가 포함됩니다. 키 참조가 있는 topicreftopicmeta 콘텐츠를 참조된 키 정의와 병합할 때 다음 규칙을 따릅니다.
topicref 요소의 locktitle 속성은 키 정의의 locktitle 속성보다 우선 적용됩니다.
키 정의의 다른 메타데이터는 topicref 요소의 동일한 메타데이터를 무시합니다.
키 정의의 메타데이터와 일치하지 않는 topicref 요소의 메타데이터는 그대로 유지됩니다.