ÀÖ»çÁÉ£²¡¥

ÀÖ»çÁɤε¡Ç½ (XMLSchemaµ¡Ç½Âбþɽ)


ÀÖ»çÁɤϡ¢Æó¤Ä¤Î̾Á°¶õ´Öaka::¡¢xiso::¤Ë¤è¤ê¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

aka::̾Á°¶õ´Ö¤Ç¤Ï¡¢¥·¥ê¥¢¥é¥¤¥¶¤È¤·¤Æ¤Î¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤òÄ󶡤·¤Þ¤¹¡£
¼ÂºÝ¤Î¥É¥­¥å¥á¥ó¥È¤ÎÃͤòÊÝ»ý¤¹¤ë¥¯¥é¥¹¤Ï¡¢¥æ¡¼¥¶ÄêµÁ¤È¤Ê¤ê¤Þ¤¹¡£¤³¤Î¥æ¡¼¥¶ÄêµÁ¥¯¥é¥¹¤Î·¿¾ðÊó¤Ï¡¢Ê̤Υ¯¥é¥¹¤È¤·¤ÆÄêµÁ¤µ¤ì¤Þ¤¹¡£¤³¤Î¥¯¥é¥¹¤òleaf<>¥¯¥é¥¹¤È¸Æ¤Ó¤Þ¤¹¡£
Ä̾ï¤Ï¡¢leaf<>¥¯¥é¥¹¤ò¡¢xiso::̾Á°¶õ´ÖÆâ¤ÇÄêµÁ¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢¥·¥ê¥¢¥é¥¤¥¼¡¼¥·¥ç¥ó¤¬²Äǽ¤È¤Ê¤ê¤Þ¤¹¡£

ÀÖ»çÁɤϡ¢XML¥¹¥­¡¼¥Þ¤Çɽ¸½¤µ¤ì¤ë¥â¥Ç¥ë¤ò¥·¥ê¥¢¥é¥¤¥º¡¢¥Ç¥·¥ê¥¢¥é¥¤¥º¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
°Ê²¼¤Ë¡¢¥¹¥­¡¼¥ÞÍ×ÁǤȥ¯¥é¥¹¤Î´Ö¤ÎÂбþ¤ò¼¨¤·¤Þ¤¹¡£

XMLSchemaÍ×ÁÇ C++¥¯¥é¥¹¤Ë¤è¤ëɽ¸½ XML·¿¾ðÊó¤ÎÄêµÁ
schema/element ¥¤¥ó¥¹¥¿¥ó¥·¥ó¥°¤Ç¤­¤ë¥¯¥é¥¹ aka::doctype()¤òÍѤ¤¤Æ¡¢¥É¥­¥å¥á¥ó¥È¤Î¥È¥Ã¥×¥Î¡¼¥É¤Ç¤¢¤ë¤³¤È¤òÌÀ¼¨¡£
schema/complexType ¥¤¥ó¥¹¥¿¥ó¥·¥ó¥°¤Ç¤­¤ë¥¯¥é¥¹ leaf<>¥¯¥é¥¹¤ÎÀë¸À¤¬¹Ô¤ï¤ì¤Æ¤¤¤ë¤³¤È¡£
schema/attribute N.A. »²¾È¤¹¤ë¥¯¥é¥¹¤Ë¤ª¤¤¤ÆÄêµÁ¤µ¤ì¤¿·¿¤ò°úÍÑ
sequence ¥¤¥ó¥¹¥¿¥ó¥·¥ó¥°¤Ç¤­¤ë¥¯¥é¥¹¡£
¥á¥ó¥Ð¤òÍ×ÁǤÎÃͤȤ·¤Æ»ÈÍÑ¡£
leaf<>¥¯¥é¥¹¤Ë¤ª¤¤¤Æ¡¢aka::sequence<>¤ò·Ñ¾µ¤¹¤ë¡£¤Þ¤¿¡¢leaf<>¥¯¥é¥¹Æâ¤Îvoid model()¥á¥½¥Ã¥É¤ÇÆâ¤Ç¡¢Í×ÁǤòÄêµÁ¡£
choice aka::item¤òÃͤȤ·¤Æ»ý¤ÄSTL¥³¥ó¥Æ¥Ê¤Ë¤è¤ê¼ÂÁõ¡£ aka::sequential_choice<>¡¢
aka::associative_choice<>¤Ë¤è¤êleaf<>¥¯¥é¥¹¤òÄêµÁ¡£
all ¥¤¥ó¥¹¥¿¥ó¥·¥ó¥°¤Ç¤­¤ë¥¯¥é¥¹¡£
¥¯¥é¥¹¤Î¥á¥ó¥Ð¤òÍ×ÁǤÎÃͤȤ·¤Æ»ÈÍÑ¡£
leaf<>¥¯¥é¥¹¤Ë¤ª¤¤¤Æ¡¢aka::all<>¤ò·Ñ¾µ¤¹¤ë¡£leaf<>¥¯¥é¥¹Æâ¤Îvoid model()¥á¥½¥Ã¥É¤Ç¡¢Í×ÁǤòÄêµÁ¡£
simpleContent ¥¤¥ó¥¹¥¿¥ó¥·¥ó¥°¤Ç¤­¤ë¥¯¥é¥¹¡£
¥á¥ó¥Ð¤òÃÍ¡¢Â°À­¤ò¤È¤¹¤ë¡£
leaf<>¥¯¥é¥¹¤Ë¤ª¤¤¤Æ¡¢aka::simplecontent<>¤ò·Ñ¾µ¤·¡¢void model()¥á¥½¥Ã¥É¤Ç¡¢Í×ÁǤòÄêµÁ¡£
attribute
(complexTypeÆâ)
¥¯¥é¥¹¤Î¥á¥ó¥Ð¤ò°À­ÃͤȤ·¤Æ»ÈÍÑ¡£ sequence¡¢all¡¢simpleContent¤Î¾ì¹ç¤ËÄêµÁ²Äǽ¡£¥¯¥é¥¹¤Î¥á¥ó¥Ð¤È¤·¤ÆÉ½¸½¤µ¤ì¤ë¡£
  • attribute@default
    (complexTypeÆâ)
