Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
霞ヶ房 - yaml
[go: Go Back, main page]

¹°À²‚©‚ç‚ൽ½Òô
infoseek”Ô‘g•\

æ›¸ãæ®´ã‚ŠYAML備忘録

ã“ã“ã§ã¯ã€YAMLã«ã¤ã„ã¦ã®è©³ç´°ã‚’æ›¸ãæ®´ã£ã¦ã„ãã¾ã™ã€‚ ãã®ã†ã¡æ•´ç†ã—ã¾ã™ãŒã€ãれã¾ã§æˆ‘æ…¢ã—ã¦ãã ã•ã„。 ã‚ã¨YAMLãŒä½•ã‹çŸ¥ã‚‰ãªã„人ã¯ã€ãƒªãƒ³ã‚¯ã‹ã‚‰å¥½ããªã¨ã“ã‚ã¸è¡Œã£ã¦ãã ã•ã„。 åˆå¿ƒè€…å‘ã‘YAML紹介ã“ーãªãƒ¼ã€Žã‚„むるã£ã¦ãªã‚“ã ã¹ãª(仮称)ã€ã¯ã€ã“ã£ã¡ãŒã²ã¨æ®µè½ã—ãŸã‚‰å¤šåˆ†ä½œã‚Šã¾ã™ã€‚

何を隠ãã†ä¿ºã¯äº”教科ã®ä¸­ã§è‹±èªžãŒä¸€ç•ªè‹¦æ‰‹ãªã®ã§ã€é “çæ¼¢ãªã“ã¨ã‚’書ã„ã¦ã„ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚ ã‚ã¾ã‚Šéµœå‘‘ã¿ã«ã—ãªã„ã“ã¨ãŒã€ãŠãªã‹ãŒç—›ããªã‚‰ãªã„よã†ã«ã™ã‚‹ç§˜è¨£ã‹ã‚‚ã—れã¾ã›ã‚“。 「ã“ã“ãŒé•ã†!ã€ã¨ã‹ã€Œã“ã“ã¯å¤‰ã˜ã‚ƒã‚“?ã€ã¨ã‹ã€Œã“ã“ãŒè¨³åˆ†ã‚‰ã‚“ã€ã¨ã‹ã¯ã€ ã©ã‚“ã©ã‚“掲示æ¿ã‹ãƒ¡ãƒ¼ãƒ«ã§é€£çµ¡ãã ã•ã„。気ã¥ã„ãŸã‚‰å–„処ã—ã¾ã™ã€‚

リンク

ã¡ã‚‡ã£ã¨å¾…ã£ã¦ã¦ã­ã€‚

YAML1.0仕様書
仕様書。基本。
YAML Cookbook
Rubyã®æ–‡æ³•ã¨å¯¾æ¯”ã•ã›ãŸYAMLã®èª¬æ˜Žã€‚分りやã™ã„。 Rubyを知ã£ã¦ã„ã‚‹ãªã‚‰ã€çœºã‚ã¦ã„ã‚‹ã ã‘ã§YAMLãŒåˆ†ã£ãŸæ°—ã«ãªã‚Œã‚‹å„ªã‚Œã‚‚ã®ã€‚
XMLã®è«–考: YAMLã¯XMLã«æ”¹è‰¯ã‚’加ãˆã‚‹
"YAML"日本語ããるトップ。
Matzã«ã£ãã®XMLã¨YAML
多ãã®äººãŒYAMLを知ã£ãŸãã£ã‹ã‘。ã¾ã¤ã‚‚ã¨ã•ã‚“ã¯æ—¥æœ¬ã«ãŠã‘ã‚‹YAMLã®ä¼é“者ã£ã½ã„。 ã“ã“ã®ã‚³ãƒ¡ãƒ³ãƒˆã§ç¹°ã‚Šåºƒã’られã¦ã„ã‚‹è­°è«–ã‚‚é¢ç™½ã„。
YAMLã‚’Rubyã§ä½¿ã†
表題ãã®ã¾ã¾ã€‚日本語。ã·ã‚ãらã¾ã®äººã¯ã“ã“ã§YAMLã®ã‚¤ãƒ¡ãƒ¼ã‚¸ã‚’ã¤ã‹ã‚‚ã†ã€‚
YAMLã§è¦‹ã‚‹è­·èº«è¡“奥傳
YAMLã®ã‚½ãƒ¼ã‚¹ãŒåœ¨ã‚‹ã€‚例文ãŒã‚¯ãƒ¼ãƒ«ã€‚ ã—ã‹ã—『痛快ã€ãªã‚‹ã¯ä¾‹æ–‡ã ã‘ã«éžãšã€‚ 如何ã«YAMLを用ã‚ã‚‹ã‹ã‚’eRubyç­‰ã®å®Ÿä¾‹ã‚’以ã¤ã¦åˆ†ã‚Šæ˜“ãè«–ã˜ã¦ã‚る。(嘘ã¤ã±ã¡å‡åé£)

文字

文字コード

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ã§ã¯ã€æ”¹è¡Œæ–‡å­—ã¨ã—ã¦æ¬¡ã®æ–‡å­—を用ã„る。

æ™®é€šã®æ”¹è¡Œ
  • 0x0d(LF)
  • 0x0a(CR)
  • 0x85(unicode next line(NEL))
ç‰¹åˆ¥ãªæ„味ã®ã‚る改行
  • 0x2028(unicode line separator(LS))
  • 0x2029(unicode paragraph separator(PS))

