๋ณธ๋ฌธ์œผ๋กœ ์ด๋™

XPointer

์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „.

XPointer(XML Pointer Language)๋Š” ์›น ์ƒ์— ์กด์žฌํ•˜๋Š” XML ๋ฌธ์„œ์˜ ์ผ๋ถ€๋ถ„์— ์ฃผ์†Œ๋ฅผ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” W3C ํ‘œ์ค€ ์–ธ์–ด์ด๋‹ค.

XPointer์˜ ์‚ฌ์šฉ ์˜์˜

[ํŽธ์ง‘]
  • XPointer๋Š” XML ๋ฌธ์„œ ๋‚ด์˜ ๋…ธ๋“œ, ๋ฒ”์œ„, ๊ธ€์ž ๋‹จ์œ„๋กœ ์ฃผ์†Œ๋ฅผ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • XML ๋ฌธ์„œ์˜ ์ผ๋ถ€๋ฅผ ๋‹ค๋ฅธ XML ๋ฌธ์„œ์—์„œ ๋งํฌํ•˜๊ณ ์ž ํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค.
  • ๋ฌธ์„œ ๋‚ด์˜ ์ผ๋ถ€ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค.

XPointer์˜ ํ‘œํ˜„๋ฒ•

[ํŽธ์ง‘]

XML ๋ฌธ์„œ์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ์—๋Š” URI๊ฐ€ ์“ฐ์ด๊ณ , ์ดํ›„ XML ๋ฌธ์„œ์˜ ์„ธ๋ถ€ ๋‚ด์šฉ์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ์—๋Š” XPointer๊ฐ€ ์“ฐ์ธ๋‹ค.

  • ์œ„์น˜ ์ง€์ • ๋ฐฉ์‹

href="URL#์ ˆ๋Œ€์œ„์น˜๊ฒฝ๋กœ.์ƒ๋Œ€์œ„์น˜๊ฒฝ๋กœ.๋ฌธ์ž์œ„์น˜๊ฒฝ๋กœ"

  • XPath ํ™œ์šฉ ๋ฐฉ์‹

href="URL#Xpointer(Xpath ํ‘œํ˜„์‹)"

์œ„์น˜ ์ง€์ • ์š”์†Œ ์–ด๋“œ๋ ˆ์‹ฑ

[ํŽธ์ง‘]

element() ์Šคํ‚ด์€ ์ฐจ์ผ๋“œ ์š”์†Œ์˜ ์œ„์น˜ ์ง€์ • ์–ด๋“œ๋ ˆ์‹ฑ์„ ๋„์ž…ํ•œ๋‹ค. ๋‹จ์ˆœํ•œ XPath ์ฃผ์†Œ์™€ ๋น„์Šทํ•˜์ง€๋งŒ ์ตœ์ข… ๋‹จ๊ณ„๋Š” ํŠธ๋ฆฌ์˜ ๋ธŒ๋žœ์น˜์— ์ƒ๋Œ€์ ์ธ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆซ์ž์—ฌ์•ผ ํ•œ๋‹ค.

์ด๋ฅผํ…Œ๋ฉด ๋‹ค์Œ์˜ ๊ฒฝ์šฐ:

<foobar id="foo">
  <bar/>
  <baz>
    <bom a="1"/>
  </baz>
  <bom a="2"/>
</foobar>

๋‹ค์Œ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค:

 xpointer(id("foo")) => foobar
 xpointer(/foobar/1) => bar
 xpointer(//bom) => bom (a=1), bom (a=2)
 element(/1/2/1) => bom (a=1) (/1 descend into first element (foobar),
                               /2 descend into second child element (baz),
                               /1 select first child element (bom))

๊ฐ™์ด ๋ณด๊ธฐ

[ํŽธ์ง‘]

์™ธ๋ถ€ ๋งํฌ

[ํŽธ์ง‘]