ÀÖ»çÁÉ£².

Ǧºä£²(¦Á)

akaxiso2.0-beta1


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

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

osixaka2 [-p] [-d] [-o ¥Ç¥£¥ì¥¯¥È¥ê̾] [-D] [-L ÀßÄê¥Õ¥¡¥¤¥ë̾] [-S ÀßÄê¥Õ¥¡¥¤¥ë̾] <XMLʸ½ñ ¥Õ¥¡¥¤¥ë>

¥ª¥×¥·¥ç¥ó

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

-p

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

Îã¤È¤·¤Æ¡¢Ç¦ºä£²¤Ë¤è¤ë¡¢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 deserializer¤ò¹Ô¤¦¤³¤È¤Ç¡¢¥Ó¥ë¥É¤Ç¤­¤Þ¤¹¡£)

ÀßÄê¥Õ¥¡¥¤¥ë

ÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¢°Ê²¼¤Î¹àÌܤòÀßÄê²Äǽ¤Ç¤¹¡£ÀßÄê¥Õ¥¡¥¤¥ë¤Ï¡¢XML¥É¥­¥å¥á¥ó¥È¤Ç¤¹¡£
·Á¼°¤Ë¤Ä¤¤¤Æ¤Ï¡¢XML Schema¥É¥­¥å¥á¥ó¥È¡¢akaxiso2/osixaka2/preference.xsd ¤ò¤´»²¾È¤¯¤À¤µ¤¤¡£

