æ›¸ãæ®´ã‚ŠYAML備忘録ã“ã“ã§ã¯ã€YAMLã«ã¤ã„ã¦ã®è©³ç´°ã‚’æ›¸ãæ®´ã£ã¦ã„ãã¾ã™ã€‚ ãã®ã†ã¡æ•´ç†ã—ã¾ã™ãŒã€ãれã¾ã§æˆ‘æ…¢ã—ã¦ãã ã•ã„。 ã‚ã¨YAMLãŒä½•ã‹çŸ¥ã‚‰ãªã„人ã¯ã€ãƒªãƒ³ã‚¯ã‹ã‚‰å¥½ããªã¨ã“ã‚ã¸è¡Œã£ã¦ãã ã•ã„。 åˆå¿ƒè€…å‘ã‘YAML紹介ã“ーãªãƒ¼ã€Žã‚„むるã£ã¦ãªã‚“ã ã¹ãª(仮称)ã€ã¯ã€ã“ã£ã¡ãŒã²ã¨æ®µè½ã—ãŸã‚‰å¤šåˆ†ä½œã‚Šã¾ã™ã€‚ ä½•ã‚’éš ãã†ä¿ºã¯äº”教科ã®ä¸ã§è‹±èªžãŒä¸€ç•ªè‹¦æ‰‹ãªã®ã§ã€é “çæ¼¢ãªã“ã¨ã‚’書ã„ã¦ã„ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚ ã‚ã¾ã‚Šéµœå‘‘ã¿ã«ã—ãªã„ã“ã¨ãŒã€ãŠãªã‹ãŒç—›ããªã‚‰ãªã„よã†ã«ã™ã‚‹ç§˜è¨£ã‹ã‚‚ã—れã¾ã›ã‚“。 「ã“ã“ãŒé•ã†!ã€ã¨ã‹ã€Œã“ã“ã¯å¤‰ã˜ã‚ƒã‚“?ã€ã¨ã‹ã€Œã“ã“ãŒè¨³åˆ†ã‚‰ã‚“ã€ã¨ã‹ã¯ã€ ã©ã‚“ã©ã‚“掲示æ¿ã‹ãƒ¡ãƒ¼ãƒ«ã§é€£çµ¡ãã ã•ã„。気ã¥ã„ãŸã‚‰å–„処ã—ã¾ã™ã€‚ リンクã¡ã‚‡ã£ã¨å¾…ã£ã¦ã¦ã。
æ–‡å—æ–‡å—コードYAMLã¯ã€æ–‡å—コードã¨ã—ã¦unicodeを採用ã—ã¦ã„る。 (ã“ã®æ™‚ç‚¹ã§æœ€åˆã®å•é¡ŒãŒæµ®ä¸Šã™ã‚‹ã€‚Shift-JIS,EUCãªã©ã¯YAMLã§ã¯ä½¿ãˆãªã„。) YAMLã®ãƒ‘ーサã¯ã€0x9f以é™ã®ã‚‚ã®ã‚‚å«ã‚€å…¨ã¦ã®unicodeæ–‡å—ã‚’å—ã‘入れãªã‘れã°ã„ã‘ãªã„。 ã¾ãŸã€YAMLエミッタã¯ã€éžå°å—æ–‡å—を出力ã™ã‚‹æ™‚ã«ã€ã‚¨ã‚¹ã‚±ãƒ¼ãƒ—ã—ãªã‘れã°ãªã‚“ãªã„。 YAMLã¯ã€UTF-8,UTF-16(BE,LE),UTF-32(BE,LE)をエンコードã¨ã—ã¦ç”¨ã„る。 YAMLパーサã¯ã€ã‚¹ãƒˆãƒªãƒ¼ãƒ ã®å…ˆé ã‚’ãƒã‚¤ãƒˆã‚ªãƒ¼ãƒ€ãƒ¼ãƒžãƒ¼ã‚¯ã¨ã—ã¦èªã¿è¾¼ã¿ã€ ã©ã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã§ã‚ã‚‹ã‹ã‚’決定ã™ã‚‹ã€‚ ã‚‚ã—ストリームãŒãƒã‚¤ãƒˆã‚ªãƒ¼ãƒ€ãƒ¼ãƒžãƒ¼ã‚¯ã§å§‹ã¾ã£ã¦ã„ãªã‹ã£ãŸã‚‰ã€ パーサã¯ãã®ã‚¹ãƒˆãƒªãƒ¼ãƒ ã‚’UTF-8ã§ã‚ã‚‹ã¨åˆ¤æ–ã™ã‚‹ã€‚ ãƒã‚¤ãƒˆã‚ªãƒ¼ãƒ€ãƒ¼ãƒžãƒ¼ã‚¯ã®è©³ç´°ã¯ã€ unicodeã®ã‚µã‚¤ãƒˆã‚’ã”覧ã‚れ。 改行YAMLã§ã¯ã€æ”¹è¡Œæ–‡å—ã¨ã—ã¦æ¬¡ã®æ–‡å—を用ã„る。
ã€Žæ™®é€šã®æ”¹è¡Œã€ã¯ã€è¡Œã®çµ‚ã‚りã¨ã—ã¦ã®æ„味ã—ã‹ã‚‚ãŸãªã„ãŒã€ ã€Žç‰¹åˆ¥ãªæ„味をæŒã¤æ”¹è¡Œã€ã¯ã€ãªã‚“ã‹æ„味ãŒã‚ã‚‹ã£ã½ã„。 エミッタã®åƒãã«å½±éŸ¿ã‚’åŠã¼ã™ã‚ˆã†ã§ã€å¾Œè¿°ã™ã‚‹ã¨æ€ã†ã€‚ スペース処ç†YAMLã®æ§‹é€ ã¯ã€ã‚¹ãƒšãƒ¼ã‚¹(インデント)ã¨è¡Œã§è¨˜è¿°ã•れるã®ã§ã€ スペースã®å‡¦ç†ã¯å¤§åˆ‡ã‚‰ã—ã„。 インデントYAMLã§ã¯ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆã¯ã€é›¶å€‹ä»¥ä¸Šã®ç©ºç™½æ–‡å—ã«ã‚ˆã£ã¦å®šç¾©ã•れる。 インデントã«ä½¿ã‚れる文å—ã¯ã€0x20ã—ã‹è¨±ã•れã¦ãŠã‚‰ãšã€ã‚¿ãƒ–æ–‡å—ã¯ä½¿ãˆãªã„。 環境ã«ã‚ˆã‚‹ã‚¿ãƒ–ã®æ–‡å—æ•°ã®é•ã„ãŒå¼•ãèµ·ã“ã™æ··ä¹±ã‚’é¿ã‘ã‚‹ãŸã‚ã®ã‚ˆã†ã 。 (Pythonã¯ã‚¿ãƒ–ã®æ–‡å—æ•°ã¯å›ºå®šã ã£ã‘ã‹ã€‚ã‚ã¨ä»•様書ã«ã¯ã€æœ€è¿‘ã®ã‚¨ãƒ‡ã‚£ã‚¿ã«ã¯ ã‚¿ãƒ–ã‚’å‹æ‰‹ã«ã‚¹ãƒšãƒ¼ã‚¹ã«å¤‰æ›ã—ã¦ãれる機能ãŒã¤ã„ã¦ã„ã‚‹ã¨ã‚ã–ã‚ã–æ›¸ã„ã¦ã‚ã‚‹ã®ã§ã€ ãーゆーã®ã‚’使ã†ã¨å¹¸ã›ã«ãªã‚Œã‚‹ã‹ã‚‚。) YAMLã®ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆã«ã‚ˆã‚‹æœ¨æ§‹é€ ã®è¨˜è¿°ã®åŽŸå‰‡ã¯æ¬¡ã®ã‚ˆã†ã«ãªã£ã¦ã„る。
ブãƒãƒƒã‚¯ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼æ¨™è˜æ–‡å—'-'ã¯ã€ã¡ã‚‡ã£ã¨ç‰¹åˆ¥ãªæ‰±ã„ã‚’ã•れる。 (ã“ã“ã„らãŒYAMLã®å£²ã‚Šã®"èªã¿ã‚„ã™ã•"ã£ã¦ã¨ã“ã‚ã ã‚ã†) ブãƒãƒƒã‚¯ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã«ã¯ã€ä»¥ä¸‹ã®åŽŸå‰‡ãŒé©å¿œã•れる。
ã¾ã‚ç´°ã‹ã„ã“ã¨ã¯ä¸‹ã®ä¾‹ã‚’見ã¦ãã ã•ã„ãªã€‚
---
ã“ã®ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆãƒ¬ãƒ™ãƒ«0ã®ã‚ーã®å€¤ã¯ãƒ–ãƒãƒƒã‚¯ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã€‚:
- ã“ã®ãƒ–ãƒãƒƒã‚¯ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®ãƒ¬ãƒ™ãƒ«ã¯0ã ã‘ã©ã€
ブãƒãƒƒã‚¯ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®ç‰¹ä¾‹ã§ã€æ£ã—ã„表記ã®ä»•æ–¹ã«ãªã‚‹ã€‚
- # ã“ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã®å€¤ã¯ãƒ–ãƒãƒƒã‚¯ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã€‚
- ã“ã®ã‚ˆã†ã«ã€ãƒ–ãƒãƒƒã‚¯ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®å€¤ãŒãƒ–ãƒãƒƒã‚¯ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã§ã‚ã‚‹å ´åˆã€
å¿…ãšè¦ªã‚ˆã‚Šæ·±ãインデントã™ã‚‹ã€‚レベル2。
# 下ã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼ã®å€¤ã‚‚ブãƒãƒƒã‚¯ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã€‚
- - ã—ã‹ã—ã€ç‰¹ä¾‹ã§ã“ã®ã‚ˆã†ãªæ›¸ã方もOK。
- ã“ã®ãƒ–ãƒãƒƒã‚¯ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®ãƒ¬ãƒ™ãƒ«ã¯2。
別ã®ã‚ー。レベル0。:
値。レベル2。
コメントコメントã¯ã€YAMLã®ãƒ‡ãƒ¼ã‚¿ã®ç”Ÿæˆã«ä½•も影響をåŠã¼ã•ãªã„。 ã“れã¯ç©ºæ–‡å—列ã«ç½®ãã‹ãˆã‚‰ã‚Œã‚‹ã¨è€ƒãˆã¦ã‚ˆã•ãã†ã 。 特ã«èªã‚€äººé–“ã¸ã®ã‚³ãƒŸãƒ¥ãƒ‹ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã®ãŸã‚ã ã¨æ›¸ã„ã¦ã‚る。 コメントã¯å¿…ãšè¡Œã®çµ‚ã‚りã¾ã§ç¶šã。 コメントã¯ã€ä»»æ„ã®ã‚¹ãƒšãƒ¼ã‚¹ã€ä»»æ„ã«ç¶šã'#'æ¨™è˜æ–‡å—ã¨ä»»æ„ã®ã‚³ãƒ¡ãƒ³ãƒˆæ–‡å—〠ãã—ã¦æ”¹è¡Œæ–‡å—ã§æ§‹æˆã•れる。特ã«ç©ºè¡Œã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’æš—é»™ã®ã‚³ãƒ¡ãƒ³ãƒˆè¡Œã€ ä»»æ„ã®ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆã¨ã‚³ãƒ¡ãƒ³ãƒˆæ–‡å—列ã‹ã‚‰ãªã‚‹è¡Œã‚’明示ã•れãŸã‚³ãƒ¡ãƒ³ãƒˆè¡Œã¨ã„ã†ã€‚ コメントã¯ä»»æ„ã®ãƒŽãƒ¼ãƒ‰ã®ä¸Šã®è¡Œã‚„下ã®è¡Œã€ã¾ãŸçµ‚端ã«ãŠãã“ã¨ãŒå‡ºæ¥ã‚‹ã€‚ ã—ã‹ã—スカラã®é€”ä¸ã«ç½®ãã“ã¨ã¯å‡ºæ¥ãªã„。 分りやã™ã„ã‹ã©ã†ã‹ã¯ä¸æ˜Žã ã‘ã©ä¾‹ã€‚ --- # ã“ã®è¡Œã¯æ˜Žç¤ºã•れãŸã‚³ãƒ¡ãƒ³ãƒˆè¡Œã€ä¸Šã®äºŒè¡Œã¯æš—é»™ã®ã‚³ãƒ¡ãƒ³ãƒˆè¡Œã€‚ # 実ã¯ä¸Šã®ã»ã†ã®ç©ºè¡Œã¯æ”¹è¡Œã ã‘ã€ä¸‹ã®ç©ºè¡Œã¯ã‚¹ãƒšãƒ¼ã‚¹ã‚’二個å«ã‚€ã€‚ # 二ã¤ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆã•れãŸã‚³ãƒ¡ãƒ³ãƒˆã€‚ ã‚ー: #コメントã¯ã“ã“ã«ã‚‚ç½®ã‘る。 | ã“ã“ã‹ã‚‰ä¸‰è¡Œã¯ãƒ–ãƒãƒƒã‚¯ã‚¹ã‚«ãƒ©ã€‚ 下ã®è¡Œã¯ã‚³ãƒ¡ãƒ³ãƒˆã§ã¯ãªã„。 # ãªãœãªã‚‰ã‚¹ã‚«ãƒ©ã®ä¸ã«ã¯ã‚³ãƒ¡ãƒ³ãƒˆã¯ç½®ã‘ãªã„ã‹ã‚‰ã 。 # ã“ã“ã¯ã‚‚ã†ã‚¹ã‚«ãƒ©ã§ã¯ãªã„ã®ã§ã‚³ãƒ¡ãƒ³ãƒˆè¡Œã§ã‚る。 # ブãƒãƒƒã‚¯ã‚¹ã‚«ãƒ©ã®è©³ç´°ã¯å¾Œè¿°ã—ã¾ã™ã£!ãŠæ¥½ã—ã¿ã«ã£! ã“れを例ãˆã°Rubyã«æŠ•ã’ã‚‹ã¨ä¸‹ã®ã‚ˆã†ã«å¸°ã£ã¦ãã‚‹ã‚ã‘ã§ã™ã‚ˆã€‚
irb> obj = YAML::load(File::open("hoge.yaml"))
=> {"ã‚ー"=>"ã“ã“ã‹ã‚‰ä¸‰è¡Œã¯ãƒ–ãƒãƒƒã‚¯ã‚¹ã‚«ãƒ©ã€‚\n下ã®è¡Œã¯ã‚³ãƒ¡ãƒ³ãƒˆã§
ã¯ãªã„。\n# ãªãœãªã‚‰ã‚¹ã‚«ãƒ©ã®ä¸ã«ã¯ã‚³ãƒ¡ãƒ³ãƒˆã¯ç½®ã‘ãªã„ã‹ã‚‰ã 。"}
コメントã¯ãƒ‡ãƒ¼ã‚¿ã®ç”Ÿæˆã«ä½•ã«ã‚‚関与ã—ã¦ãªã„ã“ã¨ã€äº‘ã„ãŸã„ã“ã¨ã¯ãれã ã‘ã§ã™ã€‚ YAMLストリーãƒYAMLストリームã¯ã€0個以上ã®YAMLドã‚ュメントã‹ã‚‰ãªã‚‹ãƒã‚¤ãƒˆåˆ—ã 。 å„ドã‚ュメントã®å‰å¾Œã«ã¯ã€ä»»æ„ã®ã‚³ãƒ¡ãƒ³ãƒˆã‚’ç½®ãã“ã¨ãŒå‡ºæ¥ã‚‹ã€‚ YAMLストリームã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã¯ã€ã‚¹ãƒˆãƒªãƒ¼ãƒ ã®å…ˆé ã«å«ã¾ã‚Œã‚‹ãƒã‚¤ãƒˆã‚ªãƒ¼ãƒ€ãƒ¼ãƒžãƒ¼ã‚¯ã«ã‚ˆã£ã¦ 決定ã™ã‚‹ã€‚ã‚‚ã—ãƒã‚¤ãƒˆã‚ªãƒ¼ãƒ€ãƒ¼ãƒžãƒ¼ã‚¯ãŒãªã‹ã£ãŸã‚‰UTF-8ã«ãªã‚‹ã“ã¨ã¯ã€å‰è¿°ã®ã¨ãŠã‚Šã 。 åŒã˜ã‚¹ãƒˆãƒªãƒ¼ãƒ ã®ä¸ã§ã¯ã€åŸºæœ¬çš„ã«åŒã˜ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ãŒç”¨ã„られる。 ã—ã‹ã—ã€ãƒ‰ã‚ュメントヘッダ行ã®å‰ã«ãƒã‚¤ãƒˆã‚ªãƒ¼ãƒ€ãƒ¼ãƒžãƒ¼ã‚¯ãŒç¾ã‚ŒãŸå ´åˆã€ ãã®ãƒ‰ã‚ュメント以é™ã§ã¯ã€ãã®ãƒã‚¤ãƒˆã‚ªãƒ¼ãƒ€ãƒ¼ãƒžãƒ¼ã‚¯ã«å¾“ã£ãŸã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ã§è§£é‡ˆã•れる。 YAMLドã‚ュメントã¨ãƒ†ã‚ストノードテã‚ストノードã¯ã€nレベルã®ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆã§å§‹ã¾ã‚Šã€ ãã®å†…容ã¯>nã®ä»»æ„ã®ãƒ¬ãƒ™ãƒ«ã§ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆã•れã¦ã„る。 テã‚ストノードã¯ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã€ã‚¹ã‚«ãƒ©ã€ã‚¨ã‚¤ãƒªã‚¢ã‚¹ã«ãªã‚‹ã“ã¨ãŒå‡ºæ¥ã‚‹ã€‚ ã¨ã„ã†ã®ãŒãƒ†ã‚ストノードã®å®šç¾©ã ãŒã€ ã¾ã‚一連ã®ãƒžãƒƒãƒ”ングã¯ã²ã¨ã¤ã®ãƒ†ã‚ストノードã§ã‚り〠一連ã®ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã¯ã²ã¨ã¤ã®ãƒ†ã‚ストノードã§ã‚り〠ã²ã¨ã¤ã®ã‚¹ã‚«ãƒ©ã‚‚ã²ã¨ã¤ã®ãƒ†ã‚ストノードã§ã‚ã‚‹ã€ã¨ã„ã†ã“ã¨ã ã‚ã†ã€‚ 厳密ã«ã„ã†ã¨é•ã†ã£ã½ã„ã‘ã©ã€‚ YAMLドã‚ュメントã¯ã€ã²ã¨ã¤ã®ãƒ†ã‚ストノードã‹ã‚‰æˆã‚Šç«‹ã£ã¦ã„る。 ã¤ã¾ã‚Šã€YAMLドã‚ュメントã¯ã²ã¨ã¤ã®ãƒžãƒƒãƒ”ングã‹ã‚‰ãªã£ã¦ãŠã‚Šã€ ã¾ãŸã¯ã²ã¨ã¤ã®ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã‹ã‚‰ãªã£ã¦ãŠã‚Šã€ ã¾ãŸã¯ã²ã¨ã¤ã®ã‚¹ã‚«ãƒ©ã‹ã‚‰ãªã£ã¦ã„ã‚‹ã€ã¨ã„ã†ã“ã¨ã 。 ã—ã‹ã—エイリアスã¯ãƒ‰ã‚ュメントã«ã¯ãªã‚Œãªã„。 ドã‚ュメントã¯ã€ãƒ‰ã‚ュメントヘッダ行ã§å§‹ã¾ã‚‹ã€‚ ドã‚ュメントヘッダ行ã¯ã€ä¸‰ã¤ã®'-'ã‹ã‚‰ãªã‚‹ãƒ‰ã‚ュメントセパレータã¨ã€ ä»»æ„ã®ç©ºç™½æ–‡å—ã§å§‹ã¾ã‚‹è¡Œã§ã‚る。 ã—ã‹ã—ã€ã‚‚ã—ストリームã®å…ˆé ã«ã®ãƒ‰ã‚ュメントヘッダ行記述ãŒãªã‹ã£ãŸã‚‰ã€ パーサã¯ã€ãƒ˜ãƒƒãƒ€è¡ŒãŒã‚ã£ãŸã‹ã®ã”ã¨ã振舞ã†ã€‚ ã¤ã¾ã‚Šã€ã‚¹ãƒˆãƒªãƒ¼ãƒ ã®å…ˆé ã®ãƒ‰ã‚ュメントã¯ã€ãƒ˜ãƒƒãƒ€è¡Œã‚’çœç•¥ã—ã¦ã‚ˆã„。 ã ãŒã€ãƒ˜ãƒƒãƒ€è¡ŒãŒçœç•¥ã•れãŸå ´åˆã€ãã®ãƒ‰ã‚ュメントã¯ã‚¹ã‚«ãƒ©ã«ã¯ãªã‚Œãªã„。 ã‚‚ã—ã€'...'ã®ã¿ãŒè¨˜è¿°ã•れãŸè¡ŒãŒããŸå ´åˆã€ãã“ã§ãƒ‰ã‚ュメントãŒçµ‚了ã—ãŸã¨ã¿ãªã•れる。 ã“れã¯ã€æ¬¡ã®ãƒ‰ã‚ュメントãŒãã‚‹ã¾ã§æ™‚é–“ãŒã‹ã‹ã‚‹å ´åˆã«æœ‰åйã§ã‚る。 YAMLストリームã¨ãƒ‰ã‚ュメントã®ä¾‹ã€‚
# ã“ã“ã‹ã‚‰å§‹ã¾ã‚‹ãƒã‚¤ãƒˆåˆ—ã¯ã€UTF-8ã§è¨˜è¿°ã•れãŸYAMLストリームã 。
# ã“ã®ã‚¹ãƒˆãƒªãƒ¼ãƒ ã¯ã€å››ã¤ã®ãƒ‰ã‚ュメントã‹ã‚‰ãªã‚‹ã€‚
# ã“ã®ã‚¹ãƒˆãƒªãƒ¼ãƒ ã®åˆã‚ã®ãƒ‰ã‚ュメントã¯ã€ãƒ˜ãƒƒãƒ€è¡ŒãŒçœç•¥ã—ã¦ã‚る。
# ä¸èº«ã¯ãƒ–ãƒãƒƒã‚¯ãƒžãƒƒãƒ”ング。
ä»Šæ—¥ã®æ™©å¾¡é£¯:
- 桜肉ã®å¤§å’Œç…®(ç¼¶è©°)
- ãƒã‚·ã‚¢ãƒ–レッド(100円ã®30パーセント引ã)
- ã¼ãŸã‚‚ã¡(ã‚ã‚“ã“ã¨ããªã“)
æ˜¨æ—¥ã®æ™©å¾¡é£¯:
- ãµã˜ã‚Šã‚“ã”二個
# 次ã¯ãƒ˜ãƒƒãƒ€è¡Œã§å§‹ã¾ã‚‹æ–°ãŸãªãƒ‰ã‚ュメント。
# ä¸èº«ã¯ãƒ–ãƒãƒƒã‚¯ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã€‚
---
- 渡辺
- 大丸
- 岩田(三越)
- æ¾å±‹
# 例ãˆã°ã“れãŒä½•ã‹ã®ãƒ—ãƒã‚°ãƒ©ãƒ ãŒä¸å®šæœŸã«åã出ã™ãƒã‚°ã‹ãªã‚“ã‹ã ã¨ã—ã¦ã€
# 次ã®ãƒ‰ã‚ãƒ¥ãƒ¡ãƒ³ãƒˆãŒæ¥ã‚‹ã¾ã§3時間ã‹ã‹ã‚‹ã¨ã™ã‚‹ã¨ã€
# 上ã®ãƒ‰ã‚ュメントãŒå‡¦ç†ã•れるã®ã‚‚3時間後ã«ãªã‚‹ã€‚
# ã—ã‹ã—ã€ã“ã“ã§
...
# を入れã¦ã‚ã’ã‚‹ã¨ã€ãƒ‰ã‚ュメントã®çµ‚ã‚りをèªè˜ã—ã¦å‡¦ç†ã‚’å§‹ã‚ã‚‹ã‹ã‚‰
# 三時間待ãŸãªãã¦ã‚‚済む。
# 三時間経éŽ
# 次ã¯ãƒ•ãƒãƒ¼ãƒžãƒƒãƒ”ング
---
{date: 2003-11-19, note: "今日ã¯çœ ã‹ã£ãŸã€‚" }
# 最後ã¯ã‚¹ã‚«ãƒ©ã€‚
--- |
毎回例を考ãˆã‚‹ã®ã¯ã¨ã¦ã‚‚ã‚ã‚“ã©ãã•ã„。
仕様書ã®ä¾‹ã¯é©åˆ‡ã§ã‚·ãƒ³ãƒ—ルã§åˆ†ã‚Šã‚„ã™ã„ãŒã€
ãªã‹ãªã‹ãã†ã¯ã„ã‹ãªã„。
分ã‹ã‚Šã«ãã„よãªã€ã“れ。
ディレクティブディレクティブã¯ã€ãƒ‘ーサã¸ã®æŒ‡ç¤ºã§ã‚る。 コメントã®ã‚ˆã†ã«ã€YAMLã®ãƒ‡ãƒ¼ã‚¿ã®ç”Ÿæˆã«ã¯å½±éŸ¿ã‚’åŠã¼ã•ãªã„。 ディレクティブã¯ä¸€ã¤ã®ãƒ‰ã‚ュメントã«é©ç”¨ã•れる。 åŒã˜ãƒ‡ã‚£ãƒ¬ã‚¯ãƒ†ã‚£ãƒ–ãŒåŒã˜ãƒ‰ã‚ュメントã«äºŒåº¦ä»¥ä¸Šç¾ã‚Œã‚‹ã“ã¨ã¯å‡ºæ¥ãªã„。
YAML 1.0ã§ã¯ã€ãŸã 一ã¤%YAMLディレクティブãŒå®šç¾©ã•れã¦ã„る。 パーサã¯ã€çŸ¥ã‚‰ãªã„ディレクティブã«ã¯è¦å‘Šã‚’出ã—ã¦ç„¡è¦–ã™ã‚‹ã€‚ %YAMLディレクティブã§ã¯ã€ãƒ‰ã‚ュメントã®YAMLã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’指定ã™ã‚‹ã€‚ 最新ã®ä»•様書ã§å®šç¾©ã•れã¦ã„ã‚‹ã®ã¯ãƒãƒ¼ã‚¸ãƒ§ãƒ³1.0ã§ã‚る。 ãƒãƒ¼ã‚¸ãƒ§ãƒ³1.0ã®ãƒ‘ーサã¯%YAML:1.0ãƒ‡ã‚£ãƒ¬ã‚¯ãƒ†ã‚£ãƒ–ãŒæ˜Žç¤ºã•れã¦ã„るドã‚ュメントã¨ã€ %YAMLãƒ‡ã‚£ãƒ¬ã‚¯ãƒ†ã‚£ãƒ–ãŒæ¬ ã‘ã¦ã„るドã‚ュメントをåŒã˜ã‚ˆã†ã«å—ã‘入れる。 マイナーãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’é«˜ãæŒ‡å®šã—ã¦ã„るドã‚ュメント(例:YAML:1.1)ã¯ã€é©å½“ãªè¦å‘Šã‚’出ã—ã¦å‡¦ç†ã™ã‚‹ã€‚ メジャーãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’é«˜ãæŒ‡å®šã—ã¦ã„るドã‚ュメントã¯ã€é©å½“ãªã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’出ã—ã¦æ‹’å¦ã™ã‚‹ã€‚ コレクションコレクションã¯ã€ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã¨ãƒžãƒƒãƒ”ングã®äºŒç¨®é¡žãŒã‚る。 ã¾ãŸã€åŒæ–¹ã¨ã‚‚ブãƒãƒƒã‚¯ã‚¹ã‚¿ã‚¤ãƒ«ã¨ãƒ•ãƒãƒ¼ã‚¹ã‚¿ã‚¤ãƒ«ã®äºŒç¨®é¡žã®ã‚¹ã‚¿ã‚¤ãƒ«ãŒã‚る。 ブãƒãƒƒã‚¯ã‚¹ã‚¿ã‚¤ãƒ«ã¯ã€æ–°ã—ã„行ã‹ã‚‰å§‹ã¾ã‚Šã€å—下ã’ã«ã‚ˆã£ã¦æ§‹é€ を記述ã™ã‚‹ã€‚ フãƒãƒ¼ã‚¹ã‚¿ã‚¤ãƒ«ã¯ã€è¡Œã®é€”ä¸ã‹ã‚‰å§‹ã¾ã‚Šã€æ¨™è˜æ–‡å—ã«ã‚ˆã‚Šæ§‹é€ を記述ã™ã‚‹ã€‚ フãƒãƒ¼ã‚¹ã‚¿ã‚¤ãƒ«ãƒŽãƒ¼ãƒ‰ã¯ã€å„è¦ç´ ã®é–“ã«ä»»æ„ã®ç©ºç™½æ–‡å—ã€ã‚³ãƒ¡ãƒ³ãƒˆã¨æ”¹è¡Œã‚’入れるã“ã¨ãŒå‡ºæ¥ã‚‹ã€‚ 改行ã®å¾Œã¯ã€å…ˆé ã®æ¨™è˜æ–‡å—('['or'{')ã¨åŒã˜ãƒ¬ãƒ™ãƒ«ã¾ã§ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆã—ã¦ã‹ã‚‰ç¶šãを記述ã™ã‚‹ã€‚ ã¾ãŸã€ãƒ•ãƒãƒ¼ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã¯ãƒ–ãƒãƒƒã‚¯ã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã‚„ブãƒãƒƒã‚¯ã‚¹ã‚«ãƒ©ã‚’åå«ã«æŒã¤ã“ã¨ã¯å‡ºæ¥ãªã„。 シーケンスシーケンスã¯ã€é †åºã¥ã‘られãŸã‚³ãƒ¬ã‚¯ã‚·ãƒ§ãƒ³ã§ã‚り〠より高ã„レベルã§ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆã•れãŸãƒŽãƒ¼ãƒ‰ã‹ã‚‰æˆã‚‹ã€‚ フãƒãƒ¼ã‚¹ã‚¿ã‚¤ãƒ«ã¯ã€çŸãç°¡å˜ãªæ§‹é€ ã®ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã¨ã—ã¦ä½¿ãˆã‚‹ã€‚ ç°¡æ½”ãªè¨˜è¿°ã®ãŸã‚ã€ä»¥ä¸‹ã®æ§‹æ–‡ä¸Šã®ç‰¹ä¾‹ãŒã‚る。
シーケンスã®ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã‚’ä½œã‚‹å ´åˆã«ã€ "内å´ã®ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ãŒä½•ã®å±žæ€§(後述予定)ã‚‚æŒã£ã¦ã„ãªã„" "内å´ã®ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®å…ˆé ã®ãƒŽãƒ¼ãƒ‰ãŒä½•ã®å±žæ€§ã‚‚æŒã£ã¦ã„ãªã„" ã¨ã„ã†æ¡ä»¶ã‚’満ãŸã—ãŸã¨ãã«ã€æ¨™è˜æ–‡å—ã‚’ç¶šã‘ã¡ã‚ƒã£ãŸã‚Šã§ãる。 |
Copyright(C) 2003 OHITO Yuki All Rights Reserved