Ǧºä£²¡¥¥ê¥Õ¥¡¥ì¥ó¥¹

¥Á¥å¡¼¥Ë¥ó¥°

akaxiso2.0-beta2


Ǧºä£²¤Ï¡¢ÀßÄê¥Õ¥¡¥¤¥ë¡¢¤â¤·¤¯¤Ï¡¢XML¥¹¥­¡¼¥Þʸ½ñÃæ¤ËÀßÄê¹àÌܤòÄɲ乤뤳¤È¤Ë¤è¤ê¡¢¥½¡¼¥¹¤ÎÀ¸À®»þ¤Î¾ÜºÙ¤Ê¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£

XML¥¹¥­¡¼¥Þʸ½ñÃæ¤Ë¤ª¤±¤ë»ØÄê

XML¥¹¥­¡¼¥Þʸ½ñÃæ¤Î<xs:appinfo>Í×Áǰʲ¼¤Ë¡¢Ì¾Á°¶õ´Ö http://akaxiso.sourceforge.jp/osixaka2/beta2 ¡ÊºÇ½ª¥ê¥ê¡¼¥¹¤ÇÊѹ¹¤¢¤ê¡Ë¤Ë°¤¹¤ëÍ×ÁǤò½ñ¤¯¤³¤È¤Ç

  • ̾Á°¶õ´Ö¥×¥ì¥Õ¥£¥Ã¥¯¥¹
  • ¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Î»ØÄê
  • C++¥¯¥é¥¹Ì¾
  • ¼ê¼ÂÁõ¤Ë¤è¤êÄêµÁ¤µ¤ì¤¿Ã±½ã·¿¤ÎÃÍ¥¯¥é¥¹¡¢leaf¥¯¥é¥¹¤Î»ÈÍÑ

¤ÎÀßÄ꤬²Äǽ¤Ç¤¹¡£

¡¦Ì¾Á°¶õ´Ö¤ËÂФ¹¤ë̾Á°¶õ´Ö¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤Î»ØÄê(osx:namespace)

°Ê²¼¤Î·Á¼°¤Ë¤Æ»ØÄê¤ò¹Ô¤¤¤Þ¤¹¡£

<osx:namespace prefix="̾Á°¶õ´Ö¥×¥ì¥Õ¥£¥Ã¥¯¥¹" uri="̾Á°¶õ´ÖURI">

uri°À­¤Ï¾Êά¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤½¤Î¾ì¹ç¡¢xs:schemaÍ×ÁǤΰÀ­¤Ç¤¢¤ë@targetNamespace°À­¤ÎÃͤ¬ÍѤ¤¤é¤ì¤Þ¤¹¡£¤³¤³¤Ç»ØÄꤵ¤ì¤ë̾Á°¶õ´Ö¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤¬C++¥½¡¼¥¹¤Î̾Á°¶õ´Ö̾¤Ë¤Ê¤ê¤Þ¤¹¡£

<osx:namespace>¤Ï¡¢<xs:appinfo>¤Î»ÒÍ×ÁǤȤ·¤Æ½ñ¤¤¤Æ¤¯¤À¤µ¤¤¡£¤Þ¤¿¡¢<xs:annotation>¤Ï¡¢ºÇ½é¤Î<xs:complexType>¡¢¤â¤·¤¯¤Ï¡¢<xs:simpleType>¤ÎÁ°¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤¡£

Îã¡§

my_uri¤Ç»ØÄꤵ¤ì¤ë̾Á°¶õ´Ö¤ËÂФ·¤Æ¡¢Ì¾Á°¶õ´Ö¥×¥ì¥Õ¥£¥Ã¥¯¥¹¡¢my_prefix¤òÂбþÉÕ¤±¤ë¡£

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:annotation>
    <xs:appinfo xmlns:osx="http://akaxiso.sourceforge.jp/osixaka2/beta2">
      <osx:namespace prefix="my_prefix" uri="my_uri"/>
    <xs:appinfo>
  </xs:annotation>

 <!-- xs:complexType¡¢xs:simpleType¤ÎÄêµÁ ¤Ê¤É¤Ê¤É-->

</xs:schema>

¡¦¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë¤Î»ØÄê(osx:include¡¢osx:xiso_include¡¢osx:ximpl_include)

ÃÍ¥¯¥é¥¹¥Õ¥¡¥¤¥ë(osx:include)¡¢leaf¥¯¥é¥¹¤ÎÀë¸À¥Õ¥¡¥¤¥ë(osx:xiso_include)¡¢leaf¥¯¥é¥¹¤Î¼ÂÁõ¥Õ¥¡¥¤¥ë(osx:ximpl_include)¥Õ¥¡¥¤¥ëÃæ¤Ç¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤¿¤á¤Î»ØÄê¤ò¹Ô¤¤¤Þ¤¹¡£
°Ê²¼¤Ë·Á¼°¤ò¼¨¤·¤Þ¤¹¡£

