XPath

¢£XSLT
eXtensible Stylesheet Language Transformations
XML¥Æ¥­¥¹¥È¤òɽ¼¨¡¦°õºþÍѤËÊÑ´¹¤¹¤ë¤¿¤á¤Î¤â¤Î¡£
XSL¤Î°ìÉô¡£
XMLʸ½ñ¤ò¾¤ÎXMLʸ½ñ¤äHTMLʸ½ñ¤ËÊÑ´¹¤Ç¤­¤ë¡£

ÊÑ´¹Á°XMLʸ½ñ¡½¢ªXSLT¥×¥í¥»¥Ã¥µ¢ªÊÑ´¹¸åXMLʸ½ñ
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¢¬
¡¡¡¡¡¡¡¡¡¡¡¡¡¡XSLT¥¹¥¿¥¤¥ë¥·¡¼¥È

¢£XPath
XML Path Language
XMLʸ½ñ¤Î°ìÉôʬ¤ò¥¢¥É¥ì¥Ã¥·¥ó¥°¤¹¤ë¤¿¤á¤Î¸À¸ì¡£
¢ªXSL¤Ç»È¤ï¤ì¤Æ¤¤¤ë¡¢XML¥Æ¥­¥¹¥È¤Î¹½Â¤¤òé¤Ã¤Æ¡¢Í×ÁǤä°À­¡¢Ê¸»úÎó¤ò»Ø¤·¼¨¤¹°Ù¤Î¸À¸ì¡£

XSLT¤ÇXML¥Ç¡¼¥¿¤Î¹½Â¤ÊÑ´¹¤òµ­½Ò¤¹¤ë°Ù¤Ë¤Ï¡¢
XML¥Ç¡¼¥¿Ãæ¤ÎÆÃÄê¤ÎÍ×ÁǤä°À­¤ò»ØÄꤹ¤ë¤¿¤á¤Î¸À¸ì¡Ê¡áXPath¡Ë¤¬É¬Íס£

XSLT¤Î¥¹¥¿¥¤¥ë¥·¡¼¥È¤òºîÀ®¤¹¤ë¤Î¤Ë»ÈÍÑ¡£


¢£XPath¤Î½ñ¤­Êý
¡½XML¥Ç¡¼¥¿¡½
<'?xml version="1.0"?>
<'publications>
<'book>HogeBook<'/book>
<'book>HogeBook<'/book>
<'magazine>HogeMagazine<'/magazine>
<'/publications>
¢­
¡½XPath¤Î¥Ç¡¼¥¿¥â¥Ç¥ë¤Ë¤è¤ë¥Ä¥ê¡¼¹½Â¤¡½
¥ë¡¼¥È¥Î¡¼¥É
¡Ã
¡Ã¡½Í×ÁǥΡ¼¥É/publication
¡¡¡¡¡Ã
¡¡¡¡¡Ã¡½Í×ÁǥΡ¼¥É/book
¡¡¡¡¡Ã¡¡¡Ã¡½¥Æ¥­¥¹¥È¥Î¡¼¥É/HogeBook
¡¡¡¡¡Ã
¡¡¡¡¡Ã¡½Í×ÁǥΡ¼¥É/book
¡¡¡¡¡Ã¡¡¡Ã¡½¥Æ¥­¥¹¥È¥Î¡¼¥É/HogeBook
¡¡¡¡¡Ã
¡¡¡¡¡Ã¡½Í×ÁǥΡ¼¥É/magazine
¡¡¡¡ ¡¡¡Ã¡½¥Æ¥­¥¹¥È¥Î¡¼¥É/HogeMagazine

¢¢XPathʸˡ/¥ë¡¼¥È¥Î¡¼¥É¤Ï¡¢µ­¹æ[/]¤Ç»ØÄꤹ¤ë¡£
<'xsl:template match="/">
¡Ä¡Ä
<'/template>
¢ª¥ë¡¼¥È¥Î¡¼¥É¤Ë¥Æ¥ó¥×¥ì¡¼¥È¤òŬÍѤµ¤»¤ë¡¢¤æ¤¦°ÕÌ£¡£

¢¢XPathʸˡ/¿Æ»Ò´Ø·¸¤Ï¡¢[/]¤Çɽ¤¹¡£
¥Î¡¼¥ÉƱ»Î¤Î¿Æ»Ò´Ø·¸(³¬Áع½Â¤)¤Ï¡¢µ­¹æ[/]¤Ç¿ÆÍ×ÁÇ¡¦»ÒÍ×ÁǤòÏ¢·ë¤·¤Æ¤¤É½¸½¤¹¤ë¡£
<'xsl:template match="publications/book">
¡Ä¡Ä
<'/xsl:template>
¢ªpublicationÍ×ÁǤλÒÍ×ÁÇbook¤Ë¥Æ¥ó¥×¥ì¡¼¥È¤òŬÍѤµ¤»¤ë¡¢¤æ¤¦°ÕÌ£¡£