ÀßÄê¹àÌÜ Í×ÁÇ ÃͤÎÎã
aka:choice¤Î¥³¥ó¥Æ¥Ê choice_container std::vector¡¢std::list¤Ê¤É
ÇÛÎó¤Î¥³¥ó¥Æ¥Ê array_container std::vector¡¢std::list¤Ê¤É
¥¯¥é¥¹¥á¥ó¥Ð¤Î½ñ¼° member_format @prefix¤Ç¡¢¥á¥ó¥Ð̾¤ÎÀÜÆ¬¸ì¤ò@postfix¤Ç¥á¥ó¥Ð̾¤ÎÀÜÈø¸å¤ò»ØÄê
<member_format prefix="m_"¡¢postfix=""/>
¤È¤¹¤ë¤È¡¢m_member;¤Î¤è¤¦¤Ê¥á¥ó¥Ð̾¤¬»ØÄꤵ¤ì¤ë¡£
ÇÛÎó¤Î·¿Ì¾ array_format @prefix¤Ç¡¢ÇÛÎó¤Îtypedef̾¤ÎÀÜÆ¬¸ì¤ò@postfix¤ÇÀÜÈø¸ì¤ò»ØÄê
<array_format prefix="array_of_" postfix="s"/>
¤È¤¹¤ë¤È¡¢
typedef std::vector<person> array_of_persons;
¤È¤¤¤¦¤Õ¤¦¤ËÇÛÎó¤Î·¿Ì¾¤¬À¸À®¤µ¤ì¤ë¡£
ñ¸ì¤ÎÃÖ´¹ substitution ñ¸ì¤ÎÃÖ´¹¡£XML SchemaÆâ¤Ç»ØÄꤵ¤ì¤ë̾Á°¤¬¡¢C++¤ÎͽÌó¸ì¤È½Å¤Ê¤ë¤è¤¦¤Ê¾ì¹ç¤ËÍѤ¤¤ë¡£
<substitution original="class" substituted="_class"/>
¤È¤¹¤ë¤È¡¢class¤¬¡¢_class¤ËÃÖ´¹¤µ¤ì¤ë¡£
ʸ»ú¤ÎÃÖ´¹(¥¨¥¹¥±¡¼¥×) escape '-'(¥Ï¥¤¥Õ¥ó)¤Ê¤É¡¢XML Schema¤Ç̾Á°¤È¤·¤Æ»ÈÍѲÄǽ¤Êʸ»ú¤ò¥¨¥¹¥±¡¼¥×¤¹¤ë¡£
<escape to_escape="-" escaped="_"/>
¤È»ØÄꤹ¤ë¤È¡¢"XML-Schema-Name"¤¬¡¢"XML_Schema_Name"¤ÈÊÑ´¹¤µ¤ì¤ë¡£
̾Á°¶õ´Ö namespace ̾Á°¶õ´Ö¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤ÈURI¤ÎÂбþÉÕ¤±¤ò¹Ô¤¦¡£
<namespace prefix="akaxiso" uri="http://akaxiso.sourceforgte.jp"/>
¤Ê¤É¤È¤·¤ÆÍѤ¤¤ë¡£
Ãͤò»ý¤¿¤Ê¤¤·¿ nill_type Ãͤò»ý¤¿¤Ê¤¤·¿¤ò»ØÄê
C++ÁȤ߹þ¤ß·¿¤Î¥Þ¥Ã¥Ô¥ó¥°»ØÄê cpp_builtins <type>Í×ÁǤˤè¤ê¡¢XML Schema¤Îñ½ã·¿¤ò¡¢C++ÁȤ߹þ¤ß·¿¤ËÂбþÉÕ¤±¤ë¡£
XML Schemañ½ã·¿¤Î¥Þ¥Ã¥Ô¥ó¥°»ØÄê schema_builtins <type>Í×ÁǤˤè¤ê¡¢XML Schema¤Îñ½ã·¿¤ò¡¢C++¥¯¥é¥¹¤ËÂбþÉÕ¤±¤ë¡£
ñ½ã·¿¤«¤éC++¥¯¥é¥¹¤Ø¤Î¥Þ¥Ã¥Ô¥ó¥°»ØÄê type type@name¤Ë¤Æ¡¢XML Schema¥É¥­¥å¥á¥ó¥ÈÃæ¤Î·¿¤ò»ØÄê¡£
type/cppÍ×ÁǤÇÂбþ¤¹¤ëC++¥¯¥é¥¹Ì¾¤ò»ØÄê
type/leafÍ×ÁǤÇÂбþ¤¹¤ëleaf¥¯¥é¥¹Ì¾¤ò»ØÄê
type/arrayÍ×ÁǤǡ¢Âбþ¤¹¤ëÇÛÎ󥯥饹¤ò»ØÄê¡£
type/array_leafÍ×ÁǤÇÂбþ¤¹¤ëÇÛÎ󥯥饹¤Îleaf¥¯¥é¥¹Ì¾¤ò»ØÄê¡£
type/leafÍ×ÁǤ¬¾Êά¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢xiso::leaf<C++¥¯¥é¥¹Ì¾>¤¬ÍѤ¤¤é¤ì¤ë¡£
type/array_leafÍ×ÁǤ¬¾Êά¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢leaf¥¯¥é¥¹Ì¾¤È¤·¤Æ¡¢<ÇÛÎ󥯥饹̾>_leaf¤¬ÍѤ¤¤é¤ì¤ë¡£

ÀßÄê¥Õ¥¡¥¤¥ë¤ÎºîÀ®¤È»ÈÍÑ

-S¡¢-L¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤ÎºîÀ®¤È»ÈÍѤò¹Ô¤¤¤Þ¤¹¡£

ÀßÄê¥Õ¥¡¥¤¥ë¤ÎºîÀ®
$ osixaka2 -S preference.xml

ÀßÄê¥Õ¥¡¥¤¥ë¤Î»ÈÍÑ
$ osixaka2 -L preference.xml <XML Schema¥É¥­¥å¥á¥ó¥È¥Õ¥¡¥¤¥ë̾>

akaxiso2/osixaka2/osixaka1.xml ¥Õ¥¡¥¤¥ë¤Ï¡¢µìǦºä¤È¸ß´¹¤Ê¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¤¿¤á¤ÎÀßÄê¥Õ¥¡¥¤¥ë¤Ç¤¹¡£