<!-- ÃÍ¥¯¥é¥¹¥Ø¥Ã¥À¤Ø¤Î¥¤¥ó¥¯¥ë¡¼¥É -->
<osx:include system="true|false">¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë̾</osx:include>

<!-- leaf¥¯¥é¥¹¥Ø¥Ã¥À¤Ø¤Î¥¤¥ó¥¯¥ë¡¼¥É -->
<osx:xiso_include system="true|false">¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë̾</osx:xiso_include>

<!-- leaf¥¯¥é¥¹¼ÂÁõ¥Õ¥¡¥¤¥ë¤Ø¤Î¥¤¥ó¥¯¥ë¡¼¥É -->
<osx:ximpl_include system="true|false">¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë̾</osx:ximpl_include>

¤½¤ì¤¾¤ì¡¢@system°À­(xs:boolean·¿)¤ò»ý¤Á¡¢¤³¤Î»ØÄê¤Ë¤è¤ê¡¢#include¤Î·Á¼°¤ò°Ê²¼¤Ë¼¨¤¹¤è¤¦¤ËÁªÂò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

/* @system="true"¤¬»ØÄꤵ¤ì¤¿»þ¡¢ */
#include <¥Õ¥¡¥¤¥ë̾>

/* @system="false"¤¬»ØÄꤵ¤ì¤¿»þ¡¢*/
#include "¥Õ¥¡¥¤¥ë̾"

xs:include¡¢xs:xiso_include¡¢xs:ximpl_include¤Ï¡¢XML¥¹¥­¡¼¥Þʸ½ñ¤Î<xs:appinfo>¤Î»ÒÍ×ÁǤȤ·¤Æ½ñ¤¤¤Æ¤¯¤À¤µ¤¤¡¢¤Þ¤¿¡¢<xs:annotation>¤Ï¡¢ºÇ½é¤Î<xs:complexType>¡¢¤â¤·¤¯¤Ï¡¢<xs:simpleType>¤ÎÁ°¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤¡£

<xs:schema xmlns:osx="http://akaxiso.sourceforge.jp/osixaka2/beta2"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:annotation>
    <xs:appinfo>
      <osx:include name="filename.h" system="true"/>
    </xs:appinfo>
  </xs:annotation>

<!-- xs:complexType¡¢xs:simpleType¤ÎÄêµÁ¤Ê¤É¤Ê¤É¡£ -->

</xs:schema>

¡¦À¸À®¤µ¤ì¤ë¥¯¥é¥¹Ì¾¤Î»ØÄê(osx:classname)

xs:complexType¡¢xs:simpleType¡¢xs:sequence¡¢xs:choice¡¢xs:all¤Î°À­¤È¤·¤Æ»ÈÍѲÄǽ¤Ç¤¹¡£

Ä̾Ǧºä£²¤Ï¡¢XML¥¹¥­¡¼¥Þ¤Î@name°À­¤ÇÍ¿¤¨¤é¤ì¤ë̾Á°¡¢¤â¤·¤¯¤Ï¡¢ÌµÌ¾¥Ñ¡¼¥Æ¥£¥¯¥ë¤ËÍ¿¤¨¤é¤ì¤ë¼«Æ°À¸À®¤µ¤ì¤¿Ì¾Á°¤ò¡¢C++¤Î¥¯¥é¥¹Ì¾¤È¤·¤ÆÍѤ¤¤Þ¤¹¡£¤³¤Î̾Á°¤ò¡¢osx:classname°À­¤Ç¾å½ñ¤­¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

Î㣱¡§

xs:complexType¤Ëosx:classname¤òŬÍѤ¹¤ë¡£XML¥¹¥­¡¼¥Þ·¿¤Î̾Á°¤ò"schema_type"¡¢C++¤Î¥¯¥é¥¹Ì¾¤ò"cpp_type"¤È¤¹¤ë¡£

<xs:complexType name="schema_type" osx:classname="cpp_type" 
  xmlns:osx="http://akaxiso.sourceforge.jp/osixaka2/beta2"/>

Î㣲¡§

¥Í¥¹¥È¤·¤¿ÌµÌ¾¤Îxs:sequence¤Ë¡¢C++¤Î¥¯¥é¥¹Ì¾(cpp_sequence)¤ò»ØÄꤹ¤ë¡£

