YAML-구문 프리미티브
이 장에서는 YAML의 구문 기본 요소의 다음 측면에 대해 학습합니다.
- 생산 매개 변수
- 들여 쓰기 공간
- 분리 공간
- 무시 된 줄 접두사
- 라인 폴딩
각 측면을 자세히 이해합시다.
생산 매개 변수
생산 매개 변수에는 특정 생산에 사용되는 매개 변수 세트와 허용 값 범위가 포함됩니다. 다음 생산 매개 변수 목록은 YAML에서 사용됩니다-
들여 쓰기
문자로 표시 n 또는 m문자 스트림은 포함 된 블록의 들여 쓰기 수준에 따라 다릅니다. 많은 프로덕션에서 이러한 기능을 매개 변수화했습니다.
문맥
다음과 같이 표시됩니다. c. YAML은 두 가지 컨텍스트 그룹을 지원합니다.block styles 과 flow styles.
스타일
s로 표시됩니다. 스칼라 콘텐츠는 다음 5 가지 스타일 중 하나로 표시 될 수 있습니다.plain, double quoted and single quoted flow, literal and folded block.
씹기
다음과 같이 표시됩니다. t. 블록 스칼라는 블록을 트리밍하는 데 도움이되는 많은 메커니즘을 제공합니다.strip, clip 과 keep. Chomping은 새 줄 문자열 형식을 지정하는 데 도움이됩니다. 블록 스타일 표현을 사용합니다. Chomping 프로세스는 지표의 도움으로 발생합니다. 인디케이터는 줄 바꿈 문자열로 생성되어야하는 출력을 제어합니다. 줄 바꿈은(-) 연산자와 줄 바꿈이 추가됩니다. (+) 운영자.
chomping 프로세스의 예는 다음과 같습니다.
strip: |-
text↓
clip: |
text↓
keep: |+
text↓
지정된 YAML 예제를 구문 분석 한 후 출력은 다음과 같습니다.
들여 쓰기 공간
YAML 문자 스트림에서 들여 쓰기는 0 개 이상의 문자에 의한 줄 바꿈 문자로 정의됩니다. 명심해야 할 가장 중요한 점은 들여 쓰기에 탭 문자가 없어야한다는 것입니다. 들여 쓰기의 문자는 노드 콘텐츠 정보의 일부로 간주되어서는 안됩니다. 더 나은 이해를 위해 다음 코드를 관찰하십시오.
%YAML 1.1
---
!!map {
? !!str "Not indented"
: !!map {
? !!str "By one space"
: !!str "By four\n spaces\n",
? !!str "Flow style"
: !!seq [
!!str "By two",
!!str "Still by two",
!!str "Again by two",
]
}
}
들여 쓰기 후 볼 수있는 출력은 다음과 같습니다.
{
"Not indented": {
"By one space": "By four\n spaces\n",
"Flow style": [
"By two",
"Still by two",
"Again by two"
]
}
}
분리 공간
YAML은 토큰을 구분하기 위해 공백 문자를 사용합니다. 가장 중요한 점은 YAML의 구분에 탭 문자가 포함되어서는 안된다는 것입니다.
다음 코드는 분리 공간의 사용법을 보여줍니다.
{ · first: · Sammy, · last: · Sosa · }
위에 표시된 구문은 다음과 같은 출력을 제공합니다.
{
"\u00b7 last": "\u00b7 Sosa \u00b7",
"\u00b7 first": "\u00b7 Sammy"
}
무시 된 줄 접두사
빈 접두사는 항상 선행 공백을 포함하는 스칼라 유형에 따라 들여 쓰기를 포함합니다. 일반 스칼라에는 탭 문자가 없어야합니다. 반면에 인용 된 스칼라에는 탭 문자가 포함될 수 있습니다. 블록 스칼라는 들여 쓰기에 완전히 의존합니다.
다음 예제는 체계적인 방식으로 무시 된 줄 접두사의 작동을 보여줍니다-
%YAML 1.1
---
!!map {
? !!str "plain"
: !!str "text lines",
? !!str "quoted"
: !!str "text lines",
? !!str "block"
: !!str "text·®lines\n"
}
블록 스트림에 대한 출력은 다음과 같습니다.
{
"plain": "text lines",
"quoted": "text lines",
"block": "text\u00b7\u00aelines\n"
}
라인 폴딩
줄 접기는 가독성을 위해 긴 줄을 끊을 수 있습니다. 짧은 줄이 많을수록 가독성이 향상됩니다. 줄 접기는 긴 줄의 원래 의미에 주목하여 이루어집니다. 다음 예제는 줄 접기를 보여줍니다.
%YAML 1.1
--- !!str
"specific\L\
trimmed\n\n\n\
as space"
다음과 같이 JSON 형식의 줄 접기 출력을 볼 수 있습니다.
"specific\u2028trimmed\n\n\nas space"