ÀÖ»çÁÉ£².

Ǧºä£²(¦Á)

akaxiso2.0-beta1


Ǧºä£²¤Ï¡¢XML-Schema¥É¥­¥å¥á¥ó¥È¤«¤é¡¢¥·¥ê¥¢¥é¥¤¥¶¥Ö¥ë¤Ê¥¯¥é¥¹¤òÀ¸À®¤¹¤ë¤¿¤á¤Î¥¹¥­¡¼¥Þ¥³¥ó¥Ñ¥¤¥é¤Ç¤¹¡£

¥³¥Þ¥ó¥É¥é¥¤¥ó

osixaka2 [-p] [-d] [-o ¥Ç¥£¥ì¥¯¥È¥ê̾] [-D] [-l <¥×¥ê¥Õ¥¡¥ì¥ó¥¹¥Õ¥¡¥¤¥ë̾>] [-s <¥×¥ê¥Õ¥¡¥ì¥ó¥¹¥Õ¥¡¥¤¥ë̾>] <XMLʸ½ñ ¥Õ¥¡¥¤¥ë>

¥ª¥×¥·¥ç¥ó

¥ª¥×¥·¥ç¥óʸ»ú °ÕÌ£

-p

¥¹¥­¡¼¥Þ¥Õ¥¡¥¤¥ë¤ò¥Ñ¡¼¥¹¤¹¤ë¤Î¤ß¤Ç½ªÎ»¤¹¤ë¡£
-d ¥Ñ¡¼¥¹¤µ¤ì¤¿¥¹¥­¡¼¥Þ¥É¥­¥å¥á¥ó¥È¤ò¡¢¥·¥ê¥¢¥é¥¤¥º¤¹¤ë¡£
-o <¥Ç¥£¥ì¥¯¥È¥ê̾> ½ÐÎϥǥ£¥ì¥¯¥È¥ê¤Î»ØÄꡣ̵»ØÄê¤Î¾ì¹ç¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê
-D Í¿¤¨¤é¤ì¤¿XMLʸ½ñ¤«¤éDTD¤òÆÉ¤ß¹þ¤ß¡¢XML-Schema¥É¥­¥å¥á¥ó¥È¤ËÊÑ´¹¡¢½ñ¤­½Ð¤¹¡£
-l Í¿¤¨¤é¤ì¤¿¥×¥ê¥Õ¥¡¥ì¥ó¥¹¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤à¡£
-s ¥×¥ê¥Õ¥¡¥ì¥ó¥¹¥Õ¥¡¥¤¥ë¤ò½ñ¤­½Ð¤¹¡£

Îã¤È¤·¤Æ¡¢Ç¦ºä£²¤Ë¤è¤ë¡¢XML Schema¤Î¤¿¤á¤Î¥¹¥­¡¼¥Þʸ½ñÀ¸À®¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£

XMLSchema¤Ï¡¢°Ê²¼¤ÎÆó¤Ä¤Î¥¹¥­¡¼¥Þʸ½ñ¤Ë¤è¤êÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

̾Á°¶õ´ÖURI ¥Õ¥¡¥¤¥ë̾ ¥ª¥ê¥¸¥Ê¥ë¥¹¥­¡¼¥Þ¤ÎURL
http://www.w3.org/2001/XMLSchema XMLSchema.xsd http://www.w3.org/2001/XMLSchema.xsd
http://www.w3.org/XML/1998/namespace xml.xsd http://www.w3.org/2001/xml.xsd

¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢¥ª¥ê¥¸¥Ê¥ë¤Î¥¹¥­¡¼¥Þ¤Ç¤¹¡£
Ǧºä£²¤Ç¤Î¥¹¥­¡¼¥ÞÀ¸À®¤Ç¤Ï¡¢°Ê²¼¤ÎÁ°½èÍý¤ò»Ü¤¹É¬Íפ¬¤¢¤ê¤Þ¤¹¡£

  • xs:include¡¢xs:import¤Ê¤É¤Ç»ØÄꤹ¤ë³°Éô¥¹¥­¡¼¥Þʸ½ñ¤Î°ÌÃÖ¤ò¡¢½èÍýÂоݤȤʤ륹¥­¡¼¥Þʸ½ñ¤«¤é¤ÎÁêÂХѥ¹¤ËÊѹ¹
    • XMLSchema.xsd¤Î¾ì¹ç¤Ë¤Ï¡¢xs:include¤Ç»ØÄꤵ¤ì¤ëxml.xsd¤Î¥Ñ¥¹¤òÁêÂХѥ¹¤ËÊѹ¹¡£

Á°½èÍý¤ò»Ü¤·¤¿¥Õ¥¡¥¤¥ë¤Ï¡¢akaxiso2/osixaka2°Ê²¼¤Ë¤¢¤ê¤Þ¤¹¡£¤³¤Î¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤Æ¡¢°Ê²¼¤Î¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£

Windows¤Î¾ì¹ç(akaxiso2\bin¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Æ)

akaxiso2\bin> osixaka2 ..\osixaka2\XMLSchema.xsd

Linux¤Î¾ì¹ç(akaxiso2/osixaka2¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Æ)

$ ./osixaka2 XMLSchema.xsd

¤³¤ÎÁàºî¤Ë¤è¤ê¡¢element.h/xiso.h/xiso.cpp¤Î»°¤Ä¤Î¥Õ¥¡¥¤¥ë¤¬À¸À®¤µ¤ì¤Þ¤¹¡£¤½¤ì¤¾¤ì¤ÎÆâÍÆ¤ò°Ê²¼¤Ë¼¨¤·¤Þ¤¹¡£

¥Õ¥¡¥¤¥ë̾
ÆâÍÆ
element.h ¥·¥ê¥¢¥é¥¤¥¶¥Ö¥ë¤Ê¥¯¥é¥¹¤ÎÀë¸À
¥·¥ê¥¢¥é¥¤¥º´Ø¿ô¤ÎÀë¸À
xiso.h leaf<>¥¯¥é¥¹¤ÎÀë¸À
xiso.cpp leaf<>¥¯¥é¥¹¤Î¼ÂÁõ
¥·¥ê¥¢¥é¥¤¥º´Ø¿ô¤Î¼ÂÁõ

°Ê¾å¤Î¥Õ¥¡¥¤¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤·¡¢ÀÖ»çÁɥ饤¥Ö¥é¥ê¤È¥ê¥ó¥¯¤¹¤ë¤³¤È¤Ç¡¢XML Schema¥É¥­¥å¥á¥ó¥È¤Î¥·¥ê¥¢¥é¥¤¥º¡¢¥Ç¥·¥ê¥¢¥é¥¤¥º¤¬²Äǽ¤È¤Ê¤ê¤Þ¤¹¡£¥Ç¥·¥ê¥¢¥é¥¤¥º¡¢¥·¥ê¥¢¥é¥¤¥º¤¹¤ë¤¿¤á¤Î¥µ¥ó¥×¥ë¥³¡¼¥É¤Ï¡¢osixaka2/test_main.cpp¡ÊHTMLÈǡˤò¤´»²¾È¤¯¤À¤µ¤¤¡£
(Linux¤Ç¤¢¤ì¤Ð¡¢osixaka2¥Ç¥£¥ì¥¯¥È¥ê¤Ç¡¢make parser¤ò¹Ô¤¦¤³¤È¤Ç¡¢¥Ó¥ë¥É¤Ç¤­¤Þ¤¹¡£)