ã€Žæ™®é€šã®æ”¹è¡Œã€ã¯ã€è¡Œã®çµ‚ã‚りã¨ã—ã¦ã®æ„味ã—ã‹ã‚‚ãŸãªã„ãŒã€ ã€Žç‰¹åˆ¥ãªæ„味をæŒã¤æ”¹è¡Œã€ã¯ã€ãªã‚“ã‹æ„味ãŒã‚ã‚‹ã£ã½ã„。 エミッタã®åƒãã«å½±éŸ¿ã‚’åŠã¼ã™ã‚ˆã†ã§ã€å¾Œè¿°ã™ã‚‹ã¨æ€ã†ã€‚

スペース処ç†

YAMLã®æ§‹é€ ã¯ã€ã‚¹ãƒšãƒ¼ã‚¹(インデント)ã¨è¡Œã§è¨˜è¿°ã•れるã®ã§ã€ スペースã®å‡¦ç†ã¯å¤§åˆ‡ã‚‰ã—ã„。

インデント

YAMLã§ã¯ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆã¯ã€é›¶å€‹ä»¥ä¸Šã®ç©ºç™½æ–‡å­—ã«ã‚ˆã£ã¦å®šç¾©ã•れる。 インデントã«ä½¿ã‚れる文字ã¯ã€0x20ã—ã‹è¨±ã•れã¦ãŠã‚‰ãšã€ã‚¿ãƒ–文字ã¯ä½¿ãˆãªã„。 環境ã«ã‚ˆã‚‹ã‚¿ãƒ–ã®æ–‡å­—æ•°ã®é•ã„ãŒå¼•ãèµ·ã“ã™æ··ä¹±ã‚’é¿ã‘ã‚‹ãŸã‚ã®ã‚ˆã†ã ã€‚ (Pythonã¯ã‚¿ãƒ–ã®æ–‡å­—æ•°ã¯å›ºå®šã ã£ã‘ã‹ã€‚ã‚ã¨ä»•様書ã«ã¯ã€æœ€è¿‘ã®ã‚¨ãƒ‡ã‚£ã‚¿ã«ã¯ ã‚¿ãƒ–ã‚’å‹æ‰‹ã«ã‚¹ãƒšãƒ¼ã‚¹ã«å¤‰æ›ã—ã¦ãれる機能ãŒã¤ã„ã¦ã„ã‚‹ã¨ã‚ã–ã‚ã–æ›¸ã„ã¦ã‚ã‚‹ã®ã§ã€ ãーゆーã®ã‚’使ã†ã¨å¹¸ã›ã«ãªã‚Œã‚‹ã‹ã‚‚。)

YAMLã®ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆã«ã‚ˆã‚‹æœ¨æ§‹é€ ã®è¨˜è¿°ã®åŽŸå‰‡ã¯æ¬¡ã®ã‚ˆã†ã«ãªã£ã¦ã„る。

  • å­ã®ãƒŽãƒ¼ãƒ‰ã¯è¦ªã®ãƒŽãƒ¼ãƒ‰ã‚ˆã‚Šæ·±ãインデントã•れる。
  • 兄妹ã®ãƒŽãƒ¼ãƒ‰(åŒã˜è¦ªã‚’æŒã¤ãƒŽãƒ¼ãƒ‰)ã¯åŒã˜ãƒ¬ãƒ™ãƒ«ã§ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆã•れる。
  • ãれãžã‚Œã®å…„妹ノードã®å­(従兄妹ノード?)ã¯ã€åˆ¥ã«åŒã˜ãƒ¬ãƒ™ãƒ«ã§ãªãã¨ã‚‚ã„ã„。

ブロックシーケンスã®ã‚¨ãƒ³ãƒˆãƒªãƒ¼æ¨™è­˜æ–‡å­—'-'ã¯ã€ã¡ã‚‡ã£ã¨ç‰¹åˆ¥ãªæ‰±ã„ã‚’ã•れる。 (ã“ã“ã„らãŒYAMLã®å£²ã‚Šã®"読ã¿ã‚„ã™ã•"ã£ã¦ã¨ã“ã‚ã ã‚ã†) ブロックシーケンスã«ã¯ã€ä»¥ä¸‹ã®åŽŸå‰‡ãŒé©å¿œã•れる。

  • ブロックシーケンスã®è¦ªãŒãƒ–ロックシーケンスã§ã¯ãªã„å ´åˆ (ã¤ã¾ã‚Šãƒ–ロックマッピングã®å ´åˆ)〠ãã®ãƒ–ロックシーケンスã®ãƒ¬ãƒ™ãƒ«ã¯è¦ªã®ãƒŽãƒ¼ãƒ‰ã¨åŒã˜ãƒ¬ãƒ™ãƒ«ã§ã‚‚ã„ã„。
  • ブロックシーケンスã®ã‚ã‚‹è¦ç´ ãŒãƒ–ロックシーケンスã§ã€ å­ã®ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ã®1番目ã®è¦ç´ ãŒä½•ã®å±žæ€§(明示ã•れãŸåž‹ã‹ã‚¢ãƒ³ã‚«ãƒ¼)ã‚‚æŒãŸãªã„å ´åˆã€ 標識文字'-'ã‚’ã€åŒã˜è¡Œã«ç¶šã‘ã‚‹ã“ã¨ãŒå‡ºæ¥ã‚‹ã€‚

ã¾ã‚ç´°ã‹ã„ã“ã¨ã¯ä¸‹ã®ä¾‹ã‚’見ã¦ãã ã•ã„ãªã€‚

---
ã“ã®ã‚¤ãƒ³ãƒ‡ãƒ³ãƒˆãƒ¬ãƒ™ãƒ«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