2010-08-10 01:38:37 +08:00
|
|
|
<?xml version="1.0" ?>
|
|
|
|
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
|
|
|
<!-- SCENE Element -->
|
|
|
|
<xsd:element name="scene">
|
|
|
|
<xsd:complexType>
|
|
|
|
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
|
|
|
<xsd:element name="camera" type="camera"/>
|
|
|
|
<xsd:element name="texture" type="object"/>
|
|
|
|
<xsd:element name="bsdf" type="bsdf"/>
|
|
|
|
<xsd:element name="integrator" type="integrator"/>
|
|
|
|
<xsd:element name="luminaire" type="luminaire"/>
|
|
|
|
<xsd:element name="shape" type="shape"/>
|
|
|
|
<xsd:element name="medium" type="medium"/>
|
|
|
|
<xsd:element name="phase" type="phase"/>
|
|
|
|
<xsd:element name="include" type="include"/>
|
|
|
|
|
|
|
|
<!-- Usual attributes -->
|
|
|
|
<xsd:element name="integer" type="integer"/>
|
|
|
|
<xsd:element name="float" type="float"/>
|
|
|
|
<xsd:element name="boolean" type="boolean"/>
|
|
|
|
<xsd:element name="transform" type="transform"/>
|
|
|
|
<xsd:element name="string" type="string"/>
|
|
|
|
<xsd:element name="spectrum" type="string"/>
|
|
|
|
<xsd:element name="rgb" type="string"/>
|
|
|
|
<xsd:element name="blackbody" type="blackbody"/>
|
|
|
|
</xsd:choice>
|
|
|
|
</xsd:complexType>
|
|
|
|
</xsd:element>
|
|
|
|
|
|
|
|
<!-- Generic Object -->
|
|
|
|
<xsd:complexType name="object">
|
|
|
|
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
|
|
|
<!-- Usual attributes -->
|
|
|
|
<xsd:element name="integer" type="integer"/>
|
|
|
|
<xsd:element name="float" type="float"/>
|
|
|
|
<xsd:element name="point" type="point"/>
|
|
|
|
<xsd:element name="vector" type="point"/>
|
|
|
|
<xsd:element name="boolean" type="boolean"/>
|
|
|
|
<xsd:element name="transform" type="transform"/>
|
|
|
|
<xsd:element name="string" type="string"/>
|
|
|
|
<xsd:element name="spectrum" type="string"/>
|
|
|
|
<xsd:element name="rgb" type="string"/>
|
|
|
|
<xsd:element name="blackbody" type="blackbody"/>
|
|
|
|
</xsd:choice>
|
|
|
|
<xsd:attribute name="type" type="xsd:string" use="required"/>
|
|
|
|
<xsd:attribute name="name" type="xsd:string"/>
|
|
|
|
<xsd:attribute name="id" type="xsd:string"/>
|
|
|
|
</xsd:complexType>
|
|
|
|
|
|
|
|
<!-- Object reference -->
|
|
|
|
<xsd:complexType name="reference">
|
|
|
|
<xsd:attribute name="id" type="xsd:string" use="required"/>
|
|
|
|
<xsd:attribute name="name" type="xsd:string"/>
|
|
|
|
</xsd:complexType>
|
|
|
|
|
|
|
|
<!-- CAMERA Element -->
|
|
|
|
<xsd:complexType name="camera">
|
|
|
|
<xsd:complexContent>
|
|
|
|
<xsd:extension base="object">
|
|
|
|
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
|
|
|
<xsd:element name="sampler" type="object"/>
|
|
|
|
<xsd:element name="film" type="film"/>
|
|
|
|
</xsd:choice>
|
|
|
|
</xsd:extension>
|
|
|
|
</xsd:complexContent>
|
|
|
|
</xsd:complexType>
|
|
|
|
|
|
|
|
<!-- INTEGRATOR Element -->
|
|
|
|
<xsd:complexType name="integrator">
|
|
|
|
<xsd:complexContent>
|
|
|
|
<xsd:extension base="object">
|
|
|
|
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
|
|
|
<xsd:element name="integrator" type="integrator"/>
|
|
|
|
<xsd:element name="sampler" type="object"/>
|
|
|
|
</xsd:choice>
|
|
|
|
</xsd:extension>
|
|
|
|
</xsd:complexContent>
|
|
|
|
</xsd:complexType>
|
|
|
|
|
|
|
|
<!-- LUMINAIRE Element -->
|
|
|
|
<xsd:complexType name="luminaire">
|
|
|
|
<xsd:complexContent>
|
|
|
|
<xsd:extension base="object">
|
|
|
|
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
|
|
|
<xsd:element name="texture" type="object"/>
|
|
|
|
</xsd:choice>
|
|
|
|
</xsd:extension>
|
|
|
|
</xsd:complexContent>
|
|
|
|
</xsd:complexType>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- SHAPE Element -->
|
|
|
|
<xsd:complexType name="shape">
|
|
|
|
<xsd:complexContent>
|
|
|
|
<xsd:extension base="object">
|
|
|
|
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
|
|
|
<xsd:element name="bsdf" type="bsdf"/>
|
|
|
|
<xsd:element name="subsurface" type="object"/>
|
|
|
|
<xsd:element name="ref" type="reference"/>
|
|
|
|
<xsd:element name="luminaire" type="object"/>
|
|
|
|
</xsd:choice>
|
|
|
|
</xsd:extension>
|
|
|
|
</xsd:complexContent>
|
|
|
|
</xsd:complexType>
|
|
|
|
|
|
|
|
<!-- VOLUMEREGION Element -->
|
|
|
|
<xsd:complexType name="medium">
|
|
|
|
<xsd:complexContent>
|
|
|
|
<xsd:extension base="object">
|
|
|
|
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
|
|
|
<xsd:element name="shape" type="shape"/>
|
|
|
|
<xsd:element name="volume" type="object"/>
|
|
|
|
<xsd:element name="phase" type="phase"/>
|
|
|
|
<xsd:element name="ref" type="reference"/>
|
|
|
|
</xsd:choice>
|
|
|
|
</xsd:extension>
|
|
|
|
</xsd:complexContent>
|
|
|
|
</xsd:complexType>
|
|
|
|
|
|
|
|
<!-- BSDF Element -->
|
|
|
|
<xsd:complexType name="bsdf">
|
|
|
|
<xsd:complexContent>
|
|
|
|
<xsd:extension base="object">
|
|
|
|
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
|
|
|
<xsd:element name="texture" type="object"/>
|
|
|
|
<xsd:element name="bsdf" type="bsdf"/>
|
|
|
|
<xsd:element name="ref" type="reference"/>
|
|
|
|
</xsd:choice>
|
|
|
|
</xsd:extension>
|
|
|
|
</xsd:complexContent>
|
|
|
|
</xsd:complexType>
|
|
|
|
|
|
|
|
<!-- Phase Element -->
|
|
|
|
<xsd:complexType name="phase">
|
|
|
|
<xsd:complexContent>
|
|
|
|
<xsd:extension base="object"/>
|
|
|
|
</xsd:complexContent>
|
|
|
|
</xsd:complexType>
|
|
|
|
|
|
|
|
<!-- Film Element -->
|
|
|
|
<xsd:complexType name="film">
|
|
|
|
<xsd:complexContent>
|
|
|
|
<xsd:extension base="object">
|
|
|
|
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
|
|
|
<xsd:element name="rfilter" type="object"/>
|
|
|
|
</xsd:choice>
|
|
|
|
</xsd:extension>
|
|
|
|
</xsd:complexContent>
|
|
|
|
</xsd:complexType>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Types and parameters -->
|
|
|
|
<xsd:simpleType name="integerType">
|
|
|
|
<xsd:union>
|
|
|
|
<xsd:simpleType>
|
|
|
|
<xsd:restriction base="xsd:string">
|
|
|
|
<xsd:pattern value="$.+"/>
|
|
|
|
</xsd:restriction>
|
|
|
|
</xsd:simpleType>
|
|
|
|
<xsd:simpleType>
|
|
|
|
<xsd:restriction base="xsd:integer"/>
|
|
|
|
</xsd:simpleType>
|
|
|
|
</xsd:union>
|
|
|
|
</xsd:simpleType>
|
|
|
|
|
|
|
|
<xsd:simpleType name="doubleType">
|
|
|
|
<xsd:union>
|
|
|
|
<xsd:simpleType>
|
|
|
|
<xsd:restriction base="xsd:string">
|
|
|
|
<xsd:pattern value="$.+"/>
|
|
|
|
</xsd:restriction>
|
|
|
|
</xsd:simpleType>
|
|
|
|
<xsd:simpleType>
|
|
|
|
<xsd:restriction base="xsd:double"/>
|
|
|
|
</xsd:simpleType>
|
|
|
|
</xsd:union>
|
|
|
|
</xsd:simpleType>
|
|
|
|
|
|
|
|
<xsd:simpleType name="booleanType">
|
|
|
|
<xsd:union>
|
|
|
|
<xsd:simpleType>
|
|
|
|
<xsd:restriction base="xsd:string">
|
|
|
|
<xsd:pattern value="$.+"/>
|
|
|
|
</xsd:restriction>
|
|
|
|
</xsd:simpleType>
|
|
|
|
<xsd:simpleType>
|
|
|
|
<xsd:restriction base="xsd:string">
|
|
|
|
<xsd:enumeration value="true"/>
|
|
|
|
<xsd:enumeration value="false"/>
|
|
|
|
</xsd:restriction>
|
|
|
|
</xsd:simpleType>
|
|
|
|
</xsd:union>
|
|
|
|
</xsd:simpleType>
|
|
|
|
|
|
|
|
|
|
|
|
<xsd:complexType name="float">
|
|
|
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
|
|
|
<xsd:attribute name="value" type="doubleType" use="required"/>
|
|
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="integer">
|
|
|
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
|
|
|
<xsd:attribute name="value" type="integerType" use="required"/>
|
|
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="boolean">
|
|
|
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
|
|
|
<xsd:attribute name="value" type="booleanType" use="required"/>
|
|
|
|
</xsd:complexType>
|
|
|
|
|
|
|
|
<xsd:complexType name="string">
|
|
|
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
|
|
|
<xsd:attribute name="value" type="xsd:string" use="required"/>
|
|
|
|
</xsd:complexType>
|
|
|
|
|
|
|
|
<xsd:complexType name="include">
|
|
|
|
<xsd:attribute name="filename" type="xsd:string" use="required"/>
|
|
|
|
</xsd:complexType>
|
|
|
|
|
|
|
|
<xsd:complexType name="transform">
|
|
|
|
<xsd:choice minOccurs="0" maxOccurs="unbounded">
|
|
|
|
<xsd:element name="translate" type="translate"/>
|
|
|
|
<xsd:element name="rotate" type="rotate"/>
|
|
|
|
<xsd:element name="lookAt" type="lookAt"/>
|
|
|
|
<xsd:element name="scale" type="scale"/>
|
|
|
|
<xsd:element name="matrix" type="matrix"/>
|
|
|
|
</xsd:choice>
|
2010-08-10 08:34:58 +08:00
|
|
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
2010-08-10 01:38:37 +08:00
|
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="translate">
|
|
|
|
<xsd:attribute name="x" type="doubleType"/>
|
|
|
|
<xsd:attribute name="y" type="doubleType"/>
|
|
|
|
<xsd:attribute name="z" type="doubleType"/>
|
|
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="matrix">
|
|
|
|
<xsd:attribute name="value" type="xsd:string" use="required"/>
|
|
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="scale">
|
|
|
|
<xsd:attribute name="x" type="doubleType"/>
|
|
|
|
<xsd:attribute name="y" type="doubleType"/>
|
|
|
|
<xsd:attribute name="z" type="doubleType"/>
|
|
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="rotate">
|
|
|
|
<xsd:attribute name="x" type="doubleType"/>
|
|
|
|
<xsd:attribute name="y" type="doubleType"/>
|
|
|
|
<xsd:attribute name="z" type="doubleType"/>
|
|
|
|
<xsd:attribute name="angle" type="doubleType" use="required"/>
|
|
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="lookAt">
|
|
|
|
<xsd:attribute name="ox" type="doubleType" use="required"/>
|
|
|
|
<xsd:attribute name="oy" type="doubleType" use="required"/>
|
|
|
|
<xsd:attribute name="oz" type="doubleType" use="required"/>
|
|
|
|
<xsd:attribute name="tx" type="doubleType" use="required"/>
|
|
|
|
<xsd:attribute name="ty" type="doubleType" use="required"/>
|
|
|
|
<xsd:attribute name="tz" type="doubleType" use="required"/>
|
|
|
|
<xsd:attribute name="ux" type="doubleType"/>
|
|
|
|
<xsd:attribute name="uy" type="doubleType"/>
|
|
|
|
<xsd:attribute name="uz" type="doubleType"/>
|
|
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="point">
|
|
|
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
|
|
|
<xsd:attribute name="x" type="doubleType" use="required"/>
|
|
|
|
<xsd:attribute name="y" type="doubleType" use="required"/>
|
|
|
|
<xsd:attribute name="z" type="doubleType" use="required"/>
|
|
|
|
</xsd:complexType>
|
|
|
|
<xsd:complexType name="blackbody">
|
|
|
|
<xsd:attribute name="name" type="xsd:string" use="required"/>
|
|
|
|
<xsd:attribute name="temperature" type="doubleType" use="required"/>
|
|
|
|
</xsd:complexType>
|
|
|
|
</xsd:schema>
|