$ osixaka2 -L osixaka1.xml <XML Schema¥É¥­¥å¥á¥ó¥È¥Õ¥¡¥¤¥ë̾>

¤È¤¹¤ë¤³¤È¤Ç¡¢(µì)Ǧºä¤È¸ß´¹¤Ê¥Õ¥¡¥¤¥ë¤òÀ¸À®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

°Ê²¼¡¢¥Ç¥Õ¥©¥ë¥È¤Ç»ÈÍѤµ¤ì¤ëÀßÄê¥Õ¥¡¥¤¥ë¤ò¼¨¤·¤Þ¤¹¡£

<?xml version="1.0" encoding="Shift_JIS" standalone="yes"?>
<osx:preference xmlns:osx="http://akaxiso.sourceforge.jp/osixaka/preference">
  <choice_container type="std::list"/>
  <array_container type="std::list"/>
  <member_format prefix="" postfix="_"/>
  <array_format prefix="" postfix="_array"/>
  <substitution original="class" substituted="_class"/>
  <substitution original="public" substituted="_public"/>
  <substitution original="protected" substituted="_protected"/>
  <substitution original="private" substituted="_private"/>
  <substitution original="union" substituted="_union"/>
  <substitution original="enum" substituted="_enum"/>
  <substitution original="namespace" substituted="_namespace"/>
  <substitution original="using" substituted="_using"/>
  <escape to_escape="-" escaped="_"/>
  <namespace prefix="wsdl" uri="http://schemas.xmlsoap.org/wsdl/"/>
  <nill_type>aka:nill</nill_type>
  <cpp_builtins>
    <type name="xs:byte">
      <cpp>char</cpp>
      <array>aka:char_array</array>
    </type>
    <type name="xs:unsignedByte">
      <cpp>unsigned char</cpp>
      <array>aka:uchar_array</array>
    </type>
    <type name="xs:short">
      <cpp>short</cpp>
      <array>aka:short_array</array>
    </type>
    <type name="xs:unsignedShort">
      <cpp>short</cpp>
      <array>aka:short_array</array>
    </type>
    <type name="xs:int">
      <cpp>long</cpp>
      <array>aka:long_array</array>
    </type>
    <type name="xs:unsignedInt">
      <cpp>ULONGLONG</cpp>
      <array>aka:longlong_array</array>
    </type>
    <type name="xs:long">
      <cpp>LONGLONG</cpp>
      <array>aka:longlong_array</array>
    </type>
    <type name="xs:unsignedLong">
      <cpp>ULONGLONG</cpp>
      <array>aka:ulonglong_array</array>
    </type>
    <type name="xs:integer">
      <cpp>long</cpp>
      <array>aka:long_array</array>
    </type>
    <type name="xs:boolean">
      <cpp>bool</cpp>
      <array>aka:bool_array</array>
    </type>
    <type name="xs:float">
      <cpp>float</cpp>
      <array>aka:float_array</array>
    </type>
    <type name="xs:double">
      <cpp>double</cpp>
      <array>aka:double_array</array>
    </type>
    <type name="xs:string">
      <cpp>std:string</cpp>
      <array>aka:string_array</array>
    </type>
    <type name="xs:anySimpleType">
      <cpp>std:string</cpp>
      <array>aka:string_array</array>
    </type>
    <type name="aka:nill">
      <cpp>aka:nill</cpp>
      <array>aka:nill_array</array>
    </type>
  </cpp_builtins>
  <schema_builtins>
    <type name="xs:normalizedString">
      <cpp>std:string</cpp>
      <array>xs:normalizedString_array</array>
    </type>
    <type name="xs:token">
      <cpp>std:string</cpp>
      <array>xs:token_array</array>
    </type>
    <type name="xs:base64Binary">
      <cpp>std:string</cpp>
      <array>xs:base64Binary_array</array>
    </type>
    <type name="xs:hexBinary">
      <cpp>std:string</cpp>
      <array>xs:hexBinary_array</array>
    </type>
    <type name="xs:positiveInteger">
      <cpp>long</cpp>
      <array>xs:positiveInteger_array</array>
    </type>
    <type name="xs:negativeInteger">
      <cpp>long</cpp>
      <array>xs:negativeInteger_array</array>
    </type>
    <type name="xs:nonNegativeInteger">
      <cpp>long</cpp>
      <array>xs:nonNegativeInteger_array</array>
    </type>
    <type name="xs:nonPositiveInteger">
      <cpp>long</cpp>
      <array>xs:nonPositiveInteger_array</array>
    </type>
    <type name="xs:decimal">
      <cpp>long</cpp>
      <array>xs:decimal_array</array>
    </type>
    <type name="xs:time">
      <cpp>std:string</cpp>
      <array>xs:time_array</array>
    </type>
    <type name="xs:dateTime">
      <cpp>std:string</cpp>
      <array>xs:dateTime_array</array>
    </type>
    <type name="xs:duration">
      <cpp>std:string</cpp>
      <array>xs:duration_array</array>
    </type>
    <type name="xs:date">
      <cpp>std:string</cpp>
      <array>xs:date_array</array>
    </type>
    <type name="xs:gMonth">
      <cpp>std:string</cpp>
      <array>xs:gMonth_array</array>
    </type>
    <type name="xs:gYear">
      <cpp>std:string</cpp>
      <array>xs:gYear_array</array>
    </type>
    <type name="xs:gYearMonth">
      <cpp>std:string</cpp>
      <array>xs:gYearMonth_array</array>
    </type>
    <type name="xs:gDay">
      <cpp>std:string</cpp>
      <array>xs:gDay_array</array>
    </type>
    <type name="xs:gMonthDay">
      <cpp>std:string</cpp>
      <array>xs:gMonthDay_array</array>
    </type>
    <type name="xs:Name">
      <cpp>std:string</cpp>
      <array>xs:Name</array>
    </type>
    <type name="xs:QName">
      <cpp>aka:qname</cpp>
      <leaf>xs:QNameLeaf</leaf>
      <array>xs:QName_array</array>
    </type>
    <type name="xs:NCName">
      <cpp>std:string</cpp>
      <array>xs:NCName_array</array>
    </type>
    <type name="xs:anyURI">
      <cpp>std:string</cpp>
      <array>xs:anyURI_array</array>
    </type>
    <type name="xs:language">
      <cpp>std:string</cpp>
      <array>xs:language_array</array>
    </type>
    <type name="xs:ID">
      <cpp>std:string</cpp>
      <array>xs:ID_array</array>
    </type>
    <type name="xs:IDREF">
      <cpp>std:string</cpp>
      <array>xs:IDREF_array</array>
    </type>
    <type name="xs:IDREFS">
      <cpp>std:string</cpp>
      <array>xs:IDREFS_array</array>
    </type>
    <type name="xs:ENTITY">
      <cpp>std:string</cpp>
      <array>xs:ENTITY_array</array>
    </type>
    <type name="xs:ENTITIES">
      <cpp>std:string</cpp>
      <array>xs:ENTITIES_array</array>
    </type>
    <type name="xs:NOTATION">
      <cpp>std:string</cpp>
      <array>xs:NOTATION_array</array>
    </type>
    <type name="xs:NMTOKEN">
      <cpp>std:string</cpp>
      <array>xs:NMTOKEN_array</array>
    </type>
    <type name="xs:NMTOKENS">
      <cpp>std:string</cpp>
      <array>xs:NMTOKENS_array</array>
    </type>
  </schema_builtins>
</osx:preference>

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

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

  • 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°À­¤Ï¡¢½èÍýÂоݤΥ¹¥­¡¼¥Þ¥Õ¥¡¥¤¥ë¤«¤é¤ÎÁêÂХѥ¹¤Çµ­½Ò¤µ¤ì¤ë¤â¤Î¤È¤·¤Þ¤¹¡£


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