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

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

akaxiso2.0-beta2


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

Àµ³Î¤Ë¤Ï¡¢aka::xml_serializer¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥¯¥é¥¹¤Îtypedef̾¤Ç¤¢¤ê¡¢¼ÂÂΤȤʤ륯¥é¥¹¤Ï¡¢¤½¤ì¤¾¤ì¡¢°Û¤Ê¤ëʸ»ú¥³¡¼¥ÉÊÑ´¹¥¨¥ó¥¸¥ó¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£¤½¤ì¤¾¤ì¤Îʸ»ú¥³¡¼¥ÉÊÑ´¹¥¨¥ó¥¸¥ó¤ËÂбþ¤·¤Æ¡¢¥·¥ê¥¢¥é¥¤¥¶¥¯¥é¥¹¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

¥·¥ê¥¢¥é¥¤¥¶¥¯¥é¥¹Ì¾ ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°ÊÑ´¹¥¨¥ó¥¸¥ó
aka::default_serializer ¥Ê¥·
aka::babel_serializer babel
aka::xerces_serializer Xerces-C++¤ÎTranscoder¥¯¥é¥¹

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

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

£²¡¥babel¤ò»ÈÍѤ¹¤ë¤¬¡¢Xerces-C++¤Ï»ÈÍѤµ¤ì¤Ê¤¤¾ì¹ç¡£(AKAXISO2_USE_XERCESC¤Ï#define¤µ¤ì¤Æ¤¤¤º¡¢AKAXISO2_USE_BABEL¤¬#define¤µ¤ì¤Æ¤¤¤ë¾ì¹ç)
aka::babel_serializer¤¬¡¢aka::xml_serializer¤È¤Ê¤ê¤Þ¤¹¡£

£³¡¥babel¤âXerces-C++¤â»ÈÍѤ·¤Ê¤¤¾ì¹ç¡£(AKAXISO2_USE_XERCESC¤âAKAXISO2_USE_BABEL¤â#define¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡£)
aka::default_serializer¤¬¡¢aka::xml_serializer¤È¤Ê¤ê¤Þ¤¹¡£

¤Þ¤¿¡¢¾åµ­¥ë¡¼¥ë¤Ë¤«¤«¤ï¤é¤º¡¢Âбþ¤¹¤ëʸ»ú¥³¡¼¥ÉÊÑ´¹¥¨¥ó¥¸¥ó¤¬»ÈÍѲÄǽ¤Ê¾ì¹ç¡¢¤½¤ì¤¾¤ì¤Î¥·¥ê¥¢¥é¥¤¥¶¥¯¥é¥¹¤ò¡¢Ä¾ÀÜ»ÈÍѤ¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£(¤¿¤È¤¨¤Ð¡¢Xerces-C++¤ò»ÈÍѤ¹¤ë¾ì¹ç¤Ç¤â¡¢¥Ð¥Ù¥ë¤¬»ÈÍѲÄǽ¤Ç¤¢¤ì¤Ð¡¢aka::babel_serizlier¤Ï»ÈÍѲÄǽ¡£)

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

aka::xml_serializer¥¯¥é¥¹¤òºîÀ®¤·¡¢serialize()¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹¤³¤È¤Ç¥·¥ê¥¢¥é¥¤¥º¤¬²Äǽ¤Ç¤¹¡£
ºÇ¤â´Êñ¤Ê»ÈÍÑË¡¤Ë¤Ä¤¤¤Æ¤Ï¡¢°Ê²¼¤Î¥µ¥ó¥×¥ë¤ò¤´»²¾È¤¯¤À¤µ¤¤¡£

aka::xml_serializer serializer;
/* ¥É¥­¥å¥á¥ó¥È¤Î¥ë¡¼¥È¥¤¥ó¥¹¥¿¥ó¥¹ ¡¡¥É¥­¥å¥á¥ó¥È̾¤Ïaka::doctype()¤òÍѤ¤¤Æ"root"¤ÈÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤È¤¹¤ë¡£*/
root r;

/*¡¡Å¬Åö¤Ër¤òÀßÄê */
r .....

/* std::cout¤Ë¥·¥ê¥¢¥é¥¤¥º¤·¤¿¥É¥­¥å¥á¥ó¥È¤ò½ÐÎÏ */
serializer.serialize(r, "root", std::cout);


¥·¥ê¥¢¥é¥¤¥º»þ¤Î̾Á°¶õ´Ö»ØÄê

aka::xml_serializer¤Ï¡¢¤½¤ì¤¾¤ì¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤´¤È¤Ë¡¢Ì¾Á°¶õ´Ö½ÐÎÏ»þ¤ÎÀßÄê¤ò¸ÄÊ̤ËÊÝ»ý¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¤Þ¤¿¡¢¥·¥ê¥¢¥é¥¤¥º»þ¤Î̾Á°¶õ´Ö¤Î°·¤¤¤Ï¡¢Namespaces in XML¤Î»ÅÍͤ˴ð¤Å¤¤¤Æ¤¤¤Þ¤¹¡£¥Ð¡¼¥¸¥ç¥ó1.0¤È1.1¤ÎÆó¤Ä¤¬µ¬Äꤵ¤ì¤Æ¤¤¤Þ¤¹¡£(°Ê¹ß¡¢NS1.0¡¢NS1.1¤È¸Æ¤Ó¤Þ¤¹¡£)

NS1.0¤Ç¤Ï¡¢¥ë¡¼¥ÈÍ×ÁǤÇ̾Á°¶õ´Ö¥×¥ì¥Õ¥£¥¯¥¹¤ÎÀë¸À¤ò¹Ô¤¤¡¢¤½¤ì°Ê³°¤Î¾ì½ê¤Ç̾Á°¶õ´Ö¤ÎÀë¸À¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£
¤Þ¤¿¡¢NS1.1¤Ç¤Ï¡¢»ÒÍ×ÁÇÃæ¤Ç¤â¡¢Ì¾Á°¶õ´Ö¥×¥ì¥Õ¥£¥¯¥¹¤ÎÀë¸À¤¬²Äǽ¤Ç¤¹¡£

ÀÖ»çÁÉ£²¤Ï¡¢NS1.0¡¢NS1.1¤Îξ¼Ô¤ÎÊýË¡¤Ç¡¢¥·¥ê¥¢¥é¥¤¥º¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤½¤ì¤¾¤ì¤ÎÊýË¡¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£

NS1.0¥¹¥¿¥¤¥ë¤Î¥·¥ê¥¢¥é¥¤¥º

°Ê²¼¤Î»ØÄê¤ò¡¢¥·¥ê¥¢¥é¥¤¥ºÁ°¤Ë¹Ô¤¦É¬Íפ¬¤¢¤ê¤Þ¤¹¡£

  • aka::xml_serializer::enable_ns11()¥á¥½¥Ã¥É¤òÍѤ¤¤Æ¡¢NS1.1¥¹¥¿¥¤¥ë¤Ç¤Î̾Á°¶õ´ÖÀë¸À¤òÍÞÀ©¤·¤Þ¤¹¡£(¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢NS1.1¥¹¥¿¥¤¥ë¤¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£)

  • ¥É¥­¥å¥á¥ó¥ÈÃæ¤Ë¸½¤ì¤ë¡Ö¤¹¤Ù¤Æ¤Î¡×̾Á°¶õ´Ö¤ò¥ë¡¼¥ÈÍ×ÁÇÃæ¤ÇÀë¸À¤¹¤ë¤¿¤á¤Î»ØÄê¤ò¡¢aka::xml_serializer::using_prefix()¥á¥½¥Ã¥É¡¢¤â¤·¤¯¤Ï¡¢aka::xml_serializer::using_uri()¥á¥½¥Ã¥É¤òÍѤ¤¤Æ¹Ô¤¤¤Þ¤¹¡£

    Ãí¡Ë¤â¤·¡¢Àë¸À¤µ¤ì¤Æ¤¤¤Ê¤¤Ì¾Á°¶õ´Ö¤Ë°¤¹¤ëÍ×ÁǤ¬¡¢»ÒÍ×ÁÇÃæ¤Ë¸ºß¤·¤¿¾ì¹ç¡¢¥·¥ê¥¢¥é¥¤¥º¤ÏÀµ¾ï½ªÎ»¤·¤Þ¤¹¤¬¡¢À¸À®¤µ¤ì¤¿XMLʸ½ñ¤Ï¡¢ÂÅÅö¤Ê·Á¼°¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£

aka::xmlns("aka", "http://akaxiso.sourceforge.jp");

/* ¥·¥ê¥¢¥é¥¤¥¶¤ÎºîÀ® */
aka::xml_serializer serializer;

/* NS1.1¥¹¥¿¥¤¥ë¤ò̵¸ú¤Ë¤¹¤ë¡£*/
serializer.enable_ns11(false);

/* ̾Á°¶õ´Ö¥×¥ì¥Õ¥£¥¯¥¹"aka"¤ÈÂбþ¤¹¤ë̾Á°¶õ´ÖURI("http://akaxiso.sourceforge.jp")¤ò */
/* ¥ë¡¼¥ÈÍ×ÁǤÇÀë¸À¤¹¤ë¤¿¤á¤Î»ØÄê¡£ */
serializer.using_prefix("aka");

/* ¤â¤·¤¯¤Ï¡¢URI(http://akaxiso.sourceforge.jp")¤ËÂбþ¤¹¤ë̾Á°¶õ´Ö¥×¥ì¥Õ¥£¥¯¥¹'aka'¤ò */
/*»ØÄꤹ¤ë¤³¤È¤â¤Ç¤­¤ë¡£*/
/* serializer.usin_uri("http://akaxiso.sourceforge.jp"); */

/* ¥·¥ê¥¢¥é¥¤¥º */
serializer.serialize(root, "¥¿¥°Ì¾", std::cout);

NS1.1¥¹¥¿¥¤¥ë¤Î¥·¥ê¥¢¥é¥¤¥º

NS1.1¥¹¥¿¥¤¥ë¤Ç¤Ï¡¢»ÒÍ×ÁǤÎ̾Á°¤òÄ´¤Ù¡¢É¬ÍפÊ̾Á°¶õ´Ö¤ÎÀë¸À¤ò¼«Æ°Åª¤ËÀ¸À®¤·¤Þ¤¹¡£¤Þ¤¿¡¢NS1.1¥¹¥¿¥¤¥ë¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤ÇÍ­¸ú¤Ç¤¹¡£¤³¤Î¤¿¤á¡¢ÆÃÊ̤ÊÁàºî¤ÏɬÍפ¢¤ê¤Þ¤»¤ó¡£

/* ¥·¥ê¥¢¥é¥¤¥¶¤ÎºîÀ® */
aka::xml_serializer serializer;
/* ¥·¥ê¥¢¥é¥¤¥º */
serializer.serialize(root, "¥¿¥°Ì¾", std::cout);

Ãí) »ÒÍ×ÁǤÎ̾Á°¤òÄ´¤Ù¤Æ¡¢Ì¾Á°¶õ´Ö¤ÎÀë¸À¤ò¹Ô¤¤¤Þ¤¹¡£¤·¤«¤·¡¢Í×ÁÇÃͤˤĤ¤¤Æ¤Ï¡¢¥Á¥§¥Ã¥¯¤ò¹Ô¤¤¤Þ¤»¤ó¡£xml_serializer::using_prefix()¡¢xml_serializer::using_uri()¤òÍѤ¤¤Æ¡¢ÌÀ¼¨Åª¤Ë¡¢Ì¾Á°¶õ´Ö¤ÎÀë¸À¤òÀ¸À®¤·¤Æ¤¯¤À¤µ¤¤¡£


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