<xs:complexType name="schema_type" xmlns:osx="http://akaxiso.sourceforge.jp/osixaka2/beta2">
  <xs:choice>
    <xs:sequence osx:classname="cpp_sequence"/>
  </xs:choice>
</xs:complexType>

¡¦¼ê¼ÂÁõ¤Ë¤è¤ëleaf¥¯¥é¥¹¤Î»ÈÍÑ(osx:leaf)

ñ½ã·¿¤Î¥¯¥é¥¹¡¢leaf¥¯¥é¥¹¤òÊÌ¥Õ¥¡¥¤¥ë¤Ë¤Æ¡¢Àë¸À¡¢¼ÂÁõ¤·¤Æ¤ª¤ê¡¢¤³¤ÎÄêµÁ¤ò°úÍѤ¹¤ëºÝ¤ËÍѤ¤¤Þ¤¹¡£<xs:simpleType>¤Î°À­¤È¤·¤Æ»ÈÍѲÄǽ¤Ç¤¹¡£

<xs:simpleType osx:leaf="leaf¥¯¥é¥¹Ì¾"/>

osx:leaf¤ò»ÈÍѤ¹¤ëºÝ¤Ë¤Ï¡¢Ã±½ã·¿¤ÎC++ÃÍ¥¯¥é¥¹Ì¾¤Ï¡¢Ã±½ã·¿¤ÎÃÍ¥¯¥é¥¹¤ËÂФ·¤ÆÇ¦ºä£²¤¬Í¿¤¨¤ë̾Á°¤È°ìÃפ·¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£(Îã¤ò»²¾È)

Îã¡§