»ÅÍÍ¡¢À©¸Â¡¢Ì¤¼ÂÁõÉô¤Ê¤É

  • XML-SchemaÃæ¤ÎÁȹþ¤ß·¿¤Ï¡¢Ç¦ºä£²¤Ë¤è¤ê¡¢C++¥¯¥é¥¹¤Ë¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤Þ¤¹¡£
    Âбþɽ(ÀÖ»çÁÉ¡¢Ç¦ºä£²¤Ë¤ª¤±¤ëÁȤ߹þ¤ß·¿)¤ò»²¾È¤¯¤À¤µ¤¤¡£¤Þ¤¿¡¢¤³¤ì¤é¤ÎÂбþ¤Ï¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤Ë¤è¤êÊѹ¹²Äǽ¤Ç¤¹¡£

  • xs:simpleType¤Ë¤è¤ëñ½ã·¿¤ÎÄêµÁ¤òÍѤ¤¤¿¾ì¹ç¡¢À¸À®¤µ¤ì¤ë·¿¤Ï¡¢std::string¤Îtypedef̾¤È¤Ê¤ê¤Þ¤¹¡£
    ¤Þ¤¿¡¢Ã±½ã·¿¤ÎÀ©¸Â¡¢³ÈÄ¥¤ÎÄêµÁ¤Ë¤Ä¤¤¤Æ¡¢ÂÅÅöÀ­¸¡¾Ú¥í¥¸¥Ã¥¯¤Ï¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó¡£

  • °Ê²¼¤Î¥¿¥°¡¢Â°À­¤Ï¡¢¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó¡£
    • xs:keybase¡¢xs:keyref¡¢xs:substitutionGroup¡¢mixed°À­¡¢

  • °Ê²¼¤Î¥¿¥°¡¢Â°À­¤Ï¡¢Ì¤¼ÂÁõ¤Ç¤¹¡£
    • xs:redefine¡¢abstract°À­¡¢final°À­¡¢block°À­¡¢blockDefault°À­

  • complexContent°Ê²¼¤Ë¤ª¤±¤ërestriction¤ÎÄêµÁ¤Ë´Ø¤·¤Æ¡¢À©Ìó¤Î¥Á¥§¥Ã¥¯¤Ï¡¢Ì¤¼ÂÁõ¤Ç¤¹¡£

  • ÀÖ»çÁɤǤϡ¢XMLSchema¤Çµ­½Ò¤µ¤ì¤ë¥É¥­¥å¥á¥ó¥È¹½Â¤¤ò¡¢¤è¤ê¾¯¤Ê¤¤¿ô¤Î¥¯¥é¥¹¤Çɽ¸½¤Ç¤­¤ë¤è¤¦¤Ë¤·¤Æ¤¢¤ê¤Þ¤¹¡£
    ¤³¤Î¤¿¤á¡¢XML Schema¤ÇÄêµÁ¤µ¤ì¤ëʸ½ñ¤ò¤½¤Î¤Þ¤Þ¡¢C++¤Î¥¯¥é¥¹¤Ø¤ÈÊÑ´¹¤¹¤ë¤È¾éŤÊÀë¸À¤Ë¤Ê¤ê¤Þ¤¹¡£¤³¤Î¤¿¤á¡¢Ç¦ºä£²¤Ç¤Ï¡¢ÆâÉô¤Ç¥É¥­¥å¥á¥ó¥È¹½Â¤¤Îñ½ã²½¡¢ºÇŬ²½¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤Î¥í¥¸¥Ã¥¯¤Ë¤Ä¤¤¤Æ¤Ï¡¢¤è¤ê¡¢¾ÜºÙ¤Ê¼ÂÁõ¤ò¹Ô¤¦Í½Äê¤Ç¤¹¡£

  • xs:include¡¢xs:import¤Î½èÍý»þ¤Ë»ØÄꤵ¤ì¤ëschemaLocation°À­¤Ï¡¢½èÍýÂоݤΥ¹¥­¡¼¥Þ¥Õ¥¡¥¤¥ë¤«¤é¤ÎÁêÂХѥ¹¤Çµ­½Ò¤µ¤ì¤ë¤â¤Î¤È¤·¤Þ¤¹¡£


¥Û¡¼¥à¤ËÌá¤ë¡¡ÀÖ»çÁÉ£²¥×¥í¥¸¥§¥¯¥È¥Ú¡¼¥¸¤Ø