게시의 적용 가능성
개요
XML 항목에는 요소 레벨에서 컨텐트를 포함할지 여부를 결정하는 논리적 표현식이 포함될 수 있습니다. 일부 컨텐트에 적용되는 옵션 및 선택 항목을 정의하는 마크업을 인라인 적용 가능성이라고 합니다. 컨텐트 포함 또는 제외 결정은 게시할 때 적용 가능성 필터로 또는 게시 규칙에 설정된 경우 rootApplicabilityExpression 매개변수로 선택된 선택 항목과 비교해서 이 논리적 표현식을 평가하여 결정됩니다.
적용 가능성 표현식은 제품의 옵션 및 선택 항목 서브셋을 나타내며 컨텐트에 대한 주석을 달 때 사용됩니다. 표현식은 컨텐트와 특정을 연결하며 그런 다음 필터링에 사용할 수 있습니다. 논리적 연산자를 사용하여 단순 표현식을 결합할 수 있습니다.
서비스 구조 사용자 인터페이스에서 구조 탭 도구 모음의 필터 작업 세트를 사용하여 동적 문서의 서비스 구조 및 인라인 적용 가능성 둘 다에 대해 필터링을 설정할 수 있습니다. 게시는 게시 구조 및 동적 문서에 옵션 필터를 적용합니다. 게시 규칙 매개변수 rootApplicabilityExpression이 설정된 경우 필터 작업 세트를 사용하여 정의된 필터링 표현식을 덮어씁니다.
인라인 적용 가능성 필터링은 PDF에 대해서만 XSL 출력 형식을 사용하여 지원됩니다. 번들 출력의 경우 Servigistics InService 사용자에 의해 필터링이 적용되므로 게시 중 필터링이 적용되지 않습니다.
적용 가능성 표현식에는 AND, OR 및 NOT 등의 교차 및 분리 연산자를 사용하여 지정한 옵션 및 선택 항목 표현식을 판독할 수 있는 파서가 필요합니다.
APEX 정보
Windchill에서는 ATO 구문을 사용하여 적용 가능성 표현식을 나타냅니다. 번들이 게시된 경우 게시 규칙에 따라 적용 가능성 표현식이 Servigistics InService에서 사용할 수 있는 APEX 형식으로 게시됩니다. 게시 규칙에 대한 자세한 내용은 "번들의 적용 가능성 표현식" 단원을 참조하십시오.
APEX는 LISP 프로그래밍 언어를 기반으로 하는 구문입니다. LogicalExpression 등록 정보의 값은 Windchill 객체에 적용되는 APEX 적용 가능성 표현식입니다. 이 등록 정보는 게시된 번들의 서비스 구조에 대한 DMPmap.xml 파일과 서비스 제품 계층 구조에 대한 hierarchy.xml 파일에서 사용할 수 있습니다.
다음 표를 통해 APEX 표현식 문법을 잘 이해할 수 있습니다.
APEX 문법 기호
|
APEX 표현식 문법
|
expression
|
"(" expression-body ")" | constant
|
expression-body
|
polyadic-body | choice-body | function-body
|
polyadic-body
|
polyadic-op s expression expression-list
|
choice-body
|
"IS" s quote string-list
|
function-body
|
name string-list
|
expression-list
|
empty | s expression s expression-list
|
string-list
|
empty | s quote s string-list
|
S
|
" " | " " s
|
polyadic-op
|
"AND" | "OR" | "NOT"
|
constant
|
"TRUE" | "FALSE" | "UNKNOWN"
|
quote
|
' string '
|
예제
|
+로 표시된 AND 연산자가 /로 표시된 OR 연산자보다 우선하므로 지정된 표현식을 괄호 안에 정의해야 합니다.
|
예 1:
Windchill의 객체에 타이어 옵션이 155 또는 145이며 색상 옵션이 검은색 또는 빨간색인 표현식이 지정됩니다. ATO 형식은 다음과 같습니다.
("155"/"145") + (Black/Red)
해당하는 APEX 형식은 다음과 같습니다.
(AND (IS 'Tire' '155' '145') (IS 'Colour' 'Black' 'Red')
예 2:
Windchill의 객체에 릴리즈 옵션이 X-24 또는 X-26인 표현식이 지정됩니다. 릴리즈 X-24의 경우 유지 관리 옵션은 M022 또는 M023일 수 있습니다. 이 경우 ATO 형식은 다음과 같습니다.
(“X-24” + (“M022”/”M023”) ) / ”X-26”
해당하는 APEX 형식은 다음과 같습니다.
(OR (AND (IS 'release' 'X-24') (IS 'maintenance' 'M022' 'M023')) (IS 'release' 'X-26'))
예 3:
Windchill 객체에 다음과 같은 서비스 유효성이 있는 표현식이 지정됩니다.
패밀리 옵션에 X96이 지정되고 해당 컨텍스트가 K95 또는 K96 모델로 지정됩니다. 서비스 유효성 유형은 범위가 12000에서 13000 사이로 설정된 일련 번호입니다. 위의 표현식 및 서비스 유효성에 대한 APEX 형식은 다음과 같습니다.
(AND (IS 'family' 'X96') (IS 'model' 'K95' 'K96') (IS 'serialNo' '12000' '13000'))
스타일시트 설정
루트 서비스 구조 문서 Identfier.xml의 인라인 적용 가능성 표현식을 페이로드에 전송하려면 Identfier.xml의 적용 가능성 표현식을 출력 DITA 맵의 올바른 위치(예: topicref 및 topic 요소)로 복사하도록 pubstructXsl 스타일시트를 수정해야 합니다.
게시 규칙 설정
PDF 및 XSL 출력에 대한 게시 규칙을 작성할 때는 Arbortext Publishing Engine 서버에 게시 중 적용할 게시 규칙 매개변수를 고려해야 합니다. 기본 적용 가능성 게시 규칙 매개변수를 사용하여 동적 문서의 구조와 인라인 컨텐트 둘 다에 적용할 수 있습니다. 다음 앞에는 com.ptc.arbortext.pe/가 옵니다.
• applicabilitySyntax
페이로드에서 적용 가능성 표현식에 대해 사용된 적용 가능성 구문의 이름을 지정합니다. applic::registerSyntax() ACL 메소드를 사용하여 Arbortext Publishing Engine 서버에 등록된 이름을 지정합니다. 기본값은 없습니다.
Servigistics InService에서 사용하기 위해 번들을 게시 중이고 구조 및 항목 모두 ATO 및 동일한 소스 구문을 사용하는 경우 applicabilitySyntax가 번들을 게시하는 데 필요한 유일한 매개변수입니다.
• rootApplicabilityExpression
게시 중에 전체 서비스 구조 및 컨텐트에 적용할 적용 가능성 표현식을 지정합니다. 표현식 구문은 서비스 구조 및 XML 텍스트 컨텐트 둘 다의 구문과 일치해야 합니다.
인라인 동적 문서에 대한 적용 가능성은 disableInlineApplicFiltering을 통해 사용 가능 또는 사용 불가능으로 설정합니다. 인라인 적용 가능성을 사용하지 않으려면 true(기본값), 사용하려면 false를 지정합니다.
게시 규칙 매개변수에 대한 자세한 내용은
서비스 작업자 매개변수를 참조하십시오.
구문 파서 구현
적용 가능성 구문은 옵션 세트의 레이블을 사용하는 기본 형식을 따르며 레이블이 고유한 선택 항목 이름인 것으로 간주합니다. 적용 가능성 표현식에서는 연산자를 사용하여 선택 항목을 결합하거나 삭제합니다. 등록된 구문을 사용하여 표현식을 평가하려면 파서가 필요합니다.
새 구문 파서를 구현하려면 Arbortext Publishing Engine 서버의 lib\classes\applicability.jar에 있는 다음 Java 패키지를 사용해야 합니다.
• com.ptc.arbortext.applicability.expression
옵션 및 선택 항목 데이터가 있는 컨텐트를 필터링하는 적용 가능성 표현식 객체를 지원하기 위한 인터페이스를 포함하는 Java 패키지입니다. 옵션 요소에는 이름, 설명 및 일련의 선택 항목 요소가 있습니다. 옵션 및 선택 항목 요소에는 사용자 인터페이스 및 적용 가능성 표현식에 사용되는 레이블 속성이 있습니다. 레이블은 각 옵션 세트 내에서 고유해야 합니다.
• com.ptc.arbortext.applicability.representation
요소, 속성, 컨텐트 및 처리 지침을 위한 적용 가능성 마크업을 지원하는 인터페이스를 포함하는 Java 패키지입니다.
페이로드에서 옵션 및 선택 항목은 OptionsDefinition.xml 파일에 포함됩니다.
적용 가능성 구문 등록
게시 중 적용 가능성 구문을 사용하려면 ACL 함수를 사용하여 Arbortext Publishing Engine 서버에 등록해야 합니다. 다음 등록 함수를 사용하십시오.
applic::registerSyntax(NAME, TEST_XPATH, EXPR_XPATH, PARSER_CLASS)
• NAME은 적용 가능성 구문의 이름입니다.
• TEST_XPATH는 요소에 대한 적용 가능성 표현식이 있는지 확인하는 XPath 부울 표현식입니다.
• EXPR_XPATH는 특정 요소에 대한 적용 가능성을 읽어들이는 XPath 표현식입니다.
• PARSER_CLASS는 적용 가능성 구문에 대한 파서의 클래스 이름입니다.
ATO 파서는 서버에서 기본적으로 사용할 수 있으며 다음과 같이 등록됩니다(줄 바꿈 무시).
applic::registerSyntax("ATO", "boolean(@*[namespace-uri() =
'http://arbortext.ptc.com/namespace/ATO'
and local-name() = 'applic'])",
"@*[namespace-uri() = 'http://arbortext.ptc.com/namespace/ATO'
and local-name() = 'applic']",
"com.ptc.arbortext.applicability.representation.ATOParser")
번들의 적용 가능성 표현식
번들 게시 중에는 적용 가능성 필터링이 수행되지 않습니다. 대신 적용 가능성 표현식이 Servigistics InService에서 적용될 수 있는 형식으로 변환됩니다.
게시 구조 적용 가능성은 LogicalExpression 메타데이터 등록 정보에 있습니다. 항목의 적용 가능성은 {http://arbortext.ptc.com/namespace/ATO}applic 속성으로 복사된 후 변환됩니다.
번들에 게시된 구조에는 다음 인라인 적용 가능성 매개변수가 적용됩니다.
• com.ptc.arbortext.pe.service/structureSourceApplicSyntax
서비스 구조에서 적용 가능성 표현식에 대해 사용된 적용 가능성 구문의 이름을 지정합니다. applic::registerSyntax를 통해 Arbortext Publishing Engine 서버에 등록된 이름을 지정합니다. 지정하지 않은 경우 applicabilitySyntax 값이 사용됩니다. applicabilitySyntax를 지정하지 않은 경우 기본값은 ATO입니다.
• com.ptc.arbortext.pe.service/structureTargetApplicSyntax
서비스 하위 시스템 처리가 끝난 다음 적용 가능성 표현식에 사용되는 적용 가능성 구문의 이름을 지정합니다. applic::registerSyntax를 통해 Arbortext Publishing Engine 서버에 등록된 이름을 지정합니다. 지정하지 않은 경우 applicabilitySyntax 값이 사용됩니다. applicabilitySyntax를 지정하지 않은 경우 기본값은 ATO입니다.
• disableStructureApplicabilityConverter
구조에서 적용 가능성 표현식을 찾고 변환할지 여부를 지정합니다. 번들의 경우 이 기능을 활성화하려면 false(기본값)를 지정합니다. 비활성화하려면 true를 지정합니다. PDF에 대해서는 기본적으로 사용되지 않습니다.
번들에 게시된 항목에는 다음 인라인 적용 가능성 매개변수가 적용됩니다.
• com.ptc.arbortext.pe.service/topicCcfParam.sourceApplicabilitySyntax
번들 항목 내에서 적용 가능성 표현식에 대해 사용되는 적용 가능성 구문의 이름을 지정합니다. Arbortext Publishing Engine 서버에 등록된 이름을 지정합니다. 지정하지 않은 경우 applicabilitySyntax 값이 사용됩니다. applicabilitySyntax를 지정하지 않은 경우 기본값은 ATO입니다.
• com.ptc.arbortext.pe.service/topicCcfParam.targetApplicabilitySyntax
서비스 하위 시스템 처리가 끝난 다음 항목 내의 적용 가능성 표현식에 사용되는 적용 가능성 구문의 이름을 지정합니다. Arbortext Publishing Engine 서버에 등록된 이름을 지정합니다. 지정하지 않은 경우 applicabilitySyntax 값이 사용됩니다. applicabilitySyntax를 지정하지 않은 경우 기본값은 APEX입니다.
• com.ptc.arbortext.pe.service/topicCcfParam.disableApplicabilityConverter
항목에서 적용 가능성 표현식을 찾고 변환할지 여부를 지정합니다. 이 기능을 활성화하려면 false(기본값)를 지정합니다. 비활성화하려면 true를 지정합니다.
프로파일링 적용 가능성 표현식
정보 요소에는 작성 시 적용된 프로파일링이 있을 수 있습니다. 적용 가능성 구문을 사용하여 프로파일링 마크업을 적용 가능성 표현식으로 변환할 수 있습니다. 프로파일링 변환은 부울 게시 매개변수 com.ptc.arbortext.pe.service/topicCcfParam.disableProfilingConverter로 제어됩니다.
예를 들어, 다음 마크업은 os 및 userlevel에서 프로파일링을 지정하는 XML 문서에서 찾을 수 있습니다.
<chapter os="Windows Vista;Unix" userlevel="Novice">
APEX 구문을 적용 가능성 표현식으로 지정한 게시 요청은 프로파일링 정보를 다음 마크업으로 변환합니다.
<book xmlns:prf=http://arbortext.ptc.com/namespace/
applicability/profiling prf:syntax="APEX"
prf:optionSet="axdocbook">
<chapter prf:applic="(AND (IS 'os' 'Windows Vista' 'Unix')
(IS 'userlevel' 'Novice'))">
</chapter>
</book>
최상위 레벨의 prf에 대한 네임스페이스 URI는 프로파일링 구성을 지정합니다. 네임스페이스 프로파일링 속성은 com.ptc.arbortext.pe.service/topicCcfParam.profilingAttribute 게시 매개변수로 지정됩니다.
prf:syntax 속성은 표현식의 구문을 지정합니다. prf:optionSet 속성은 사용되는 프로파일링 구성 파일의 문서 유형을 지정합니다.
prf:applic 속성은 프로파일링 마크업을 포함하는 요소에 배치되고 변환된 표현식이 지정됩니다.
com.ptc.arbortext.pe.service/topicCcfParam.removeProfilingMarkup 게시 매개변수를 사용하여 번들에 게시할 때 정보 요소에서 원래 프로파일링 속성을 제거할 수 있습니다.
게시 페이로드에서 OptionsDefinition.xml 파일에는 프로파일링 구성 옵션 세트 목록이 포함됩니다. 이전 예에서 옵션 세트는 다음과 같이 표시될 수 있습니다.
<OptionSet container="axdocbook.pcf" token="_oset_axdocbook_pcf"
label="Operating System, User Level, Output Type, Security Level Options">
<Option label="os" token="_opt_axdocbook_os"><Name>Operating System</Name>
<Choice label="Windows XP" token="_ch_axdocbook_pcf_os_windows_xp">
<Name>Windows XP</Name></Choice>
<Choice label="Windows Vista" token="_ch_axdocbook_pcf_os_windows_vista">
<Name>Windows Vista</Name></Choice>
<Choice label="Windows 7" token="_ch_axdocbook__pcf_os_windows_7">
<Name>Windows 7</Name></Choice>
<Choice label="Unix" token="_ch_axdocbook_pcf_os_unix">
<Name>Unix</Name></Choice>
</Option>
<Option label="userlevel" token="_opt_axdocbook_pcf_userlevel">
<Name>User Level</Name>
<Choice label="Novice" token="_ch_axdocbook_pcf_userlevel_novice">
<Name>Novice</Name></Choice>
<Choice label="Typical" token="_ch_axdocbook_pcf_userlevel_typical">
<Name>Typical</Name></Choice>
<Choice label="Expert" token="_ch_axdocbook_pcf_userlevel_expert">
<Name>Expert</Name></Choice>
</Option>
</OptionSet>
프로파일링 게시 매개변수에 대한 자세한 내용은
서비스 작업자 매개변수를 참조하십시오.