ComposedShader

Element Information

Model

Attributes

Used By

Source

<xs:element name="ComposedShader">
  <xs:annotation>
    <xs:appinfo>
      <xs:attribute name="language" type="shaderLanguageValues"/>
      <xs:element name="metadata" type="SFNode" fixed="inputOutputField" default="X3DMetadataObject"/>
      <xs:element name="parts" type="MFNode" fixed="inputOutputField" default="ShaderPart"/>
      <xs:attribute name="additionalInterface" type="xs:string" default="X3DShaderNode"/>
      <xs:attribute name="additionalInterface" type="xs:string" default="X3DProgrammableShaderObject"/>
      <!-- language, activate, isSelected, isValid inherited from X3DShaderNode -->
      <xs:attribute name="activate" type="SFBool" fixed="inputOnlyField"/>
      <xs:attribute name="isSelected" type="SFBool" fixed="outputOnlyField"/>
      <xs:attribute name="isValid" type="SFBool" fixed="outputOnlyField"/>
      <xs:attribute name="componentName" type="xs:NMTOKEN" fixed="Shaders"/>
      <xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="1"/>ComposedShader can contain field declarations, but no CDATA section of plain-text source code, since programs are composed from child ShaderPart nodes.</xs:appinfo>
    <xs:documentation source="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/shaders.html#ComposedShader"/>
  </xs:annotation>
  <xs:complexType>
    <xs:sequence minOccurs="0">
      <xs:annotation>
        <xs:documentation>implements X3DShaderNode, X3DProgrammableShaderObject (and contains no CDATA source)</xs:documentation>
      </xs:annotation>
      <xs:element ref="field" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="IS" minOccurs="0"/>
      <xs:group ref="ChildContentModelCore" minOccurs="0">
        <xs:annotation>
          <xs:documentation>metadata</xs:documentation>
        </xs:annotation>
      </xs:group>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>parts</xs:documentation>
        </xs:annotation>
        <xs:element ref="ShaderPart"/>
        <xs:element ref="ProtoInstance">
          <xs:annotation>
            <xs:documentation>Appropriately typed substitution node</xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:choice>
    </xs:sequence>
    <xs:attributeGroup ref="DEF_USE"/>
    <xs:attributeGroup ref="globalAttributes"/>
    <xs:attribute name="language" type="SFString"/>
    <xs:attribute name="containerField" type="xs:NMTOKEN" default="shaders">
      <xs:annotation>
        <xs:documentation>parent Appearance node</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <!-- Specially constructed case of <xs:extension base="X3DShaderNode"> -->
    <!-- ComposedShader does not directly derive from X3DNode because of the need to have field children come first, before IS and ChildContentModelCore. -->
  </xs:complexType>
</xs:element>

Sample