ÀÖ»çÁÉ£²¡¥¥ê¥Õ¥¡¥ì¥ó¥¹

¥Ç¥·¥ê¥¢¥é¥¤¥º

akaxiso2.0-beta2


ÀÖ»çÁÉ£²¤Ï¡¢¥Ç¥·¥ê¥¢¥é¥¤¥¶¤òaka::xml_deserializer¥¯¥é¥¹¤È¤·¤Æ¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£

aka::xml_deserializer¤Ï¡¢aka::xml_serializer¤ÈƱÍÍ¡¢¤¤¤¯¤Ä¤«¤Î¥¯¥é¥¹¤Îtypedef̾¤Ç¤¢¤ê¡¢¼ÂÂΤȤʤ륯¥é¥¹¤Ï¡¢¤½¤ì¤¾¤ì¡¢°Û¤Ê¤ëXML¥Ñ¡¼¥µ¥é¥¤¥Ö¥é¥ê¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤¾¤ì¤ÎXML¥Ñ¡¼¥µ¤ËÂбþ¤·¤Æ¡¢¥Ç¥·¥ê¥¢¥é¥¤¥¶¥¯¥é¥¹¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

¥·¥ê¥¢¥é¥¤¥¶¥¯¥é¥¹Ì¾ ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°ÊÑ´¹¥¨¥ó¥¸¥ó
aka::expat_deserializer expat (babel¤¬»ÈÍѤǤ­¤ì¤Ðʸ»ú¥³¡¼¥ÉÊÑ´¹¥¨¥ó¥¸¥ó¤È¤·¤Æbabel¤ò»ÈÍÑ¡£)
aka::xerces_deserializer Xerces-C++¤ÎSAX2¥Ñ¡¼¥µ¤ò»ÈÍÑ¡£(ICU¤ò»ÈÍѤ¹¤ëÀßÄê¤ÇXerces-C++¤¬¥³¥ó¥Ñ¥¤¥ë¤µ¤ì¤Æ¤¤¤ì¤Ð¡¢Ê¸»ú¥³¡¼¥ÉÊÑ´¹¥¨¥ó¥¸¥ó¤È¤·¤ÆICU¤ò»ÈÍÑ¡£)

¾åµ­¤Î¥¯¥é¥¹¤Î¤É¤Á¤é¤«¤¬¡¢°Ê²¼¤Î¥ë¡¼¥ë¤Ë½¾¤¤¡¢aka::xml_deserializer¥¯¥é¥¹¤Ø¤Ètypedef¤µ¤ì¤Þ¤¹¡£

