<xsl:number> 요소
형식이 지정된 숫자를 결과 트리에 삽입합니다.
<xsl:number
level = "single" | "multiple" | "any"
count = Pattern
from = Pattern
value = number-expression
format = { string }
lang = { nmtoken }
letter-value = { "alphabetic" | "traditional" }
grouping-separator = { char }
grouping-size = { number } />
특성
- level
고려해야 할 소스 트리 수준을 지정합니다. 값에는"single"
,"multiple"
및"any"
가 있습니다. 기본값은"single"
입니다.
- count
해당 수준에서 계산해야 할 노드를 지정하는 패턴입니다.count
특성을 지정하지 않으면 기본값이 현재 노드와 노드 형식이 같은 노드에 일치하는 패턴으로 설정되며 현재 노드 이름이 확장 이름인 경우 현재 노드와 같은 확장 이름을 가진 노드에 일치하는 패턴으로 설정됩니다.
- from
계산이 시작되는 위치를 지정하는 패턴입니다.
- value
숫자로 변환하고 결과 트리로 출력할 식을 지정합니다.value
특성을 지정하지 않으면<xsl:number>
요소는 소스 트리에서 현재 노드의 위치를 기준으로 숫자를 삽입합니다.
format
목록의 각 숫자에 사용할 형식을 지정하는 토큰 시퀀스입니다. 형식 토큰이 없을 경우 "1 2 ... 10 11 12...."와 같은 시퀀스를 생성하는 기본값 1이 사용됩니다. 10 11 12.... 첫 번째 숫자 이후의 각 숫자는 숫자 형식을 지정하는 데 사용되는 형식 토큰 앞의 구분 기호 토큰에 의해 앞의 숫자와 구분됩니다. 구분 기호 토큰이 없을 경우 마침표(".")가 사용됩니다.형식 토큰 생성되는 시퀀스 1
1 2 3 4 5 ... 10 11 12 ...
01
01 02 03 ... 19 10 11 ... 99 100 101...
A
A B C ... Z AA AB AC...
i
i ii iii iv v vi vii viii ix x...
I
I II III IV V VI VII VIII IX X...
- lang
사용할 언어를 지정합니다. lang 값을 지정하지 않으면 시스템 환경에서 언어가 결정됩니다.
- letter-value
문자를 사용하는 번호 매기기 시퀀스 간을 명확히 합니다. 일부 번호 매기기 시퀀스는 사전순 시퀀스의 문자에 숫자 값을 할당하며 다른 번호 매기기 시퀀스는 해당 언어에서 일반적인 다른 방법으로 각 문자에 숫자 값을 할당합니다. 이는 영어로 표기되는 경우 형식 토큰 "a" 및 "i"로 지정된 번호 매기기 시퀀스에 해당합니다. 일부 언어에서는 각 시퀀스의 첫 번째 멤버가 같기 때문에 형식 토큰만 사용하면 모호할 수 있습니다."alphabetic"
값은 사전순 시퀀스를 지정하며"traditional"
값은 기타 시퀀스를 지정합니다. 기본값은"alphabetic"
입니다.
- grouping-separator
10진수 번호 매기기 시퀀스에서 그룹화(예: 천 단위) 구분 기호로 사용되는 구분 기호를 제공합니다. 예를 들어,grouping-separator=","
와grouping-size="3"
은 1,000,000형식의 숫자를 생성합니다.grouping-separator
와grouping-size
특성 중 하나만 지정할 경우에는 무시됩니다.
- grouping-size
그룹화 크기(대개 3)를 지정합니다. 예를 들어,grouping-separator=","
와grouping-size="3"
은 1000,000형식의 숫자를 생성합니다.grouping-separator
와grouping-size
특성 중 하나만 지정할 경우에는 무시됩니다.
요소 정보
발생 횟수 |
제한 없음 |
부모 요소 |
xsl:copy, xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:otherwise, xsl:param, xsl:template, xsl:variable, xsl:when, xsl:with-param, 출력 요소 |
자식 요소 |
자식 요소 없음 |
설명
삽입할 숫자는 value
특성에 포함된 식에 의해 지정됩니다. 식이 계산되고 결과 개체가 숫자로 변환됩니다. 숫자는 정수로 반올림되고 문자열로 변환된 다음 결과 트리에 삽입됩니다.
<xsl:number>
요소는 먼저 level, count 및 from 특성을 사용하여 양의 정수 목록을 생성합니다.
level="single"
인 경우 count 패턴과 일치하는 상위 또는 자신의 축에서 첫 번째 노드로 이동하며 count 패턴과 일치하는 해당 상위의 이전 형제 수에 1을 더한 값이 포함된 길이 목록을 생성합니다. 이러한 상위 항목이 없을 경우 빈 목록을 생성합니다.from
특성을 지정할 경우 검색된 유일한 상위 항목은from
패턴과 일치하는 가장 가까운 상위의 하위 항목입니다. 여기서 이전 형제는 이전 형제 축과 같은 의미입니다.level="multiple"
인 경우 요소 자체 앞에 문서 순서로 현재 노드의 모든 상위 항목의 목록을 생성합니다. 그런 다음 목록에서 count 패턴과 일치하는 노드를 선택하고 목록의 각 노드를 count 패턴과 일치하는 노드의 이전 형제 수에 1을 더한 값에 매핑합니다.from
특성을 지정할 경우 검색된 유일한 상위 항목은from
패턴과 일치하는 가장 가까운 상위의 하위 항목입니다. 여기서 이전 형제는 이전 형제 축과 같은 의미입니다.level="any"
인 경우 count 패턴과 일치하며, 네임스페이스와 특성 노드를 제외하고 문서 순서로 현재 노드 앞에 있는 모든 문서 수준의 모든 노드(이전 및 상위 또는 자신의 축 멤버의 통합) 및 현재 노드가 포함된 집합에 속해 있는 노드 수를 포함하는 길이 목록을 생성합니다.from
특성을 지정할 경우from
패턴과 일치하며 첫 번째 노드 뒤 현재 노드 앞에 있는 노드만 고려됩니다.
다음과 같은 언어/번호 매기기 구성표가 지원됩니다. " 형식 토큰"은 format
특성에 해당하며 "언어"는 lang
특성에, "문자 값"은 letter-value
특성에 해당합니다.
설명 | 형식 토큰 | 언어 | 문자 값 |
---|---|---|---|
영어 |
0x0031 (1) |
해당 없음 |
해당 없음 |
대문자 |
0x0041 (A) |
해당 없음 |
해당 없음 |
소문자 |
0x0061 (a) |
해당 없음 |
해당 없음 |
로마어 대문자 |
0x0049 (I) |
해당 없음 |
해당 없음 |
로마어 소문자 |
0x0069 (i) |
해당 없음 |
해당 없음 |
러시아어 대문자(키릴 자모) |
0x0410 |
해당 없음 |
해당 없음 |
러시아어 소문자(키릴 자모) |
0x0430 |
해당 없음 |
해당 없음 |
히브리어 사전순 |
0x05d0 |
해당 없음 |
Alphabetic |
전통 히브리어 |
0x05d0 |
해당 없음 |
Traditional |
아랍어 |
0x0623 |
해당 없음 |
해당 없음 |
힌디어 자음 |
0x0905 |
해당 없음 |
해당 없음 |
힌디어 모음 |
0x0915 |
해당 없음 |
해당 없음 |
힌디어 숫자 |
0x0967 |
해당 없음 |
해당 없음 |
태국어 문자 |
0x0e01 |
해당 없음 |
해당 없음 |
태국어 숫자 |
0x0e51 |
해당 없음 |
해당 없음 |
일본어 모음(더블바이트) |
0x30a2 |
해당 없음 |
해당 없음 |
일본어 가나(더블바이트) |
0x30a4 |
해당 없음 |
해당 없음 |
한국어 초성 |
0x3131 |
해당 없음 |
해당 없음 |
대만어 십진수 |
0x4e01 |
"zh-tw" |
해당 없음 |
한국어 십진수 |
0x4e01 |
"ko" |
해당 없음 |
아시아어 십진수 |
0x4e01 |
다른 언어 |
해당 없음 |
아시아어 간지 |
0x58f1 |
해당 없음 |
해당 없음 |
전통 대만어 |
0x58f9 |
"zh-tw" |
해당 없음 |
중국어 번체 |
0x58f9 |
다른 언어 |
해당 없음 |
중국어 십이지 |
0x5b50 |
해당 없음 |
해당 없음 |
중국어 십간 |
0x7532 |
해당 없음 |
해당 없음 |
중국어 육십갑자 |
0x7532, 0x5b50 |
해당 없음 |
해당 없음 |
한국어 가나다 |
0xac00 |
해당 없음 |
해당 없음 |
한국어 십진수 |
0xc77c |
해당 없음 |
해당 없음 |
한국어 99 |
0xd558 |
해당 없음 |
해당 없음 |
영어(더블바이트) |
0xff11 |
해당 없음 |
해당 없음 |
일본어 모음(싱글바이트) |
0xff71 |
해당 없음 |
해당 없음 |
일본어 가나(싱글바이트) |
0xff72 |
해당 없음 |
해당 없음 |
특정 번호 매기기 구성표를 명확히 나타내는 데 형식 토큰만으로 충분한 경우 언어나 문자 값을 지정할 필요가 없습니다.
다음은 변환 사양의 몇 가지 예제입니다.
format="ア"
는 가타카나 번호 매기기를 지정합니다.
format="イ"
는 "가나" 순서로 가타카나 번호 매기기를 지정합니다.
format="๑"
은 태국어 숫자로 번호 매기기를 지정합니다.
format="א" letter-value="traditional"
은 전통 히브리어 번호 매기기를 지정합니다.
format="ა" letter-value="traditional"
은 그루지야어 번호 매기기를 지정합니다.
format="α" letter-value="traditional"
은 고대 그리스어 번호 매기기를 지정합니다.
format="а" letter-value="traditional"
은 구 슬라브어 번호 매기기를 지정합니다.
예제
이 예제에서는 우선 영어로 정렬한 다음 로마어 소문자 번호 매기기를 적용한 목록에서 항목의 번호를 매김으로써 <xsl:number>
요소를 사용하는 방법을 보여 줍니다.
XML 파일(items.xml)
XSLT 파일(numelem.xsl)
출력
다음은 형식이 지정된 출력입니다.
1. Canopy, i) Canopy 2. Car, ii) Car 3. Cell phone, iii) Cell phone 4. Concept, iv) Concept 5. Film projector, v) Film projector 6. Hole, vi) Hole 7. LP Record, vii) LP Record 8. Null character, viii) Null character 9. Pen, ix) Pen 10. Widget, x) Widget 11. Wisdom, xi) Wisdom
다음은 프로세서 출력입니다.
<?xml version="1.0" encoding="UTF-16"?>1. Canopy,
i) Canopy<br />2. Car,
ii) Car<br />3. Cell phone,
...
xi) Wisdom<br />