N.A. voide model()¥á¥½¥Ã¥ÉÆâ¡¢attribute()¥¯¥é¥¹¤Îset_default()¥á¥½¥Ã¥É¤Ë¤ÆÄêµÁ¡£¥Ñ¡¼¥¹»þ¤Ë¥á¥ó¥Ð¤ËÀßÄꤵ¤ì¤¿¥Ç¥Õ¥©¥ë¥ÈÃͤò½ñ¤­¹þ¤à¡£
  • attribute@fixed
    (complexTypeÆâ)
N.A. void model()¥á¥½¥Ã¥ÉÆâ¤Ë¤ª¤¤¤Æ¡¢fixed_attribute<>¥¯¥é¥¹¤òÍѤ¤¤ÆÄêµÁ¡£leaf<>¥¯¥é¥¹Æâ¤Î¤ß¤ÇÄêµÁ¤µ¤ì¤ë¡£
  • attribute@use
    (complexTypeÆâ)
N.A. voide model()¥á¥½¥Ã¥ÉÆâ¤Î¡¢member()¥¯¥é¥¹¤Îrequired(bool val)¥á¥½¥Ã¥É¤Ë¤ÆÄêµÁ¡£
element
(sequence¡¢allÆâ)
all¡¢sequence¥¯¥é¥¹Æâ¤Î¥á¥ó¥Ð¤¬Í×ÁÇÃͤȤʤ롣 leaf¥¯¥é¥¹Æâ¤Îvoid model()¥á¥½¥Ã¥É¤Ç¡¢member()¡¢ptrmember()¤òÍѤ¤¤ÆÄêµÁ¡£
element
(choiceÆâ)
aka::item¤Ë³ÊǼ¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¡£ leaf¥¯¥é¥¹Æâ¤Îvoid model()¥á¥½¥Ã¥É¤Ç¡¢item()¤òÍѤ¤¤ÆÄêµÁ¡£

element@default

N.A. void model()¥á¥½¥Ã¥ÉÆâ¡¢member()¥¯¥é¥¹¤Îset_default()¥á¥½¥Ã¥É¤Ë¤ÆÄêµÁ¡£¥Ñ¡¼¥¹»þ¤Ë¡¢ÀßÄꤵ¤ì¤¿Ãͤ¬¡¢¼«Æ°Åª¤ËÂåÆþ¤µ¤ì¤ë¡£

element@fixed

N.A. void model()¥á¥½¥Ã¥ÉÆâ¤Ë¤ª¤¤¤Æ¡¢fixed_attribute<>¥¯¥é¥¹¤òÍѤ¤¤ÆÄêµÁ¡£xiso¥¯¥é¥¹Æâ¤Î¤ß¤ÇÄêµÁ¤µ¤ì¤ë¡£¥Ñ¡¼¥¹»þ¤Ë»ØÄꤵ¤ì¤¿ÃͰʳ°¤¬ÆÉ¤ß¹þ¤Þ¤ì¤¿»þ¤Ë¥Ñ¡¼¥¹¥¨¥é¡¼¤È¤¹¤ë¡£

element@substitutionGroup