¢¢XPathʸˡ/ÁÄÀè¤È»Ò¹¤Ï[//]¤ÇÏ¢·ë¤¹¤ë¡£
¤¢¤ëÍ×ÁǤλÒ¹Í×ÁǤ˥ƥó¥×¥ì¡¼¥È¥ë¡¼¥ë¤òŬÍѤ·¤¿¤¤¾ì¹ç¡¢
µ­¹æ[//]¤ÇÁÄÀèÍ×ÁǤȻÒ¹Í×ÁǤòÏ¢·ë¤·¤ÆÉ½¸½¤¹¤ë¡£
<'xsl:template match="publications//price">
¡Ä¡Ä
<'/xsl:template>
¢ªpublicationÍ×ÁǤλÒÍ×ÁÇ{book}¤Î»ÒÍ×ÁÇprice¤Ë¥Æ¥ó¥×¥ì¡¼¥È¥ë¡¼¥ë¤òŬÍѤµ¤»¤ë¡¢¤æ¤¦°ÕÌ£¡£

¢¢XPathʸˡ/test()¤Ç¥Æ¥­¥¹¥È¥Î¡¼¥É¤ò¼è¤ê½Ð¤¹¡£
XML1.0ʸˡ¤Ç¤Ï¡¢³«»Ï¥¿¥°¤È½ªÎ»¥¿¥°¤Ç°Ï¤Þ¤ì¤¿Éôʬ¤òÍ×ÁÇ¤ÎÆâÍÆ¤È¤¤¤¦¡£
<'book>HogeBook<'/book>
XPath¤Ç¤Ï¡¢Í×ÁÇ¤ÎÆâÍÆ¤Ï¡¢¤½¤ÎÍ×ÁǥΡ¼¥É¤Ë·Ò¤¬¤ë¥Æ¥­¥¹¥È¥Î¡¼¥É¤Ç¤¢¤ë¤È¹Í¤¨¤ë¡£
XPath¤Ç¡¢¤¢¤ëÍ×ÁǤλҥƥ­¥¹¥È¥Î¡¼¥É¤òÌÀ¼¨Åª¤ËÁªÂò¤¹¤ë¤Ë¤Ï¡¢text()¤òÍѤ¤¤ë¡£
<'xsl:value-of select="book/text()"/>
cf.
<'xsl:valu-of select="book"/>¤È½ñ¤¤¤Æ¤â¡¢XSLT¥×¥í¥»¥Ã¥µ¤Ï¡¢
bookÍ×ÁǤÎÃͤȤ·¤Æ»Ò¥Æ¥­¥¹¥È¥Î¡¼¥É¤Îʸ»úÎó¤òÊÖ¤¹¤Î¤Ç¡¢·ë²Ì¤ÏƱ¤¸¡£

¢¢XPathʸˡ/¥«¥ì¥ó¥È¥Î¡¼¥É¤Ï[.]¤Çɽ¤¹¡£
XSLT¥×¥í¥»¥Ã¥µ¤¬¸½ºß½èÍý¤·¤Æ¤¤¤ë¥Î¡¼¥É¤ò¥«¥ì¥ó¥È¥Î¡¼¥É¤È¤¤¤¦¡£
XPath¤Ç¤Ï¡¢[.]¤Çɽ¸½¤¹¤ë¡£
<'xsl:value-of select".">
¢ª¥«¥ì¥ó¥È¥Î¡¼¥É¤Î»Ò¥Æ¥­¥¹¥È¥Î¡¼¥É¤ò¼è¤ê½Ð¤¹¡¢¤æ¤¦°ÕÌ£¡£

XPath¤Î¥Ç¡¼¥¿¥â¥Ç¥ë¤Ç¤Ï¡¢Í×ÁÇÆâ¤Ç»ØÄꤵ¤ì¤¿Â°À­¤ò¥Î¡¼¥É¤Î°ì¼ï¤È¹Í¤¨¡¢Â°À­¥Î¡¼¥É¤È¸Æ¤Ö¡£
°À­¥Î¡¼¥É¤È¤½¤Î°À­¤ò»ý¤ÄÍ×ÁǥΡ¼¥É¤Î´Ø·¸¤Ï¡¢½¾Â°´Ø·¸¤Ë¤¢¤ê¡¢Í×ÁǥΡ¼¥É¤Î¿Æ»Ò´Ø·¸¤È¤ÏÊÌ¡£

°À­¥Î¡¼¥É¤Î¾¤Ë¤â¡¢
̾Á°¶õ´Ö¥Î¡¼¥É¡¢½èÍýÌ¿Îá¥Î¡¼¥É¡¢¥³¥á¥ó¥È¥Î¡¼¥É¤¬¤¢¤ë¡£

¢£XPath¤Î±é»»»Ò
Èæ³Ó±é»»»Ò¡§ =, !=, <', >, <'=, >=
»»½Ñ±é»»»Ò¡§ +, -, *, div, mod
ÏÀÍý±é»»»Ò¡§ and, or

¢¨Èæ³Ó±é»»»Ò[<']¤È[>]¤Ï¡¢XML¤Ç¤Ï¥¿¥°¤Î³«»Ï¤È½ªÎ»¤ò¼¨¤¹¤¿¤á¡¢
¡¡XPath¤Ç»ÈÍѤ¹¤ëºÝ¤Ï¡¢¥¨¥ó¥Æ¥£¥Æ¥£»²¾È(¼ÂÂÖ»²¾È)¤Î[<]¤È[>]¤ò»ÈÍѤ·¤ÆÃÖ´¹¤¹¤ë¤³¤È¡£

¢£XPath¤Î¥Î¡¼¥É½¸¹ç´Ø¿ô
XPath¤Ë¤Ï¡¢¥Î¡¼¥É½¸¹ç´Ø¿ô¡¢Ê¸»úÎó´Ø¿ô¡¢¥Ö¡¼¥ë´Ø¿ô¡¢¿ôÃÍ´Ø¿ô¤¬ÍѰդµ¤ì¤Æ¤¤¤ë¡£
ex
¡¦position() ¢ª»ØÄꤵ¤ì¤¿¥Î¡¼¥É½¸¹ç¤ÎÃæ¤Î¤½¤ì¤¾¤ì¤Î°ÌÃÖ¤òÊÖ¤¹¡£
¡¦last() ¢ª»ØÄꤵ¤ì¤¿¥Î¡¼¥É½¸¹ç¤ÎºÇ¸å¤Î¥Î¡¼¥É¤Î°ÌÃÖ¤òÊÖ¤¹¡£
¡¦count() ¢ª»ØÄꤵ¤ì¤¿¥Î¡¼¥É½¸¹ç¤Î¥µ¥¤¥º¤òÊÖ¤¹¡£
¾åµ­¤Î´Ø¿ô¤Ç¡¢Æ±°ì³¬ÁØ¤ÇÆ±°ìÍ×ÁÇ̾¤ò»ý¤Ä¤â¤Î¤ÎÃæ¤«¤éÆÃÄê¤ÎÍ×ÁǤÀ¤±¤ò»ØÄê¤Ç¤­¤ë¡£
<'xsl:template match="book[position()=2]"/>
¢ªÊ£¿ôÍåÎ󤷤Ƥ¤¤ëbookÍ×ÁǤÎÃæ¤«¤é2ÈÖÌܤÎbookÍ×ÁǤÀ¤±¤ò½èÍý¤¹¤ë¡¢¤æ¤¦°ÕÌ£¡£

¢£XPath¤Ç¤ÎÆÃÄê°À­¤ÎÁªÂò
Í×ÁǤ¬»ý¤Ä°À­¤ËÃíÌܤ·¡¢ÆÃÄê¤Î°À­Ãͤò»ý¤Ä¥Î¡¼¥É¤À¤±¤òÁªÂò¤Ç¤­¤ë¡£
<'?xml version="1.0" encoding="shift_jis"?>
<'publications>
<'book att="XML">¤Û¤²<'/book>
<'book att="SGML">¥Û¥²<'/book>
<'book att="DTP">Êâ²Æ<'/book>
<'/publications>
°À­Ì¾¤ÎÁ°¤Ë[@]¤òÉÕ¤±¤ë»ö¤Ç¡¢Â°À­ÃͤòXPath¤ÎÃæ¤Ç»²¾È¤Ç¤­¤ë¡£
<'xsl:template match="book[@att='SGML']"/>
¢ªatt°À­¤¬"SGML"¤ÎÍ×ÁÇ(2ÈÖÌܤÎbookÍ×ÁǤΤß)¤òÁªÂò¤¹¤ë¡¢¤æ¤¦°ÕÌ£¡£


ref:
XPath¤Î½ñ¤­Êý¤Î´ðËÜ
http://www.atmarkit.co.jp/fxml/tanpatsu/10xslt/xslt02.html
W3C/XSLT
http://www.infoteria.com/jp/contents/xml-data/REC-xslt-19991116-jpn.htm
W3C/XPath
http://www.doraneko.org/xml/xpath10/19991116/Overview.html

XSLT

XML´ØÏ¢¤ÎW3C´«¹ðµ¬³Ê
°Û¤Ê¤ë¥Ç¡¼¥¿¥Õ¥©¡¼¥Þ¥Ã¥È(¥¹¥­¡¼¥Þ)¤ò»È¤Ã¤¿¥Ç¡¼¥¿´Ö¤Ç
¥Ç¡¼¥¿¸ò´¹¤¹¤ë¾ì¹ç¤ËXSLT¤ÇXML¥Ç¡¼¥¿¤Î¹½Â¤ÊÑ´¹¤·¤ÆÂбþ

XML¤Ï¥Ç¡¼¥¿¤ÎÏÀÍýŪ¤Ê¹½Â¤¤òµ­½Ò¤¹¤ë¤¿¤á¤Î¸À¸ì
¤è¤Ã¤Æ¡¢XMLʸ½ñ¤Ë¤Ï¡¢Web¥Ö¥é¥¦¥¶¤ä»æÌ̤Ëɽ¼¨¤¹¤ëÂÎÀª¤ò¼¨¤¹¥ì¥¤¥¢¥¦¥È¾ðÊó(¥¹¥¿¥¤¥ë¾ðÊó)¤¬¤Ê¤¤¡£

¤À¤«¤é¡¢XML¥Ç¡¼¥¿¤òɽ¼¨¤¹¤ë¤Ë¤Ï¡¢°Ê²¼¤Î½èÍý¤¬É¬Íפˤʤ롣
¡¡­¡XML¥Ç¡¼¥¿¤Î¹½Â¤¤ò¡¢(Web¥Ö¥é¥¦¥¶Åù¤Î)¥Õ¥©¡¼¥Þ¥Ã¥¿¤¬¼õ¤±ÉÕ¤±¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤È¡¢¹½Â¤ÊÑ´¹¤¹¤ë½èÍý
¡¡­¢(ʸ»ú¤ÎÂç¾®¤ä¿§Åù)¥¹¥¿¥¤¥ëÉÕ¤±¤¹¤ë½èÍý

­¡¤ÎXML¥Ç¡¼¥¿¤Î¹½Â¤ÊÑ´¹¤ò»ØÄꤹ¤ëÉôʬ¤ò¡¢ÆÈΩ¤·¤¿µ¬³Ê¤È¤·¤Æ¼è¤ê½Ð¤·¤¿¤Î¤¬XSLT¡£
XSLT¤Ë¤Ï¡¢ÊÑ¿ô¤ä´Ø¿ô¡¢·«¤êÊÖ¤·¤ä¾ò·ïÉÕ½èÍýÅù¤Î¥×¥í¥°¥é¥ß¥ó¥°µ¡Ç½¤¬À¹¤ê¹þ¤Þ¤ì¤ª¤ê¡¢
Ê£»¨¤Ê¥Ç¡¼¥¿ÊÑ´¹½èÍý¤âÂбþ¤Ç¤­¤ë¡£

XML¥Ç¡¼¥¿¤«¤é°Ê²¼¤Ø¤Î¥Ç¡¼¥¿¹½Â¤ÊÑ´¹¤¬²Äǽ
¡¦XML¥Ç¡¼¥¿
¡¦HTML¥Ç¡¼¥¿
¡¦ÈóXML¥Ç¡¼¥¿¡Ê¥Æ¥­¥¹¥È¡¢CSV¡Ë


XSLT¤Ë¤è¤ëÊÑ´¹½èÍý¤Îµ­½Ò¤Ï¡¢¥¹¥¿¥¤¥ë¥·¡¼¥È¤È¸Æ¤Ð¤ì¤Æ¤¤¤ë¡£
XSLT¥¹¥¿¥¤¥ë¥·¡¼¥È¤Îµ­½Ò¤Ë½¾¤¤¡¢XSLT¥×¥í¥»¥Ã¥µ¤¬XML¥Ç¡¼¥¿¤Î¹½Â¤ÊÑ´¹¤ò¤¹¤ë

¢¨CSS(cascading style sheet) ¡â XSLT

¢£´ðËÜŪ½ñ¤­Êý
¡¦XSLT¥¹¥¿¥¤¥ë¥·¡¼¥È¼«ÂΤÏXML¥¿¥°¤Ç½ñ¤¯¡£
¡¦XSLT¤Î̾Á°¶õ´Ö¤Ë°¤¹¤ëÍ×ÁǤò¡¢XSLT¤ÎÌ¿Îá¤È¤·¤Æ»ÈÍѤ¹¤ë¡£

¢¢XSLT¤Î̾Á°¶õ´Ö
¡¡¡¦xsl:stylesheet
¡¡¡¦xsl:template
¡¡¡¦xsl:value-of
¡¡¡¦xsl:apply-tempates

¢¢XMLÀë¸À
¡¡¥¹¥¿¥¤¥ë¥·¡¼¥È¤ÎËÁƬ¤ËXMLÀë¸À¤ò½ñ¤¯¡£
¡¡<'?xml version="1.0" encoding="shift_jis"?>

¢¢XSLTÀë¸À[xsl:stylesheet]
¡¡¥¹¥¿¥¤¥ë¥·¡¼¥ÈÁ´ÂΤò°Ï¤à¥¿¥°¡£
¡¡¤³¤ÎÌ¿Îá¤Ç¡¢XSLT¤Î¥Ð¡¼¥¸¥ç¥ó¤ÈXSLT¤Î̾Á°¶õ´Ö¤ÎÀë¸À¤ò¤¹¤ë¡£
¡¡
¡¡<'xsl:stylesheet version="1.0"
¡¡¡¡¡¡xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
¡¡¡¡¡Ä¡Ä
¡¡<'/xsl:stylesheet>
¡¡version°À­¤Ç¥Ð¡¼¥¸¥ç¥ó»ØÄê¡£
¡¡xmlns:xsl°À­¤Ç̾Á°¶õ´Ö»ØÄê¡£

¢¢¥Æ¥ó¥×¥ì¡¼¥È¤Î»ØÄê[xsl:template]
¡¡XML¥Ç¡¼¥¿¤Î¹½Â¤ÊÑ´¹¤Îµ­½Ò¤È¤Ï¡¢
¡¡¡¡­¡Í¿¤¨¤é¤ì¤¿XML¥Ç¡¼¥¿¤Î¥Î¡¼¥É¤òÊÑ´¹¸µ¤È¤¹¤ë¤Î¤«
¡¡¡¡­¢ÊÑ´¹Àè¤ÎXML¥Ç¡¼¥¿¤Ë¡¢¤É¤ó¤Ê¥Î¡¼¥É¤òÀ¸À®¡¦Éղ乤ë¤Î¤«
¡¡¤ò»ØÄꤹ¤ë¤³¤È¡£
¡¡¤³¤Î»ØÄê¤ò[xsl:template]Í×ÁǤÇɽ¸½¤¹¤ë¡£
¡¡
¡¡<'xsl:template match=ÊÑ´¹¸µ¤ò»ØÄꤹ¤ë¥Ñ¥¿¡¼¥ó >
¡¡¡¡¡Ä¡ÄÊÑ´¹Àè¤ÇÀ¸À®¤µ¤ì¤ëXML¹½Â¤¤Î¥Æ¥ó¥×¥ì¡¼¥È¡Ä¡Ä
¡¡<'/xsl:template>
¡¡­¡¤Î»ØÄê¤Ï¡¢patter¤È¸Æ¤Ð¤ì¡¢match°À­¤Ç»ØÄꤹ¤ë¡£(¥Î¡¼¥É¤Î»ØÄê¤ÏXPahʸˡ¤Ë½¾¤¦)
¡¡­¢¤Î»ØÄê¤Ï¡¢template¤È¸Æ¤Ð¤ì¡¢xsl:template¥¿¥°¤Ç¶´¤Þ¤ì¤¿Éôʬ¤ËXML¹½Â¤¤È¤·¤ÆÉ½¸½¤¹¤ë¡£
¡¡
¡¡<'xsl:template match="paragraph" >
¡¡¡¡<'p><'/p>
¡¡<'/xsl:template>
¡¡ÊÑ´¹¸µ¤ÎXML¥Ç¡¼¥¿¤ÎparagraphÍ×ÁǤËÂФ·¤Æ¡¢HTML¤ÎpÍ×ÁǤòÀ¸À®¤¹¤ë¡¢¤æ¤¦°ÕÌ£¡£

¢¢Ê¸»úÎó¥³¥Ô¡¼[xsl:value-of]
¡¡Ê¸»úÎó¤Î¥³¥Ô¡¼¤Ë[xsl:value-to]Í×ÁǤò»È¤¦¡£
¡¡
¡¡<'xsl:template match="paragraph" >
¡¡¡¡<'p><'xsl:value-of select="." /><'/p>
¡¡<'/xsl:template>
¡¡select°À­¤Î"."¤Ï¡¢¸½ºß¤ÎÍ×ÁǤÎʸ»úÎóÃÍ¡¢¤æ¤¦°ÕÌ£¡£
¡¡
¡¡<'xsl:template match="title" >
¡¡¡¡<'h1><'xsl:value-of select="." /><'/h1>
¡¡<'/xsl:template>
¡¡ÊÑ´¹¸µXML¥Ç¡¼¥¿¤ÎtitleÍ×Áǽи½¤ÇÊÑ´¹Àè¤ÎXML¥Ç¡¼¥¿¤Îh1Í×ÁǤòÀ¸À®¡¦Éղ乤롢¤æ¤¦°ÕÌ£¡£

¢¢¹½Â¤¤Î¥³¥ó¥È¥í¡¼¥ë[xsl:apply-tempates]
¡¡XML¤Ï¡¢Í×ÁǤγ¬Áؤǥǡ¼¥¿¤¬É½¸½¤µ¤ì¤Æ¤¤¤ë¡£
¡¡¥Æ¥ó¥×¥ì¡¼¥È¥ë¡¼¥ë¤Ï¡¢ÊÑ´¹¸µ¤ÎXML¥Ç¡¼¥¿¤ÎÍ×ÁÇËè¤Ë¸ÄÊ̤˻ØÄꤹ¤ë¤¬¡¢
¡¡ÊÑ´¹Àè¤È¤Ê¤ëXML¥Ç¡¼¥¿(HTML¥Ç¡¼¥¿Åù)¤Ë¤â¹½Â¤¤ò»ý¤¿¤»¤ó¤È¤¤¤±¤ó¡£
¡¡ÊÑ´¹Àè¤Î¹½Â¤¤ò´ÉÍý¤¹¤ë¤Î¤¬¡¢[xsl:apply-templates]Í×ÁÇ¡£
¡¡
¡¡<'xsl:template match="article" >
¡¡¡¡<'html><'xsl:apply-templates /><'/html>
¡¡<'/xsl:template>
¡¡articleÍ×ÁǤËÂФ·¤ÆhtmlÍ×ÁǤòÀ¸À®¤µ¤»¤ë¡£
¡¡xsl:apply-templates¤Ï¡¢articleÍ×ÁǤλÒÍ×ÁǤǤ¢¤ëtitleÍ×ÁÇ¡¢
¡¡paragraphÍ×ÁǤòÊ̤ξì½ê¤Ë¤¢¤ëxsl:templateÍ×ÁǤÇÊÑ´¹Àè¤Ø¥Þ¥Ã¥Ô¥ó¥°¤µ¤»¤¿·ë²Ì¤ò
¡¡<'html><'/html>´Ö¤ËËä¤á¤³¤È¡¢¤æ¤¦°ÕÌ£¡£
¡¡
¢¢¥ë¡¼¥È¥Î¡¼¥É
¡¡match°À­¤ÎÃͤ˽ñ¤¯"/"¤Ï¥ë¡¼¥È¥Î¡¼¥É¤ò°ÕÌ£¤¹¤ë¡£
¡¡<'xsl:template match="/" >
¡¡¡¡<'xsl:apply-templates />
¡¡<'/xsl:template>

¢¢ex
¡½xml¡½
<'?xml version="1.0" encoding="Shift_JIS" ?>
<'?xml-stylesheet href="article-view.xsl" type="text/xsl" ?>
<'article>
¡¡<'title>XSLT INTRO<'/title>
¡¡<'paragraph>TO UNDERSTAND XSLT<'/paragraph>
<'/article>
¡½xslt¡½
<'?xml version="1.0" encoding="shift_jis" ?>
<'xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
¡¡<'xsl:template match="/">
¡¡¡¡<'xsl:apply-templates/>
¡¡<'/xsl:template>
¡¡<'xsl:template match="article">
¡¡¡¡<'html><'xsl:apply-templates/><'/html>
¡¡<'/xsl:template>
¡¡<'xsl:template match="title">
¡¡¡¡<'h1><'xsl:value-of select="."/><'/h1>
¡¡<'/xsl:template>
¡¡<'xsl:template match="paragraph" >
¡¡¡¡<'p><'xsl:value-of select="."/><'/p>
¡¡<'/xsl:template>
<'/xsl:stylesheet>


ref:
http://www.atmarkit.co.jp/fxml/tanpatsu/10xslt/xslt01.html

XSD:ÆÈ¼«¥Ç¡¼¥¿·¿

¢¢¥´¡¼¥ë
<'order>
<'orderItem>
<'id>4-8443-1780-6<'/id>
<'quantity>3<'/quantity>
<'/orderItem>
<'/order>
¡¡¡ÝidÍ×ÁÇ¡§
¡¡¡¡¡¡[¿ô»ú1¸Ä]+[-]+[¿ô»ú4¸Ä]+[-]+[¿ô»ú4¸Ä]+[-][¿ô»ú1¸Ä]·Á¼°¤ÎɽÉÊÈÖ¹æ

¢¢ºîÀ®
<'xsd:simpleType name="idType">¡Ý­¡
<'xsd:restriction base="xsd:string">¡Ý­¢
<'xsd:pattern value="d{1}-d{4}-d{4}-d{1}"/>¡Ý­£
<'/xsd:restriction>¡Ý­¤
<'/xsd:simpleType>¡Ý­¥

¡¡­¡¡§¿·µ¬¥Ç¡¼¥¿·¿¤ÎÀë¸À[xsd:simpleType]
¡¡¡¡ ´û¸¤Î¥Ç¡¼¥¿·¿(simpleType)¤Ë°ìÄê¤ÎÀ©¸Â¤ò²Ã¤¨¤Æ¿·¤·¤¤¥Ç¡¼¥¿·¿¤òºîÀ®¤¹¤ë¡£
¡¡­¢¡§À©¸Â»ØÄê[xsd:restriction]
¡¡¡¡¡¡¥Ù¡¼¥¹¤È¤Ê¤ë¥Ç¡¼¥¿·¿¤ò»ØÄꤹ¤ë¡£
¡¡­£¡§·Á¼°»ØÄê(patternÍ×ÁÇ)
¡¡¡¡¡¡·Á¼°¤òÀµµ¬É½¸½¤Ç»ØÄꤹ¤ë¡£
¡¡­¤¡§½ªÎ»¥¿¥°
¡¡­¥¡§½ªÎ»¥¿¥°
¡¡
¢¢»ÈÍÑ
1 :<'?xml version="1.0"?>
2 :<'xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3 :
4 : <'xsd:element name="order">
5 : <'xsd:complexType>
6 : <'xsd:sequence>
7 : <'xsd:element ref="orderItem" maxOccurs="10"/>
8 : <'/xsd:sequence>
9 : <'/xsd:complexType>
10: <'/xsd:element>
11:
12: <'xsd:element name="orderItem">
13: <'xsd:complexType>
14: <'xsd:sequence>
15: <'xsd:element name="id" type="idType"/>
16: <'xsd:element name="quantity" type="xsd:integer"/>
17: <'/xsd:sequence>
18: <'/xsd:complexType>
19: <'/xsd:element>
20:
21: <'xsd:simpleType name="idType">
22: <'xsd:restriction base="xsd:string">
23: <'xsd:pattern value="d{1}-d{4}-d{4}-d{1}"/>
24: <'/xsd:restriction>
25: <'/xsd:simpleType>
26:
27:<'/xsd:schema>

¢¢ºîÀ®£²
¡¡¥»¥ì¥¯¥È¥Ü¥Ã¥¯¥¹Åª¤Ê¤ä¤Ä
¡¡
<'xsd:simpleType name="idType">¡Ý­¡
<'xsd:restriction base="xsd:string">¡Ý­¢
<'xsd:enumeration value="4-8443-1780-6"/>¡Ý­£
<'xsd:enumeration value="4-7741-1751-1"/>
<'xsd:enumeration value="4-7741-1684-1"/>
<'/xsd:restriction>
<'/xsd:simpleType>

¡¡­¢[xsd:enumeration]¡§»ØÄê²Äǽ¤ÊÍ×ÁǤλØÄê

¢¢ºîÀ®£³
¡¡ÈϰÏÉÕ¤­¿ôÃÍ

<'xsd:simpleType name="quantityType">
<'xsd:restriction base="xsd:integer">
<'xsd:minInclusive value="1"/>
<'xsd:maxInclusive value="10"/>
<'/xsd:restriction>
<'/xsd:simpleType>

¢¢ÈϰϻØÄê¤Î°À­
¡¡¡Ýmin/maxInclusive¡§
¡¡¡¡¶­³¦ÃÍ´Þ¤à²Ã¸º/¾å¸Â¡Êmin<'=x<'=max¡Ë
¡¡¡Ýmin/maxExclusive¡§
¡¡¡¡¶­³¦Ãʹޤޤʤ¤²Ã¸º/¾å¸Â¡Êmin<'x<'max¡Ë

¢£¥¨¥È¥»¥È¥é¤Ê¥ª¥×¥·¥ç¥ó
¡Ý[use°À­]ɬ¿ÜÀ­
¡¡¡¦required¡§É¬¿Ü°À­
¡¡¡¦optional¡§Ç¤°Õ°À­
¡¡¡¦prohibited¡§¶Ø»ß°À­
¡¡¡Ýex
¡¡¡¡<'xsd:attribute name="id" type="idType" use="required"/>

¡Ý[default°À­]¥Ç¥Õ¥©¥ë¥ÈÃÍ
¡¡¡Ýex
¡¡¡¡<'xsd:attribute name="quantity" type="xsd:integer" default="1"/>

¡Ý[xsd:attributeGroupÍ×ÁÇ]°À­¤Î¥°¥ë¡¼¥×²½

1 : <'xsd:element name="orderItem">
2 : <'xsd:complexType>
3 : <'xsd:sequence><'/xsd:sequence>
4 : <'xsd:attributeGroup ref="orderItemAttributes"/>
5 : <'/xsd:complexType>
6 : <'/xsd:element>
7 :
8 : <'xsd:attributeGroup name="orderItemAttributes">
9 : <'xsd:attribute name="id" type="idType" use="required"/>
10: <'xsd:attribute name="quantity" type="xsd:integer" default="1"/>
11: <'/xsd:attributeGroup>

ref:
http://www.atmarkit.co.jp/fxml/rensai2/schema06/schema06_1.html

XSD:´ðËܥǡ¼¥¿·¿

boolean¡§¿¿µ¶
¡¡¡¡¡¡¡¡ true¡¢false¡¢1¡¢0
base64Binary¡§Base64¥¨¥ó¥³¡¼¥É¤µ¤ì¤¿¥Ð¥¤¥Ê¥êÃÍ
¡¡¡¡¡¡¡¡¡¡¡¡¡¡GpM7
hexBinary¡§16¿Ê¿ô
¡¡¡¡¡¡¡¡¡¡ 0FB7
float¡§Ã±ÀºÅÙ32¥Ó¥Ã¥ÈÉâÆ°¾®¿ô
¡¡¡¡¡¡ -INF¡¢-1E4¡¢-0¡¢0¡¢12.78E-2¡¢12¡¢INF¡¢NaN
double¡§ÇÜÀºÅÙ64¥Ó¥Ã¥ÈÉâÆ°¾®¿ô
¡¡¡¡¡¡¡¡-INF¡¢-1E4¡¢-0¡¢0¡¢12.78E-2¡¢12¡¢INF¡¢NaN
decimal¡§10¿Ê¿ô
¡¡¡¡¡¡¡¡ -1.23¡¢0¡¢123.4¡¢1000.00
integer¡§À°¿ô
¡¡¡¡¡¡¡¡ -126789¡¢-1¡¢0¡¢1¡¢126789
nonPositiveInteger¡§0°Ê²¼¤ÎÀ°¿ô
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡-126789¡¢-1¡¢0
negativeInteger¡§0̤Ëþ¤ÎÀ°¿ô
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ -126789¡¢-1
long¡§-9223372036854775808¤«¤é9223372036854775807¤Þ¤Ç¤ÎÀ°¿ô
¡¡¡¡¡¡-1¡¢12678967543233
int¡§-2147483648¤«¤é2147483647¤Þ¤Ç¤ÎÀ°¿ô
¡¡¡¡ -1¡¢126789675
short¡§-32768¤«¤é32767¤Þ¤Ç¤ÎÀ°¿ô
¡¡¡¡¡¡ -1¡¢12678
byte¡§-128¤«¤é127¤Þ¤Ç¤ÎÀ°¿ô
¡¡¡¡¡¡-1¡¢126
nonNegativeInteger¡§0°Ê¾å¤ÎÀ°¿ô
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡0¡¢1¡¢126789
unsignedLong¡§0¤«¤é18446744073709551615¤Þ¤Ç¤ÎÀ°¿ô
¡¡¡¡¡¡¡¡¡¡¡¡¡¡0¡¢12678967543233
unsignedInt¡§0¤«¤é4294967295¤Þ¤Ç¤ÎÀ°¿ô
¡¡¡¡¡¡¡¡¡¡¡¡ 0¡¢1267896754
unsignedShort¡§0¤«¤é65535¤Þ¤Ç¤ÎÀ°¿ô
¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 0¡¢12678
unsignedByte¡§0¤«¤é255¤Þ¤Ç¤ÎÀ°¿ô
¡¡¡¡¡¡¡¡¡¡¡¡¡¡0¡¢126
positiveInteger¡§1°Ê¾å¤ÎÀ°¿ô
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 1¡¢126789

duration¡§¤¢¤ë°ìÄê¤Î´ü´Ö
¡¡¡¡¡¡¡¡¡¡P1Y2M3DT10H30M12.3S¡Ê1ǯ2¥«·î3Æü10»þ´Ö30ʬ12.3ÉáË
dateTime¡§ÆÃÄê¤ÎÆü»þ
¡¡¡¡¡¡¡¡¡¡1999-05-31T13:20:00.000-05:00¡ÊÀ¤³¦»þ´Ö¡ÊUTC¡Ë¤«¤é5»þ´ÖÃÙ¤ì¤ÎÅìÉôɸ½à»þ¤Ë¤ª¤±¤ë1999ǯ5·î31Æü¸á¸å1»þ20ʬ¡Ë
time¡§»þ¹ï
¡¡¡¡¡¡13:20:00.000-05:00¡ÊÀ¤³¦»þ´Ö¡ÊUTC¡Ë¤«¤é5»þ´ÖÃÙ¤ì¤ÎÅìÉôɸ½à»þ¤Ë¤ª¤±¤ë¸á¸å1»þ20ʬ¡Ë
date¡§ÆüÉÕ
¡¡¡¡¡¡1999-05-31¡Ê1999ǯ5·î31Æü¡Ë
gYearMonth¡§¥°¥ì¥´¥ê¥¢¥óÎñ¤Îǯ·î
¡¡¡¡¡¡¡¡¡¡¡¡1999-02¡Ê1999ǯ2·î¡Ë
gYear¡§¥°¥ì¥´¥ê¥¢¥óÎñ¤Îǯ
¡¡¡¡¡¡ 1999¡Ê1999ǯ¡Ë
gMonthDay¡§¥°¥ì¥´¥ê¥¢¥óÎñ¤Î·îÆü
¡¡¡¡¡¡¡¡¡¡ --05-31¡Ê5·î31Æü¡Ë
gMonth¡§¥°¥ì¥´¥ê¥¢¥óÎñ¤Î·î
¡¡¡¡¡¡¡¡--05--¡Ê5·î¡Ë
gDay¡§¥°¥ì¥´¥ê¥¢¥óÎñ¤ÎÆü
¡¡¡¡¡¡---31¡Ê31Æü¡Ë

string¡§Ê¸»úÎó
¡¡¡¡¡¡¡¡Confirm this is electric.Again ,confirm it.
normalizedString¡§²þ¹Ôʸ»ú¡¢¥¿¥Öʸ»ú¤ò´Þ¤Þ¤Ê¤¤Ê¸»úÎó
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Confirm this is electric
token¡§²þ¹Ô¡¢ÀèÆ¬¡¦ËöÈø¤Î¶õÇò¡¢¤ª¤è¤Ó2¤Ä°Ê¾åϢ³¤·¤¿¶õÇò¤ò´Þ¤Þ¤Ê¤¤Ê¸»úÎó
¡¡¡¡¡¡ Confirm this is electric
language¡§xml:lang°À­¤ÎÃͤȤ·¤ÆÍ­¸ú¤Ê¤â¤Î¡ÊXML 1.0¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡Ë
¡¡¡¡¡¡¡¡¡¡en-GB¡¢en-US¡¢fr
Name¡§XML 1.0 Name·¿¡£Í×ÁǤä°À­¤Î̾Á°¤Ë»ÈÍѲÄǽ¤Ê·Á¼°¤Îʸ»úÎó¤Ç¡¢ÀèÆ¬¤È2ʸ»úÌܰʹߤ˻ÈÍѤǤ­¤ëʸ»ú¤¬µ¬Äꤵ¤ì¤¿Ê¸»úÎó¡£
¡¡¡¡¡¡shipTo
QName¡§XML Namespace ¤ÎQName¡£Ì¾Á°¶õ´ÖURI¤È¥í¡¼¥«¥ë̾¤ÎÁȤ«¤é¤Ê¤ë¡£
¡¡¡¡¡¡ po:USAddress
NCName¡§XML Namespace¤Î NCName¡£QName¤è¤êÀÜÆ¬¼­¤È¥³¥í¥ó¤ò¼è¤ê½ü¤¤¤¿¤â¤Î¡£
¡¡¡¡¡¡¡¡USAddress
anyURI¡§URI¤Î·Á¼°¤ò¤·¤¿Ê¸»úÎó
¡¡¡¡¡¡¡¡http ://www.example.com/doc.html#ID5

ID¡§DTD¤ÎID·¿
IDREF¡§DTD¤ÎIDREF·¿
IDREFS¡§DTD¤ÎIDREFS·¿
ENTITY¡§DTD¤ÎENTITY·¿
ENTITIES¡§DTD¤ÎENTITIES·¿
NMTOKEN¡§DTD¤ÎNMTOKEN·¿
NMTOKENS¡§DTD¤ÎNMTOKENS·¿
NOTATION¡§DTD¤ÎNOTATION·¿

ref:
http://www.atmarkit.co.jp/fxml/rensai2/schema04/schema04.html
http://www.w3.org/TR/xmlschema-2/#built-in-datatypes

INTRO TO XSD

¢£XML Schema
¡¡¥¹¥­¡¼¥Þ¸À¸ì
¡¡¤É¤ÎÍ×ÁǤ¬¤É¤Î°À­¤ò»ý¤Æ¤ë¤« Åù¤ÎXML¤ÎÌÚ¹½Â¤¤Î¥ë¡¼¥ëÄêµÁ
¡¡¤ò¤¹¤ë¸À¸ì
¡¡
¡¡XMLʸ½ñ¤ò²òÀϤ·¥Ç¡¼¥¿¤òÆÉ¤ß¼è¤ë¥×¥í¥°¥é¥à¤¬XML¥Ñ¡¼¥µ
¡¡É¬Íפʥǡ¼¥¿¤¬XMLʸ½ñ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë¤«³Îǧ¤¹¤ë¤Î¤âXML¥Ñ¡¼¥µ
¡¡
¡¡DTD(Document Type Definition)¤âXML¤Î¥¹¥­¡¼¥Þ¸À¸ì
¡¡¸Å¤¯¤Æ¥·¥ó¥×¥ë
¡¡µ¡Ç½ÉÔ­¤È¤Ê¤Ã¤¿DTD¤ËÂå¤ï¤Ã¤ÆÅо줷¤¿¤Î¤¬XML Schema
¡¡
¡¡Í×ÁÇ¤ÎÆâÍÆ¤ò»ØÄê¤Îʸ»úÎó¤Ë¸ÂÄê
¡¡Í×ÁÇ¿ô¤Î¸ÂÄê
¡¡ÅùºÙÉô¤Þ¤Ç»ØÄê²Äǽ

¢£Ã±½ãSchema
<'greeting>Hello World!!<'/greeting>
¡¡¡Ý¥ë¡¼¥ÈÍ×ÁÇ¤Ï greeting
¡¡¡ÝgreetingÍ×ÁǤϰÀ­¤ò»ý¤¿¤Ê¤¤
¡¡¡ÝgreetingÍ×ÁÇ¤ÎÆâÍÆ¤Ïʸ»úÎó
¡¡¡ÝgreetingÍ×ÁǤϻÒÍ×ÁǤò»ý¤¿¤Ê¤¤
¡¡¢­
<'?xml version="1.0"?>¡Ý­¡
<'xsd:schema xmlns:xsd=""http ://www.w3.org/2001/XMLSchema">¡Ý­¢
¡¡<'xsd:element name="greeting" type="xsd:string"/>¡Ý­£
<'/xsd:schema>¡Ý­¤
¡¡­¡¡§XMLÀë¸À
¡¡­¢¡§¥ë¡¼¥ÈÍ×ÁÇ[xsd:schema]
¡¡¡¡¡¡xsd¡§XML Schema¤Î̾Á°¶õ´Ö¡Ê̾Á°¶õ´ÖÀèÆ¬¼­¡Ë
¡¡¡¡¡¡xsd:schema: XML Schema¤ÎschemaÍ×ÁÇ
¡¡¡¡¡¡xmlns: ̾Á°¶õ´ÖÀë¸À¤Î³«»Ï
¡¡¡¡¡¡http...: ¼±ÊÌ»Ò(̾Á°¶õ´ÖURI)
¡¡¡¡¡¡xmlns:xsd="..": ̾Á°¶õ´ÖÀë¸À
¡¡¡¡¡¡Í×ÁÇ̾¤ÎÀèÆ¬¤Ëxsd:¤È¤¢¤Ã¤¿¤é http...XMLSchema¤ÇÄêµÁ¤µ¤ì¤¿Í×ÁǤǤ¢¤ë¤³¤È¤ò¼¨¤¹¡£
¡¡­£¡§Í×ÁÇÍ×ÁÇ[element]
¡¡¡¡¡¡xsd: ̾Á°¶õ´ÖÀÜÆ¬¼­
¡¡¡¡¡¡name: Í×ÁÇ̾¤ò»ØÄꤹ¤ë°À­
¡¡¡¡¡¡greeting: Í×ÁÇ̾
¡¡¡¡¡¡type: Í×ÁǤι½Â¤¤ò»ØÄꤹ¤ë°À­
¡¡¡¡¡¡xsd:string: »Ò¶¡Í×ÁÇ¡¦Â°À­¤Ê¤·¤ÇÆâÍÆ¤ÏXMLSchema¤ÇÄêµÁ¤·¤Æ¤¤¤ëstring·¿(ʸ»úÎó)
¡¡­¤¡§schemaÍ×ÁǤνªÎ»¥¿¥°

¢£Æþ¤ì»ÒSchema
<'customer>
<'name>¤Û¤²»Ò<'/name>
<'address>ÅìµþÅÔ<'/address>
<'/customer>
¡¡¡ÝcustomerÍ×ÁÇ¡§
¡¡¡¡¡¡¡¦¥ë¡¼¥ÈÍ×ÁÇ
¡¡¡¡¡¡¡¦Â°À­Ìµ¤·
¡¡¡¡¡¡¡¦»ÒÍ×ÁǤÏname¤Èaddress
¡¡¡¡¡¡¡¦»ÒÍ×Áǽи½½ç½ø¤Ïname¤Î¸å¤Ëaddress
¡¡¡Ýname/addressÍ×ÁÇ¡§
¡¡¡¡¡¡¡¦»ÒÍ×ÁǤʤ·
¡¡¡¡¡¡¡¦Â°À­¤Ê¤·
¡¡¡¡¡¡¡¦ÆâÍÆ¤Ïʸ»úÎó

1 : <'?xml version="1.0"?>
2 : <'xsd:schema xmlns:xsd=""http ://www.w3.org/2001/XMLSchema">
3 : <'xsd:element name="customer">
4 : <'xsd:complexType>
5 : <'xsd:sequence>
6 : <'xsd:element name="name" type="xsd:string"/><'!--»ÒÍ×ÁÇ­¡-->
7 : <'xsd:element name="address" type="xsd:string" /><'!--»ÒÍ×ÁÇ­¢-->
8 : <'/xsd:sequence>
9 : <'/xsd:complexType>
10: <'/xsd:element>
11: <'/xsd:schema>

¢£Ã±½ã·¿¡õÊ£»¨·¿
¡¡Í×ÁǤ¬»ÒÍ×ÁÇ¡¦Â°À­¤ò»ý¤Ä¤«¤òȽÄꤹ¤ë¥Ç¡¼¥¿·¿¡£
¡¡¡ÝÊ£»¨·¿¡§
¡¡¡¡»ÒÍ×ÁǤޤ¿¤Ï°À­¤ò»ý¤ÄÍ×ÁǤΥǡ¼¥¿·¿
¡¡¡Ýñ½ã·¿¡§
¡¡¡¡»ÒÍ×ÁǤª¤è¤Ó°À­¤ò»ý¤¿¤Ê¤¤Í×ÁǤΥǡ¼¥¿·¿
¡¡¡¡¤¢¤ë¤¤¤Ï°À­ÃͤΥǡ¼¥¿·¿

¡¡Í×ÁǤÏÊ£»¨·¿¤«Ã±½ã·¿¤«¤Ë¤è¤Ã¤Æ¡¢Àë¸ÀÊýË¡¤¬°Û¤Ê¤ë¡£

¢¢Ê£»¨·¿
¡¡L3: name°À­¤ÎÃÍ¤Ë¤Ï Í×ÁÇ̾¡Öcustomer¡×¤ò»ØÄê¡£
¡¡L4: Ê£»¨·¿¤ÎÍ×ÁǤòÀë¸À¤¹¤ëºÝ¤Î¥Ç¡¼¥¿·¿[xsd:complexType]
¡¡L5: »ÒÍ×ÁǤνи½½ç½ø¤Î»ØÄê[xsd:sequence]
¡¡¡¡¡¡name¡¢address¤Î½çÈÖ¤ÇÀë¸À¤¹¤ë¤³¤È¤ò»ØÄê¡£
¡¡L6: »ÒÍ×ÁǤÎÀë¸À[xsd:element]
¡¡ ñ½ã·¿¤Ê¤Î¤Ç ÉáÄ̤Ëtype°À­»ØÄꤷ¤Æ½ª¤ï¤ê¡£
¡¡ Ê£»¨·¿¤Î¾ì¹ç¤Ï ²¼ÁؤË[xsd:complexType]¤Ç³¤±¤ë¡£
¡¡
¢£ref°À­¤ÇÍ×ÁÇ»²¾È
¡¡[xsd:element ref="Í×ÁÇ̾"]¤Ç»²¾È²Äǽ¡£
1 : <'?xml version="1.0"?>
2 : <'xsd:schema xmlns:xsd=""http ://www.w3.org/2001/XMLSchema">
3 :
4 : <'xsd:element name="customer">
5 : <'xsd:complexType>
6 : <'xsd:sequence>
7 : <'xsd:element name="name" type="xsd:string"/>
8 : <'!-- address Í×ÁǤ˻ÒÍ×ÁǤòÄɲ乤롡-->
9 : <'xsd:element name="address">
10: <'xsd:complexType>
11: <'xsd:sequence>
12: <'xsd:element name="prefecture" type="xsd:string"/>
13: <'xsd:element name="city" type="xsd:string" />
14: <'xsd:element name="street" type="xsd:string" />
15: <'/xsd:sequence>
16: <'/xsd:complexType>
17: <'/xsd:element>
18: <'!-- ¤³¤³¤Þ¤Ç -->
19: <'/xsd:sequence>
20: <'/xsd:complexType>
21: <'/xsd:element>
22:
23:<'/xsd:schema>

¾å¤È²¼¤ÏƱ¤¸¤³¤È¡£

1 : <'?xml version="1.0"?>
2 : <'xsd:schema xmlns:xsd=""http ://www.w3.org/2001/XMLSchema">
3 :
4 : <'xsd:element name="customer">
5 : <'xsd:complexType>
6 : <'xsd:sequence>
7 : <'xsd:element name="name" type="xsd:string"/>
8 : <'xsd:element ref="address"/>
9 : <'/xsd:sequence>
10: <'/xsd:complexType>
11: <'/xsd:element>
12:
13: <'xsd:element name="address">
14: <'xsd:complexType>
15: <'xsd:sequence>
16: <'xsd:element name="prefecture" type="xsd:string"/>
17: <'xsd:element name="city" type="xsd:string" />
18: <'xsd:element name="street" type="xsd:string" />
19: <'/xsd:sequence>
20: <'/xsd:complexType>
21: <'/xsd:element>
22:
23: <'/xsd:schema>

¢£Í×ÁǰÀ­¤ÎÀë¸À
¡¡[xsd:attribute]¤ÇÍ×ÁǰÀ­¤ò»ØÄê¡£

<'customer hoge="hogege" piyo="piyoyo">
<'name>¤Û¤²»Ò<'/name>
<'address>ÅìµþÅÔ<'/address>
<'/customer>
¡¡¡ÝcustomerÍ×ÁÇ
¡¡¡¡¡¡¡¦¥ë¡¼¥ÈÍ×ÁÇ
¡¡¡¡¡¡¡¦hoge°À­¡¢piyo°À­¤¢¤ê
¡¡¡¡¡¡¡¦»ÒÍ×ÁǤÏname¤Èaddress
¡¡¡¡¡¡¡¦»ÒÍ×Áǽи½½ç½ø¤Ïname¤Î¸å¤Ëaddress
¡¡¢­
1: <'?xml version="1.0"?>
2: <'xsd:schema xmlns:xsd=""http ://www.w3.org/2001/XMLSchema">
3:
4: <'xsd:element name="customer">
5: <'xsd:complexType>
6: <'xsd:sequence>
7: <'xsd:element name="name" type="xsd:string"/>
8: <'xsd:element name="address" type="xsd:string" />
9: <'/xsd:sequence>
10: <'!-- °À­¤òÄɲ乤ë -->
11: <'xsd:attribute name="hoge" type="xsd:string"/>
12: <'xsd:attribute name="piyo" type="xsd:string"/>
13: <'/xsd:complexType>
14: <'/xsd:element>
15:
16: <'/xsd:schema>

¢£maxOccurs°À­
¡¡·«¤êÊÖ¤·½Ð¸½¤¹¤ëÍ×ÁǤκÇ¿½Ð¸½¿ô¤ò»ØÄꤹ¤ë°À­
<'order>
<'orderItem>¤³¤É¤â­¡<'/orderItem>
<'orderItem>¤³¤É¤â­¢<'/orderItem>
<'/order>
¡¡¡ÝorderÍ×ÁÇ¡§
¡¡¡¡¡¡¡¦Ê£»¨·¿
¡¡¡¡¡¡¡¦¥ë¡¼¥ÈÍ×ÁÇ
¡¡¡¡¡¡¡¦Ê£¿ô½Ð¸½¤¹¤ë»ÒÍ×ÁǤ¢¤ê¡Ê10¸Ä°Ê²¼¡Ë
¡¡¡ÝorderItemÍ×ÁÇ¡§
¡¡¡¡¡¡¡¦Ã±½ã·¿
¡¡¡¡¡¡¡¦ÆâÍÆ¤Ïʸ»úÎó
¡¡¢­
1 :<'?xml version="1.0"?>
2 :<'xsd:schema xmlns:xsd="http ://www.w3.org/2001/XMLSchema">
3 :
4 : <'xsd:element name="order">
5 : <'xsd:complexType>
6 : <'xsd:sequence>
7 : <'xsd:element name="orderItem" type="xsd:string" maxOccurs="10"/>
8 : <'/xsd:sequence>
9 : <'/xsd:complexType>
10: <'/xsd:element>
11:
12:<'/xsd:schema>

¡¡¢¨[maxOccurs="unbounded"]¡á£±¸Ä°Ê¾å¤Î¾å¸Â̵¤·

¢£minOccurs°À­
¡¡·«¤êÊÖ¤·½Ð¸½¤¹¤ëÍ×ÁǤκǾ¯½Ð¸½¿ô¤ò»ØÄꤹ¤ë°À­
¡¡0°Ê¾å¤ò»ØÄê²Äǽ

¢£choiceÍ×ÁÇ
¡¡¤¤¤º¤ì¤«¤òÁªÂò¤µ¤»¤ë°À­

1 :<'?xml version="1.0"?>
2 :<'xsd:schema xmlns:xsd="http ://www.w3.org/2001/XMLSchema">
3 :
4 : <'xsd:element name="order">
5 : <'xsd:complexType>
6 : <'xsd:sequence>
7 : <'xsd:element ref="orderItem" maxOccurs="10"/>
8 : <'/xsd:sequence>
9 : <'/xsd:complexType>
10: <'/xsd:element>
11:
12: <'xsd:element name="orderItem">
13: <'xsd:complexType>
14: <'xsd:sequence>
15: <'xsd:choice>
16: <'xsd:element name="name" type="xsd:string"/>
17: <'xsd:element name="id" type="xsd:string"/>
18: <'/xsd:choice>
19: <'xsd:element name="quantity" type="xsd:string" minOccurs="0"/>
20: <'/xsd:sequence>
21: <'/xsd:complexType>
22: <'/xsd:element>
23:
24:<'/xsd:schema>

ref:
http ://www.atmarkit.co.jp/fxml/rensai2/schema01/schema01.html

namespace definition

==problem==
<'?xml version="1.0" encoding="UTF-8"?>
<'ResBean xmlns="http: //hoge/sample/response">
<'ns1:userId xmlns:ns1="http: //hoge/sample/request">hoge<'/ns1:userId>
<'ns2:userName xmlns:ns2="http: //hoge/sample/request">piyo<'/ns2:userName>
<'/ResBean>

==solution==
change the line 2
------------
1: <'?xml version="1.0" encoding="UTF-8"?>
2: <'mapping xmlns="http: //hoge/sample/request">
3: <'class name="hoge.bean.ResBean">
4: <'map-to xml="ResBean" ns-uri="http: //hoge/sample/response"/>
5:
6: <'field name="userId" type="java.lang.String">
7: <'bind-xml name="userId" node="element"/>
8: <'/field>
9:
10: <'field name="userName" type="java.lang.String">
11: <'bind-xml name="userName" node="element"/>
12: <'/field>
13:
14: <'/class>
15: <'/mapping>
------------
into
------------
1: <'?xml version="1.0" encoding="UTF-8"?>
2: <'mapping xmlns="http: //hoge/sample/response">
3: <'class name="hoge.bean.ResBean">
4: <'map-to xml="ResBean" ns-uri="http: //hoge/sample/response"/>
5:
6: <'field name="userId" type="java.lang.String">
7: <'bind-xml name="userId" node="element"/>
8: <'/field>
9:
10: <'field name="userName" type="java.lang.String">
11: <'bind-xml name="userName" node="element"/>
12: <'/field>
13:
14: <'/class>
15: <'/mapping>
------------


==result==
<'?xml version="1.0" encoding="UTF-8"?>
<'ResBean xmlns="http: //hoge/sample/response">
<'userId>hoge<'/userId>
<'userName>piyo<'/userName>
<'/ResBean>

Top

HOME

09 | 2008/10 | 11
Æü ·î ²Ð ¿å ÌÚ ¶â ÅÚ
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -

QR

name:
mail:
title:
body:

N/A