¥¹¥­¡¼¥ÞÃæ¤Ëñ½ã·¿(my_simpleType)¤¬¤¢¤ê¡¢¤³¤Î·¿¤ËÂФ·¤Æ¡¢ÂÅÅöÀ­¸¡¾Ú¡¢¤â¤·¤¯¤Ï¡¢ÆÃ¼ì¤ÊÄɲýèÍý¤ò¼ÂÁõ¤·¤¿ÃÍ¥¯¥é¥¹(struct my_simpleType¡¢struct my_simpleType_leaf"¤¬¡¢¤¹¤Ç¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤È¤¹¤ë¡£XML¥¹¥­¡¼¥Þʸ½ñÃæ¤Ç¡¢¤³¤ì¤é¤Î¥¯¥é¥¹¤ò°úÍѤ·¡¢¥½¡¼¥¹À¸À®¤ò¹Ô¤¤¤Þ¤¹¡£Â¾¤Î¥Õ¥¡¥¤¥ë¤Ë¼ÂÁõ¤µ¤ì¤Æ¤¤¤ëñ½ã·¿¤Î¥¯¥é¥¹¡¢leaf¥¯¥é¥¹¤ò#include¤Ë¤è¤êÆÉ¤ß¹þ¤à¤¿¤á¡¢<osx:include>¡¢<osx:xiso_include>¤ÈÊ»¤»¤ÆÍѤ¤¤Þ¤¹¡£

¡¦C++¦¤Î¼ÂÁõ

¥Õ¥¡¥¤¥ë¡§my_simpleType.h----------------------------------------------

typedef long  my_simpleType; // my_simpleType¤Ï¡¢long·¿¤ÎÊÑ¿ô¤Çɽ¤µ¤ì¤ë¡£

------------------------------------------------------------------

¥Õ¥¡¥¤¥ë¡§my_simpleType_xiso.h -------------------------------------------
#include "my_simpleType.h"
struct my_simpleType_leaf : aka::simpleType<my_simpleType, my_simpleType_leaf> {
  static void read_text(void *e, const std::string &entity, aka::entity_complements &ecomp);
  static void _write_text(const void *e, std::ostream &ostm, aka::entity_complements &ecomps);
};

-------------------------------------------------------------------

¥Õ¥¡¥¤¥ë¡§my_simpleType_xiso.cpp------------------------------------------

// my_simpleType_leaf::read_text(), my_simpleType_leaf::write_text()¤Î¼ÂÁõ

-------------------------------------------------------------------


¡¦¥¹¥­¡¼¥Þ¥Õ¥¡¥¤¥ë-------------------------------------------------------
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  xmlns:osx="http://akaxiso.sourceforge.jp/osixaka2/beta2">
  <xs:annotation>
    <xs:appinfo>
      <osx:include>my_simpleType.h</osx:include>
      <osx:xiso_include>my_simpleType_leaf.h</osx:xiso_include>
    </xs:appinfo>
  </xs:annotation>

  <!--Î㣱 ¥È¥Ã¥×¥ì¥Ù¥ëÍ×ÁǤȤ·¤Æ¤Îxs:simpleType -->
  <!-- ¥È¥Ã¥×¥ì¥Ù¥ëÍ×ÁǤÎ̾Á°¤¬¤½¤Î¤Þ¤ÞC++ÃÍ¥¯¥é¥¹Ì¾¤È¤·¤Æ»È¤ï¤ì¤ë¡£ -->
  <xs:simpleType name="my_simpleType" osx:leaf="my_simpleType_leaf">
    <!-- xs:simpleType¤Î¼ÂºÝ¤ÎÄêµÁ¡£Ç¦ºä£²¤Ç¤Ï̵»ë¤µ¤ì¤ë¡£
  </xs:simpleType>


  <!--Î㣲 ¥í¡¼¥«¥ëÍ×ÁǤȤ·¤Æ¤Îxs:simpleType>
  <xs:complexType>
    <xs:sequence>
      <xs:attribute name="sample_attr">
        <!-- ¥í¡¼¥«¥ë¤Êxs:simpleType¤Ï¡¢ÌµÌ¾¤Ç¤¢¤ë¤¿¤á¡¢osx:cleassname¤Ë¤ÆÌ¾Á°¤òÍ¿¤¨¤ë¡£ -->
        <xs:simpleType osx:classname="my_simpleType" osx:leaf="my_simpleType_leaf"/>
      <xs:attribute>
     </xs:sequence>
  </xs:complexType>

</xs:schema>

ÀßÄê¥Õ¥¡¥¤¥ë¤Ë¤è¤ë»ØÄê

ÀßÄê¥Õ¥¡¥¤¥ë¤òÍѤ¤¤Æ¡¢¥Ç¥Õ¥©¥ë¥È¤ÎÀßÄê¤ò½ñ¤­´¹¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£-T¥ª¥×¥·¥ç¥ó¤òÍѤ¤¤Æ¡¢ÀßÄê¥Õ¥¡¥¤¥ë¤Î¥Æ¥ó¥×¥ì¡¼¥È¤òÀ¸À®¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£


$ osixaka2 -T template.xml

À¸À®¤µ¤ì¤ë¥Õ¥¡¥¤¥ë(template.xml)¤ÎÆâÍÆ¤ò°Ê²¼¤Ë¤·¤á¤·¤Þ¤¹¡£

<?xml version="1.0" encoding="Shift_JIS" standalone="yes"?>
<preference xmlns="http://akaxiso.sourceforge.jp/osixaka2/beta2">
  <format>
    <member prefix="" suffix="_"/>
    <array container="std::list" prefix="" suffix="_array"/>
    <choice container="std::list"/>
    <simplecontent valuename="value"/>
    <particle_item prefix="" suffix="_item"/>
  </format>
  <substitutions>
    <substitution original="token_to_substitute" substituted="substituted_token"/>
  </substitutions>
  <escapes>
    <escape to_escape="character_to_escape" escaped="escaped_character"/>
  </escapes>
  <directives/>
</preference>

¡¦¥á¥ó¥Ð¡¢¥¯¥é¥¹Ì¾¤Î¥Õ¥©¡¼¥Þ¥Ã¥È(preference/format°Ê²¼)

ÀßÄê¹àÌÜ Í×ÁÇ ÃͤÎÎã
¥¯¥é¥¹¥á¥ó¥Ð¤Î½ñ¼° member_format @prefix¤Ç¡¢¥á¥ó¥Ð̾¤ÎÀÜÆ¬¸ì¤ò@postfix¤Ç¥á¥ó¥Ð̾¤ÎÀÜÈø¸å¤ò»ØÄê
<member_format prefix="m_"¡¢postfix=""/>
¤È¤¹¤ë¤È¡¢m_member;¤Î¤è¤¦¤Ê¥á¥ó¥Ð̾¤¬»ØÄꤵ¤ì¤ë¡£
ÇÛÎó¤Î¥³¥ó¥Æ¥Ê array_container std::vector¡¢std::list¤Ê¤É
aka:choice¤Î¥³¥ó¥Æ¥Ê choice_container std::vector¡¢std::list¤Ê¤É
aka:simplecontent(xs:simpleContent)¤ÎÃÍ¥á¥ó¥Ð̾ simplecontent @valuename¤Ç»ØÄꤵ¤ì¤¿Ì¾Á°¤¬¡¢aka:simplecontent¤ÎÃÍ¥á¥ó¥Ð̾¤È¤·¤Æ»ÈÍѤµ¤ì¤ë¡£
minOccurs, maxOccurs¤¬»ØÄꤵ¤ì¤¿xs:complexType¤ÎÀ¸À®¤Ë»È¤ï¤ì¤ëÇÛÎóÍ×ÁÇ·¿¤Î̾Á° particle_item @prefix¤Ç¡¢¥á¥ó¥Ð̾¤ÎÀÜÆ¬¸ì¤ò@postfix¤Ç¥á¥ó¥Ð̾¤ÎÀÜÈø¸å¤ò»ØÄê
<member_format prefix="m_"¡¢postfix=""/>
¤È¤¹¤ë¤È¡¢m_member;¤Î¤è¤¦¤Ê¥á¥ó¥Ð̾¤¬»ØÄꤵ¤ì¤ë¡£

¡¦ÃÖ´¹(preference/substitutions¡¢preference/escapes°Ê²¼)

ÀßÄê¹àÌÜ Í×ÁÇ ÃͤÎÎã
¥È¡¼¥¯¥óÃÖ´¹ preference/substitutions/
substitution
ñ¸ì¤ÎÃÖ´¹¡£XML SchemaÆâ¤Ç»ØÄꤵ¤ì¤ë̾Á°¤¬¡¢C++¤ÎͽÌó¸ì¤È½Å¤Ê¤ë¤è¤¦¤Ê¾ì¹ç¤ËÍѤ¤¤ë¡£
<substitution original="class" substituted="_class"/>
¤È¤¹¤ë¤È¡¢class¤¬¡¢_class¤ËÃÖ´¹¤µ¤ì¤ë¡£
¾åµ­ÀßÄê¥Æ¥ó¥×¥ì¡¼¥È¤ÇÀ¸À®¤µ¤ì¤ë¤Î¤Ï¡¢¥À¥ß¡¼¤ÎÍ×ÁÇ¡£
ʸ»ú¤ÎÃÖ´¹(¥¨¥¹¥±¡¼¥×) preference/escapes/escape '-'(¥Ï¥¤¥Õ¥ó)¤Ê¤É¡¢XML Schema¤Ç̾Á°¤È¤·¤Æ»ÈÍѲÄǽ¤Êʸ»ú¤ò¥¨¥¹¥±¡¼¥×¤¹¤ë¡£
<escape to_escape="-" escaped="_"/>
¤È»ØÄꤹ¤ë¤È¡¢"XML-Schema-Name"¤¬¡¢"XML_Schema_Name"¤ÈÊÑ´¹¤µ¤ì¤ë¡£

¡¦¥Ç¥£¥ì¥¯¥Æ¥£¥Ö(preference/directives)

ÀßÄê¹àÌÜ Í×ÁÇ ÃͤÎÎã
̾Á°¶õ´Ö»ØÄê namespace ̾Á°¶õ´Ö¤Î¥×¥ì¥Õ¥£¥Ã¥¯¥¹¤ÈURI¤ÎÂбþÉÕ¤±¤ò¹Ô¤¦¡£

XML¥¹¥­¡¼¥ÞÃæ¤Ë½ñ¤«¤ì¤ëosx:namespace¤ÈƱ½ñ¼°

¥¤¥ó¥¯¥ë¡¼¥É¥Õ¥¡¥¤¥ë»ØÄê include¡¢
xiso_include¡¢
ximpl_include
À¸À®¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Ë#include¤òÁÞÆþ¡£
XML¥¹¥­¡¼¥ÞÃæ¤Ë½ñ¤«¤ì¤ëosx:include¡¢osx:xiso_include¡¢osx:ximpl_include¤ÈƱ½ñ¼°

¡¦ÆâÉô»ØÄê(internal)

¼ÂÁõ¾ÜºÙ¤Î¥Á¥§¥Ã¥¯Ãæ

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

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


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

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

  • XML¥¹¥­¡¼¥ÞÃæ¤ÎÁȹþ¤ß·¿¤Ï¡¢Ç¦ºä£²¤Ë¤è¤ê¡¢C++¥¯¥é¥¹¤Ë¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤Þ¤¹¡£
    ÀÖ»çÁÉ£²¥ê¥Õ¥¡¥ì¥ó¥¹ 5.ÁȤ߹þ¤ß·¿¤ò»²¾È¤¯¤À¤µ¤¤¡£¡£

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

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

  • complexContent°Ê²¼¤Ë¤ª¤±¤ërestriction¤ÎÄêµÁ¤Ë´Ø¤·¤Æ¡¢À©Ìó¥Á¥§¥Ã¥¯¤Ï¡¢¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¥µ¥Ý¡¼¥ÈͽÄê¤â̤Äê¤Ç¤¹¡£

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


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