»ÅÍÍ̤Äê »ÅÍÍ̤Äê
group complexType¤ÈƱÍͤ˥¤¥ó¥¹¥¿¥ó¥·¥ó¥°¤Ç¤­¤ë¥¯¥é¥¹¤Ç¤¢¤ì¤Ð¡¢group¤Ë¤Ê¤ì¤ë¡£¥°¥ë¡¼¥×¤Ï¡¢all¡¢sequence¡¢choice°Ê²¼¤Ç»²¾È²Äǽ¡£ void model()¥á¥½¥Ã¥ÉÆâ¤Ë¤ª¤¤¤Æ¤ÎÍ×ÁÇÄêµÁ¤ÎºÆ¡¢¥¿¥°Ì¾¤ÎƬ¤Ë"&"¤ò¤Ä¤±¤ë¤³¤È¤ÇÄêµÁ¡£
choice¤Ç¤¢¤ì¤Ð¡¢
item("&group̾");
sequence¡¢all¤Ç¤¢¤ì¤Ð¡¢
member("&group̾")
¤È¤¹¤ë¡£
any aka::any¡¢aka::any_array¤È¤·¤Æ¡¢ÀÖ»çÁɤ¬ÃÍ¥¯¥é¥¹¤òÄêµÁ¡£ void model()Æâ¤Ç¡¢any()¤òÍѤ¤¤Æ¡¢·¿¾ðÊó¤òÄêµÁ
"&"¤Ç¤Ï¤¸¤á¤ëŬÅö¤Ê̾Á°¤òÉÕ¤±¤ë¡£(sequence¡¢choice¤È¤âƱÍÍ)
¤¿¤À¤·¡¢namespaceList¡¢processContents¤Ë´Ø¤·¤Æ¤Ï¡¢¥µ¥Ý¡¼¥È̵¤·¡£
anyType aka::any¡¢aka::any_array¤È¤·¤Æ¡¢ÀÖ»çÁɤ¬ÃÍ¥¯¥é¥¹¤òÄêµÁ¡£ void model()Æâ¤Ç¡¢any()¤òÍѤ¤¤Æ¡¢·¿¾ðÊó¤òÄêµÁ
¥¿¥°Ì¾¤ò»ØÄꤹ¤ë¡£(sequence¡¢choice¤È¤âƱÍÍ)
anyAttribute any_attributes¥¯¥é¥¹¤Ç¼õ¤±¤ë void model()Æâ¤Ç¡¢·¿¾ðÊó¤òÄêµÁ
¤¿¤À¤·¡¢namespaceList¡¢processContents¤Ë´Ø¤·¤Æ¤Ï¡¢¥µ¥Ý¡¼¥È̵¤·¡£
attributeGroup °úÍѤµ¤ì¤ë¥¯¥é¥¹¤Ë¤Æ¡¢¥á¥ó¥Ð¤È¤·¤ÆÂ°À­ÃͤòÄêµÁ ¤½¤ì¤¾¤ìattributeGroup¤ò»²¾È¤¹¤ë¥¯¥é¥¹¤Ë¤Æ¡¢¥¿¥°Ì¾¤òÄêµÁ¤¹¤ë¡£
complexContent/restriction ¥¯¥é¥¹/¹½Â¤ÂΤò·Ñ¾µ¡¢¤â¤·¤¯¤Ï¡¢¤½¤ì¤¾¤ì¤Î¥¯¥é¥¹¤Ë¤ª¤¤¤Æ¡¢¥á¥ó¥Ð¤òÄêµÁ ¤½¤ì¤¾¤ì¤Îleaf<>¥¯¥é¥¹¤Ë¤ª¤¤¤Æ¡¢void model()Æâ¤Ç¡¢É¬ÍפȤµ¤ì¤ë¥á¥ó¥Ð¤ËÂФ¹¤ë·¿¾ðÊó¤òÄêµÁ¡£
complexContent/extension ¥¯¥é¥¹/¹½Â¤ÂΤò·Ñ¾µ¡¢¤â¤·¤¯¤Ï¡¢¤½¤ì¤¾¤ì¤Î¥¯¥é¥¹¤Ë¤ª¤¤¤Æ¡¢¥á¥ó¥Ð¤òÄêµÁ ¤½¤ì¤¾¤ì¤Îleaf<>¥¯¥é¥¹¤Ë¤ª¤¤¤Æ¡¢void model()Æâ¤Ç¡¢É¬ÍפȤµ¤ì¤ë¥á¥ó¥Ð¤ËÂФ¹¤ë·¿¾ðÊó¤òÄêµÁ¡£
simpleType
extension/restriction
¥æ¡¼¥¶¤¬Ã±½ã·¿¸¡¾Ú¥í¥¸¥Ã¥¯¤ò½ñ¤­Â­¤¹¤³¤È¤ÇÂбþ²Äǽ¡£ ¥æ¡¼¥¶¤¬aka::simpletype<>¤ò»ÈÍѤ·¡¢Ã±½ã·¿¤òÄêµÁ¤¹¤ë¡£
keybase/keyref Âбþ¤»¤º¡£ Âбþ¤»¤º¡£
element¡¢complexType¤Î@abstract, @block, @final N.A. N.A.


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