£±¡¥Xerces-C++¤ò»ÈÍѤ¹¤ë¾ì¹ç¡£(AKAXISO2_USE_XERCESC¤¬#define¤µ¤ì¤Æ¤¤¤ë¾ì¹ç)
aka::xerces_deserializer¤¬¡¢aka::xml_deserializer¤È¤Ê¤ê¤Þ¤¹¡£

£²¡¥Xerces-C++¤ò»ÈÍѤ·¤Ê¤¤¾ì¹ç¡£(AKAXISO2_USE_XERCESC¤¬#define¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç)
aka::expat_deserializer¤¬¡¢aka::xml_deserializedr¤È¤Ê¤ê¤Þ¤¹¡£

¤Þ¤¿¡¢Xerces-C++¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ç¤â¡¢aka::expat_deserizlier¤Ï»ÈÍѲÄǽ¤Ç¤¹¡£

¥Ç¥·¥ê¥¢¥é¥¤¥¶¤Î»È¤¤Êý

¥Ç¥·¥ê¥¢¥é¥¤¥¶¥¯¥é¥¹¤ò¥é¥Ã¥×¤·¤¿¥Ç¥·¥ê¥¢¥é¥¤¥º´Ø¿ô(aka::deserialize())¤¬¡¢»ÈÍѲÄǽ¤Ç¤¹¡£´Êñ¤Ê»ÈÍÑÎã¤Ë¤Ä¤¤¤Æ¤Ï¡¢°Ê²¼¤Î¤È¤ª¤ê¤Ç¤¹¡£

/* ɸ½àÆþÎϤòÍѤ¤¥Ç¥·¥ê¥¢¥é¥¤¥º¤¹¤ë¡£ */
aka::document doc = aka::deserialize(std::cin);

¥Ç¥·¥ê¥¢¥é¥¤¥¶¤òÍѤ¤¤¿¾ì¹ç¤Ë¤Ï¡¢°Ê²¼¤Î¤È¤ª¤ê¤È¤Ê¤ê¤Þ¤¹¡£

aka::xml_deserializer deser;

/* ɸ½àÆþÎϤòÍѤ¤¥Ç¥·¥ê¥¢¥é¥¤¥º¤¹¤ë¡£ */
aka::document doc = deser.deserialize(std::cin);

¥Ç¥·¥ê¥¢¥é¥¤¥º´Ø¿ô¡¢¥Ç¥·¥ê¥¢¥é¥¤¥º¥á¥½¥Ã¥É¤Ï¡¢ÆþÎÏ·Á¼°¤Ë¤è¤ê¡¢¤¤¤¯¤Ä¤«¤Î¥ª¡¼¥Ð¡¼¥í¡¼¥ÉÈǤ¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£¾ÜºÙ¤Ë´Ø¤·¤Æ¤Ï¡¢2.¥é¥¤¥Ö¥é¥êAPI¤ò¤´»²¾È¤¯¤À¤µ¤¤¡£

¥Ç¥·¥ê¥¢¥é¥¤¥º»þ¤Î̾Á°¶õ´Ö½èÍý

¥Ç¥·¥ê¥¢¥é¥¤¥º»þ¤Ë¤Ï¡¢¥Ñ¡¼¥µ¤ÈÀÖ»çÁÉ£²¤Î¥Ç¥·¥ê¥¢¥é¥¤¥¶¥¨¥ó¥¸¥ó¤¬ÆâÉô¤Ç̾Á°¶õ´Ö½èÍý¤ò¹Ô¤¤¤Þ¤¹¡£Ä̾ï¤Î¥æ¡¼¥¶¥×¥í¥°¥é¥àÃæ¤Ë¤ª¤¤¤Æ¡¢ÆÃÊ̹Íθ¤¹¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£

¤¿¤À¤·¡¢QName¤Î¥Ç¥·¥ê¥¢¥é¥¤¥º¤¹¤ë¤è¤¦¤Ë¡¢Ì¾Á°¶õ´Ö¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤Ë´ð¤Å¤¤¤¿½èÍý¤¬É¬Íפʾì¹ç¤Ë¤Ï¡¢¹Íθ¤¬É¬ÍפȤʤê¤Þ¤¹¡£°Ê²¼¤ÎXMLʸ½ñ¤òÎã¤È¤·¤Æ¹Í¤¨¤Þ¤¹¡£

<?xml version="1.0">
<sample xmlns:aka="http://akaxiso.sourceforge.jp">
   <child name="aka:test"/>
</sample>

¤â¤·¡¢child@name¤¬¡¢xs:string¤äxs:token¤Ê¤É¡¢Ä̾ï¤Îʸ»úÎó¤Ç¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢ÌäÂꤢ¤ê¤Þ¤»¤ó¡£

¤·¤«¤·¤Ê¤¬¤é¡¢child@name¤¬¡¢QName¤Ç¤¢¤ë¾ì¹ç¡¢'aka'¤È¤¤¤¦Ì¾Á°¶õ´Ö¥×¥ì¥Õ¥£¥¯¥¹¤¬¡¢"http://akaxiso.sourceforge.jp"¤È¤¤¤¦URI¤òÂбþÉÕ¤±¤Æ¡¢²ò¼á¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£

¤³¤Î¤¿¤á¤Ë¤Ï¡¢¥Ç¥·¥ê¥¢¥é¥¤¥¶¥¨¥ó¥¸¥ó¤«¤é¡¢Ì¾Á°¶õ´Ö¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤È̾Á°¶õ´ÖURI¤ÎÂбþÉÕ¤±¤ò¼èÆÀ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¾ðÊó¤Ï¡¢¥Ç¥·¥ê¥¢¥é¥¤¥¶¥¨¥ó¥¸¥ó¤¬´ÉÍý¤¹¤ëentity_complements¥¯¥é¥¹¤Ë¤è¤ê¼èÆÀ¤¬²Äǽ¤Ç¤¹¡£¤Þ¤¿¡¢entity_complements¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ï¡¢aka::simpletype::read_text()¥á¥½¥Ã¥É¤Î°ú¿ô¤È¤·¤ÆÅϤµ¤ì¤Æ¤¤¤Þ¤¹¡£eneity_complements¥¯¥é¥¹¤Ë¤Ï¡¢get_prefixes()¤È¤¤¤¦aka::prefixes¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òÊÖ¤¹¥á¥½¥Ã¥É¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤«¤é¡¢ÂоݤȤʤëURI¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

Ãí¡Ë

¥Ç¥·¥ê¥¢¥é¥¤¥ºÂоݤǤ¢¤ëXMLʸ½ñÃæ¤Ç¸½¤ì¤ë̾Á°¶õ´Ö¥×¥ì¥Õ¥£¥¯¥¹¤ò¡¢¸å¤«¤é¼èÆÀ¤ò¤¹¤ë¤È¤¤¤¦¼êË¡¤â¹Í¤¨¤é¤ì¤Þ¤¹¤¬¡¢NS1.1¤Î»ÅÍÍ¤ÎÆÃÀ­(̾Á°¶õ´Ö¥×¥ì¥Õ¥£¥¯¥¹¤Ï¾å½ñ¤­²Äǽ¡¢¤Þ¤¿¡¢»ÒÍ×ÁǤÇÀë¸À¤µ¤ì¤ë̾Á°¶õ´Ö¤Ï¡¢¤½¤ÎÍ×ÁǤνªÎ»»þ¤Ë̵¸ú¤È¤Ê¤ë¡£¡Ë¤«¤é¡¢ÀÖ»çÁÉ£²¤Ç¤Ï¡¢¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£

¡£


¥ê¥Õ¥¡¥ì¥ó¥¹¥È¥Ã¥×¤Ø¡¡ÀÖ»çÁÉ£²¥È¥Ã¥×¤Ø sourceforge¥×¥í¥¸¥§¥¯¥È¥Ú¡¼¥¸¤Ø