website/public/roblox.xsd

374 lines
14 KiB
XML

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.0">
<xs:import namespace="http://www.w3.org/2005/05/xmlmime" schemaLocation="http://www.w3.org/2005/05/xmlmime"/>
<xs:annotation>
<xs:documentation>***************************** Version 5.1 types ***********************************************</xs:documentation>
</xs:annotation>
<xs:attributeGroup name="Referent">
<xs:attribute name="referent" type="xs:ID"/>
</xs:attributeGroup>
<xs:attributeGroup name="Property">
<xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
</xs:attributeGroup>
<xs:group name="PropertyGroup">
<xs:choice>
<xs:element name="string" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="Property"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="ProtectedString" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attributeGroup ref="Property"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="int" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:int">
<xs:attributeGroup ref="Property"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="float" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attributeGroup ref="Property"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="double" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:double">
<xs:attributeGroup ref="Property"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="bool" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:boolean">
<xs:attributeGroup ref="Property"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="token" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:NMTOKEN">
<xs:attributeGroup ref="Property"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="tokens" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:NMTOKENS">
<xs:attributeGroup ref="Property"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="enum" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:unsignedShort">
<xs:attributeGroup ref="Property"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Ref">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:IDREF">
<xs:attributeGroup ref="Property"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Refs">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:IDREFS">
<xs:attributeGroup ref="Property"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Vector3" nillable="true">
<xs:complexType>
<xs:sequence>
<xs:element name="X" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attributeGroup ref="Referent"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Y" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attributeGroup ref="Referent"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Z" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attributeGroup ref="Referent"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="Property"/>
</xs:complexType>
</xs:element>
<xs:element name="CoordinateFrame" nillable="true">
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:element name="X" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attributeGroup ref="Referent"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Y" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attributeGroup ref="Referent"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Z" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attributeGroup ref="Referent"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="R00" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attributeGroup ref="Referent"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="R01" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attributeGroup ref="Referent"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="R02" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attributeGroup ref="Referent"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="R10" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attributeGroup ref="Referent"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="R11" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attributeGroup ref="Referent"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="R12" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attributeGroup ref="Referent"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="R20" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attributeGroup ref="Referent"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="R21" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attributeGroup ref="Referent"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="R22" nillable="true">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attributeGroup ref="Referent"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="Property"/>
</xs:complexType>
</xs:element>
<xs:element name="Color3" nillable="true">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0">
<xs:element name="R">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attributeGroup ref="Referent"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="G">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attributeGroup ref="Referent"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="B">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:float">
<xs:attributeGroup ref="Referent"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="Property"/>
</xs:complexType>
</xs:element>
<xs:element name="Complex" nillable="true">
<xs:complexType>
<xs:complexContent>
<xs:extension base="PropertyContainer"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Content" nillable="true">
<xs:complexType mixed="true">
<xs:choice minOccurs="0">
<xs:element name="url" type="xs:string"/>
<xs:element name="hash" type="xs:NMTOKEN"/>
<xs:element name="null"/>
<xs:element name="binary">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:base64Binary">
<xs:attribute ref="xmime:contentType"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:choice>
<xs:attribute name="mimeType" type="xs:string"/>
<xs:attributeGroup ref="Property"/>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:group>
<xs:complexType name="PropertyContainer">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="PropertyGroup"/>
</xs:sequence>
<xs:attributeGroup ref="Property"/>
</xs:complexType>
<xs:complexType name="ItemType">
<xs:sequence>
<xs:element name="Properties">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="PropertyGroup"/>
<xs:element name="Feature" type="PropertyContainer"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element ref="Item" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="class" type="xs:NMTOKEN" use="required"/>
<xs:attributeGroup ref="Referent"/>
</xs:complexType>
<xs:element name="Item">
<xs:complexType>
<xs:complexContent>
<xs:extension base="ItemType"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation>***************************** root ***********************************************</xs:documentation>
</xs:annotation>
<xs:element name="roblox">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Item"/>
<xs:element name="External" type="xs:ID">
<xs:annotation>
<xs:documentation>Entity that is referenced within this document but whose data aren't being saved. The XML reader will attempt to bind this entity with a pre-existing object in the target.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DeleteItem" type="xs:ID">
<xs:annotation>
<xs:documentation>An item that should be deleted from the target. (Used for undo/redo)</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
<xs:attribute name="version" type="xs:int" use="optional" default="3"/>
</xs:complexType>
</xs:element>
</xs:schema>