<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> |