フラグメント グラフの XML スキーマ

以下に、MFragmentManager に登録されたフラグメント グラフで使用される XML フォーマットを定義する XML スキーマを示します。このスキーマは、フラグメント グラフを定義するための XML の検証に使用できます。有効な XML は必要ですが、これはフラグメント グラフが Maya のフラグメント シェーダ システムで正しく機能するための十分条件ではありません。

phong1 をルートとするシェーディング ネットワークのフラグメント グラフの XML ファイルの例については、「6.3 phong1 のフラグメント グラフの XML ファイル」を参照してください。

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

 <xs:element name="fragment_graph">
  <xs:complexType>
   <xs:sequence>
    <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1" />
    <xs:element name="keyword" type="KeywordType" minOccurs="0" maxOccurs="unbounded" />
    <xs:element name="fragments" type="FragmentListType" />
    <xs:element name="connections" type="ConnectionListType" />
    <xs:element name="properties" type="PropertiesListType" />
    <xs:element name="values" type="ValuesListType" />
    <xs:element name="outputs" type="OutputsListType" />
   </xs:sequence>
   <xs:attribute name="name" type="xs:string" use="required" />
   <xs:attribute name="ref" type="xs:string" use="required" />
   <xs:attribute name="class" type="xs:string" use="required" fixed="FragmentGraph" />
   <xs:attribute name="version" type="xs:float" use="required" />
   <xs:attribute name="feature_level" type="xs:integer" />
  </xs:complexType>
 </xs:element>

 <xs:complexType name="KeywordType">
  <xs:attribute name="value" type="xs:string" use="required" />
 </xs:complexType>

 <xs:complexType name="FragmentListType">
  <xs:choice minOccurs="0" maxOccurs="unbounded">
   <xs:element name="fragment_ref">
    <xs:complexType>
     <xs:attribute name="name" type="xs:string" use="required" />
     <xs:attribute name="ref" type="xs:string" use="required" />
    </xs:complexType>
   </xs:element>
  </xs:choice>
 </xs:complexType>

 <xs:complexType name="ConnectionListType">
  <xs:choice minOccurs="0" maxOccurs="unbounded">
   <xs:element name="connect">
    <xs:complexType>
     <xs:attribute name="from" type="xs:string" use="required" />
     <xs:attribute name="to" type="xs:string" use="required" />
     <xs:attribute name="name" type="xs:string" />
    </xs:complexType>
   </xs:element>
  </xs:choice>
 </xs:complexType>

 <xs:complexType name="PropertiesListType">
  <xs:choice minOccurs="0" maxOccurs="unbounded">
   <xs:element name="float" type="PropertyType" />
   <xs:element name="float2" type="PropertyType" />
   <xs:element name="float3" type="PropertyType" />
   <xs:element name="float4" type="PropertyType" />
   <xs:element name="target" type="PropertyType" />
   <xs:element name="texture1" type="PropertyType" />
   <xs:element name="texture2" type="PropertyType" />
   <xs:element name="texture3" type="PropertyType" />
   <xs:element name="textureCube" type="PropertyType" />
   <xs:element name="world" type="PropertyType" />
   <xs:element name="bool" type="PropertyType" />
   <xs:element name="int" type="PropertyType" />
   <xs:element name="int2" type="PropertyType" />
   <xs:element name="int3" type="PropertyType" />
   <xs:element name="int4" type="PropertyType" />
   <xs:element name="color" type="PropertyType" />
   <xs:element name="colorAlpha" type="PropertyType" />
   <xs:element name="float4x4" type="PropertyType" />
   <xs:element name="string" type="PropertyType" />
   <xs:element name="stringArray" type="PropertyType" />
   <xs:element name="countedObject" type="PropertyType" />
   <xs:element name="object" type="PropertyType" />
   <xs:element name="struct" type="PropertyType" />
   <xs:element name="camera" type="PropertyType" />
   <xs:element name="effectInstance" type="PropertyType" />
   <xs:element name="effectInstanceArray" type="PropertyType" />
   <xs:element name="sampler" type="PropertyType" />
   <xs:element name="simpleMesh" type="PropertyType" />
   <xs:element name="pointStream" type="PropertyType" />
   <xs:element name="lineStream" type="PropertyType" />
   <xs:element name="triStream" type="PropertyType" />
   <xs:element name="undefined" type="PropertyType" />
   <xs:element name="renderer" type="PropertyType" />
   <xs:element name="enum" type="PropertyType" />
  </xs:choice>
 </xs:complexType>

 <xs:complexType name="PropertyType">
  <xs:attribute name="name" type="xs:string" use="required" />
  <xs:attribute name="ref" type="xs:string" use="required" />
  <xs:attribute name="semantic" type="xs:string" />
  <xs:attribute name="flags" type="xs:string" />
 </xs:complexType>

 <xs:complexType name="ValuesListType">
  <xs:choice minOccurs="0" maxOccurs="unbounded">
   <xs:element name="float" type="ValueType" />
   <xs:element name="float2" type="ValueType" />
   <xs:element name="float3" type="ValueType" />
   <xs:element name="float4" type="ValueType" />
   <xs:element name="color" type="ValueType" />
   <xs:element name="colorAlpha" type="ValueType" />
   <xs:element name="bool" type="ValueType" />
   <xs:element name="int" type="ValueType" />
   <xs:element name="int2" type="ValueType" />
   <xs:element name="int3" type="ValueType" />
   <xs:element name="int4" type="ValueType" />
   <xs:element name="float4x4" type="ValueType" />
   <xs:element name="string" type="ValueType" />
  </xs:choice>
 </xs:complexType>

 <xs:complexType name="ValueType">
  <xs:attribute name="name" type="xs:string" use="required" />
  <xs:attribute name="value" type="xs:string" use="required" />
 </xs:complexType>

 <xs:complexType name="OutputsListType">
  <xs:choice minOccurs="0" maxOccurs="unbounded">
   <xs:element name="float" type="OutputType" />
   <xs:element name="float2" type="OutputType" />
   <xs:element name="float3" type="OutputType" />
   <xs:element name="float4" type="OutputType" />
   <xs:element name="target" type="OutputType" />
   <xs:element name="texture1" type="OutputType" />
   <xs:element name="texture2" type="OutputType" />
   <xs:element name="texture3" type="OutputType" />
   <xs:element name="textureCube" type="OutputType" />
   <xs:element name="world" type="OutputType" />
   <xs:element name="bool" type="OutputType" />
   <xs:element name="int" type="OutputType" />
   <xs:element name="int2" type="OutputType" />
   <xs:element name="int3" type="OutputType" />
   <xs:element name="int4" type="OutputType" />
   <xs:element name="color" type="OutputType" />
   <xs:element name="colorAlpha" type="OutputType" />
   <xs:element name="float4x4" type="OutputType" />
   <xs:element name="string" type="OutputType" />
   <xs:element name="stringArray" type="OutputType" />
   <xs:element name="countedObject" type="OutputType" />
   <xs:element name="object" type="OutputType" />
   <xs:element name="struct" type="OutputType" />
   <xs:element name="camera" type="OutputType" />
   <xs:element name="effectInstance" type="OutputType" />
   <xs:element name="effectInstanceArray" type="OutputType" />
   <xs:element name="sampler" type="OutputType" />
   <xs:element name="simpleMesh" type="OutputType" />
   <xs:element name="pointStream" type="OutputType" />
   <xs:element name="lineStream" type="OutputType" />
   <xs:element name="triStream" type="OutputType" />
   <xs:element name="undefined" type="OutputType" />
   <xs:element name="renderer" type="OutputType" />
   <xs:element name="enum" type="OutputType" />
  </xs:choice>
 </xs:complexType>

 <xs:complexType name="OutputType">
  <xs:attribute name="name" type="xs:string" use="required" />
  <xs:attribute name="ref" type="xs:string" use="required" />
 </xs:complexType>

</xs:schema>