<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="layout"> <xs:complexType> <xs:sequence> <xs:element name="properties"> <xs:complexType> <xs:sequence> <xs:element type="units" name="unit"/> <xs:element type="xs:string" name="title"/> <xs:element type="xs:string" name="description"/> <xs:element name="control"> <xs:complexType> <xs:attribute type="xs:boolean" name="warningSuperposition"/> <xs:attribute type="xs:boolean" name="warningOutOfBound"/> <xs:attribute type="xs:boolean" name="stickyEdges"/> <xs:attribute type="xs:boolean" name="followGrainline"/> <xs:attribute type="xs:float" name="piecesGap"/> </xs:complexType> </xs:element> <xs:element name="tiles"> <xs:complexType> <xs:sequence> <xs:element name="size"> <xs:complexType> <xs:attribute type="xs:float" name="width" use="required"/> <xs:attribute type="xs:float" name="length" use="required"/> </xs:complexType> </xs:element> <xs:element name="margin"> <xs:complexType> <xs:attribute type="xs:float" name="top"/> <xs:attribute type="xs:float" name="right"/> <xs:attribute type="xs:float" name="bottom"/> <xs:attribute type="xs:float" name="left"/> <xs:attribute type="xs:boolean" name="ignoreMargins"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute type="xs:boolean" name="visible"/> <xs:attribute type="xs:string" name="matchingMarks"/> <xs:attribute type="xs:boolean" name="printScheme"/> <xs:attribute type="xs:boolean" name="tileNumber"/> </xs:complexType> </xs:element> <xs:element name="scale"> <xs:complexType> <xs:attribute type="LayoutScale" name="xScale"/> <xs:attribute type="LayoutScale" name="yScale"/> </xs:complexType> </xs:element> <xs:element name="watermark"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute type="xs:boolean" name="showPreview" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="unplacedPieces"> <xs:complexType> <xs:sequence> <xs:element name="piece" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element type="PathNotEmpty" name="seamLine"/> <xs:element name="seamAllowance"> <xs:complexType> <xs:simpleContent> <xs:extension base="PathOrEmpty"> <xs:attribute type="xs:boolean" name="enabled" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="grainline"> <xs:complexType> <xs:simpleContent> <xs:extension base="PathOrEmpty"> <xs:attribute type="xs:boolean" name="enabled" use="optional"/> <xs:attribute type="xs:float" name="angle" use="optional"/> <xs:attribute type="ArrowDirection" name="arrowDirection" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="notches"> <xs:complexType> <xs:sequence> <xs:element name="notch" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attribute type="xs:boolean" name="builtIn" use="optional"/> <xs:attribute type="NotchType" name="type" use="optional"/> <xs:attribute type="LinePath" name="baseLine" use="optional"/> <xs:attribute type="LinesPath" name="path" use="optional"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="internalPaths"> <xs:complexType> <xs:sequence> <xs:element name="internalPath" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="PathNotEmpty"> <xs:attribute type="xs:boolean" name="cut" use="optional"/> <xs:attribute type="CurvePenStyle" name="penStyle" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="markers"> <xs:complexType mixed="true"> <xs:sequence> <xs:element name="marker" maxOccurs="unbounded" minOccurs="0"> <xs:complexType> <xs:simpleContent> <xs:extension base="MarkerShapePath"> <xs:attribute type="Transformation" name="transform" use="required"/> <xs:attribute type="MarkerType" name="type" use="required"/> <xs:attribute type="PointPath" name="center" use="required"/> <xs:attribute type="RectPath" name="box" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="labels"> <xs:complexType> <xs:sequence> <xs:element name="pieceLabel" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="lines"> <xs:complexType> <xs:sequence> <xs:element name="line" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute type="xs:boolean" name="bold" use="optional"/> <xs:attribute type="xs:boolean" name="italic" use="optional"/> <xs:attribute type="xs:unsignedInt" name="alignment" use="optional"/> <xs:attribute type="xs:unsignedInt" name="fontSize" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute type="xs:string" name="font"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute type="xs:string" name="shape" use="required"/> </xs:complexType> </xs:element> <xs:element name="patternLabel" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="lines"> <xs:complexType> <xs:sequence> <xs:element name="line" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute type="xs:boolean" name="bold" use="optional"/> <xs:attribute type="xs:boolean" name="italic" use="optional"/> <xs:attribute type="xs:unsignedInt" name="alignment" use="optional"/> <xs:attribute type="xs:unsignedInt" name="fontSize" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute type="xs:string" name="font"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute type="xs:string" name="shape" use="required"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="id" type="uuid" use="required"/> <xs:attribute type="xs:string" name="name"/> <xs:attribute type="xs:boolean" name="mirrored"/> <xs:attribute type="Transformation" name="transform"/> <xs:attribute type="xs:string" name="gradationLabel"/> <xs:attribute type="xs:unsignedInt" name="copyNumber"/> <xs:attribute type="xs:boolean" name="showSeamline"/> <xs:attribute type="xs:float" name="xScale"/> <xs:attribute type="xs:float" name="yScale"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="sheets"> <xs:complexType> <xs:sequence> <xs:element name="sheet" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element type="xs:string" name="name"/> <xs:element name="size"> <xs:complexType> <xs:attribute type="xs:float" name="width" use="required"/> <xs:attribute type="xs:float" name="length" use="required"/> </xs:complexType> </xs:element> <xs:element name="margin"> <xs:complexType> <xs:attribute type="xs:float" name="top"/> <xs:attribute type="xs:float" name="right"/> <xs:attribute type="xs:float" name="bottom"/> <xs:attribute type="xs:float" name="left"/> <xs:attribute type="xs:boolean" name="ignoreMargins"/> </xs:complexType> </xs:element> <xs:element name="pieces"> <xs:complexType> <xs:sequence> <xs:element name="piece" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element type="PathNotEmpty" name="seamLine"/> <xs:element name="seamAllowance"> <xs:complexType> <xs:simpleContent> <xs:extension base="PathOrEmpty"> <xs:attribute type="xs:boolean" name="enabled" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="grainline"> <xs:complexType> <xs:simpleContent> <xs:extension base="PathOrEmpty"> <xs:attribute type="xs:boolean" name="enabled" use="optional"/> <xs:attribute type="xs:float" name="angle" use="optional"/> <xs:attribute type="ArrowDirection" name="arrowDirection" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="notches"> <xs:complexType> <xs:sequence> <xs:element name="notch" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attribute type="xs:boolean" name="builtIn" use="optional"/> <xs:attribute type="NotchType" name="type" use="optional"/> <xs:attribute type="LinePath" name="baseLine" use="optional"/> <xs:attribute type="LinesPath" name="path" use="optional"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="internalPaths"> <xs:complexType> <xs:sequence> <xs:element name="internalPath" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="PathNotEmpty"> <xs:attribute type="xs:boolean" name="cut" use="optional"/> <xs:attribute type="CurvePenStyle" name="penStyle" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="markers"> <xs:complexType mixed="true"> <xs:sequence> <xs:element name="marker" maxOccurs="unbounded" minOccurs="0"> <xs:complexType> <xs:simpleContent> <xs:extension base="MarkerShapePath"> <xs:attribute type="Transformation" name="transform" use="required"/> <xs:attribute type="MarkerType" name="type" use="required"/> <xs:attribute type="PointPath" name="center" use="required"/> <xs:attribute type="RectPath" name="box" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="labels"> <xs:complexType> <xs:sequence> <xs:element name="pieceLabel" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="lines"> <xs:complexType> <xs:sequence> <xs:element name="line" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute type="xs:boolean" name="bold" use="optional"/> <xs:attribute type="xs:boolean" name="italic" use="optional"/> <xs:attribute type="AlignmentType" name="alignment" use="optional"/> <xs:attribute type="xs:unsignedInt" name="fontSize" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute type="xs:string" name="font"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute type="PathNotEmpty" name="shape" use="required"/> </xs:complexType> </xs:element> <xs:element name="patternLabel" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="lines"> <xs:complexType> <xs:sequence> <xs:element name="line" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute type="xs:boolean" name="bold" use="optional"/> <xs:attribute type="xs:boolean" name="italic" use="optional"/> <xs:attribute type="AlignmentType" name="alignment" use="optional"/> <xs:attribute type="xs:unsignedInt" name="fontSize" use="optional"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute type="xs:string" name="font"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute type="PathNotEmpty" name="shape" use="required"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="id" type="uuid" use="required"/> <xs:attribute type="xs:string" name="name"/> <xs:attribute type="xs:boolean" name="mirrored"/> <xs:attribute type="Transformation" name="transform"/> <xs:attribute type="xs:string" name="gradationLabel"/> <xs:attribute type="xs:unsignedInt" name="copyNumber"/> <xs:attribute type="xs:boolean" name="showSeamline"/> <xs:attribute type="xs:float" name="xScale"/> <xs:attribute type="xs:float" name="yScale"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute type="GrainlineType" name="grainlineType"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute type="formatVersion" name="version" use="required"/> </xs:complexType> </xs:element> <!--Types--> <xs:simpleType name="formatVersion"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="units"> <xs:restriction base="xs:string"> <xs:enumeration value="mm"/> <xs:enumeration value="cm"/> <xs:enumeration value="inch"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="uuid"> <xs:restriction base="xs:string"> <xs:pattern value="|\{[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}\}"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="ArrowDirection"> <xs:restriction base="xs:string"> <xs:enumeration value="atFront"/> <xs:enumeration value="atRear"/> <xs:enumeration value="atBoth"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="NotchType"> <xs:restriction base="xs:unsignedInt"> <xs:enumeration value="0"/> <!--OneLine--> <xs:enumeration value="1"/> <!--TwoLines--> <xs:enumeration value="2"/> <!--ThreeLines--> <xs:enumeration value="3"/> <!--TMark--> <xs:enumeration value="4"/> <!--VMark--> <xs:enumeration value="5"/> <!--VMark2--> <xs:enumeration value="6"/> <!--UMark--> <xs:enumeration value="7"/> <!--BoxMark--> </xs:restriction> </xs:simpleType> <xs:simpleType name="CurvePenStyle"> <xs:restriction base="xs:string"> <xs:enumeration value="hair"/> <xs:enumeration value="dashLine"/> <xs:enumeration value="dotLine"/> <xs:enumeration value="dashDotLine"/> <xs:enumeration value="dashDotDotLine"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="MarkerType"> <xs:restriction base="xs:unsignedInt"> <xs:enumeration value="0"/><!--Segment--> <xs:enumeration value="1"/><!--Rectangle--> <xs:enumeration value="2"/><!--Cross--> <xs:enumeration value="3"/><!--Tshaped--> <xs:enumeration value="4"/><!--Doubletree--> <xs:enumeration value="5"/><!--Corner--> <xs:enumeration value="6"/><!--Triangle--> <xs:enumeration value="7"/><!--Hshaped--> <xs:enumeration value="8"/><!--Button--> <xs:enumeration value="9"/><!--Circle--> </xs:restriction> </xs:simpleType> <xs:simpleType name="AlignmentType"> <xs:restriction base="xs:unsignedInt"> <xs:enumeration value="0"/><!--default (no aligns)--> <xs:enumeration value="1"/><!--aligns with the left edge--> <xs:enumeration value="2"/><!--aligns with the right edge--> <xs:enumeration value="4"/><!--Centers horizontally in the available space--> </xs:restriction> </xs:simpleType> <xs:simpleType name="Transformation"> <xs:restriction base="xs:string"> <xs:pattern value="([-+]?\d+\.?\d*([eE][-+]?\d+)?;){8,}[-+]?\d+\.?\d*([eE][-+]?\d+)?"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="PathNotEmpty"> <xs:restriction base="xs:string"> <xs:pattern value="([-+]?\d+\.?\d*([eE][-+]?\d+)?,[-+]?\d+\.?\d*([eE][-+]?\d+)?\s){0,}[-+]?\d+\.?\d*([eE][-+]?\d+)?,[-+]?\d+\.?\d*([eE][-+]?\d+)?"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="PathOrEmpty"> <xs:restriction base="xs:string"> <xs:pattern value="|([-+]?\d+\.?\d*([eE][-+]?\d+)?,[-+]?\d+\.?\d*([eE][-+]?\d+)?\s){0,}[-+]?\d+\.?\d*([eE][-+]?\d+)?,[-+]?\d+\.?\d*([eE][-+]?\d+)?"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="LinePath"> <xs:restriction base="xs:string"> <xs:pattern value="[-+]?\d+\.?\d*([eE][-+]?\d+)?,[-+]?\d+\.?\d*([eE][-+]?\d+)?;[-+]?\d+\.?\d*([eE][-+]?\d+)?,[-+]?\d+\.?\d*([eE][-+]?\d+)?"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="LinesPath"> <xs:restriction base="xs:string"> <xs:pattern value="([-+]?\d+\.?\d*([eE][-+]?\d+)?,[-+]?\d+\.?\d*([eE][-+]?\d+)?;[-+]?\d+\.?\d*([eE][-+]?\d+)?,[-+]?\d+\.?\d*([eE][-+]?\d+)?\*){0,}[-+]?\d+\.?\d*([eE][-+]?\d+)?,[-+]?\d+\.?\d*([eE][-+]?\d+)?;[-+]?\d+\.?\d*([eE][-+]?\d+)?,[-+]?\d+\.?\d*([eE][-+]?\d+)?"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="PointPath"> <xs:restriction base="xs:string"> <xs:pattern value="[-+]?\d+\.?\d*([eE][-+]?\d+)?,[-+]?\d+\.?\d*([eE][-+]?\d+)?"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="RectPath"> <xs:restriction base="xs:string"> <xs:pattern value="([-+]?\d+\.?\d*([eE][-+]?\d+)?;){3,}[-+]?\d+\.?\d*([eE][-+]?\d+)?"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="MarkerShapePath"> <xs:restriction base="xs:string"> <xs:pattern value="(([-+]?\d+\.?\d*([eE][-+]?\d+)?,[-+]?\d+\.?\d*([eE][-+]?\d+)?\s){0,}[-+]?\d+\.?\d*([eE][-+]?\d+)?,[-+]?\d+\.?\d*([eE][-+]?\d+)?\*){0,}([-+]?\d+\.?\d*([eE][-+]?\d+)?,[-+]?\d+\.?\d*([eE][-+]?\d+)?\s){0,}[-+]?\d+\.?\d*([eE][-+]?\d+)?,[-+]?\d+\.?\d*([eE][-+]?\d+)?"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="GrainlineType"> <xs:restriction base="xs:string"> <xs:enumeration value="horizontal"/> <xs:enumeration value="vertical"/> <xs:enumeration value="notFixed"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="LayoutScale"> <xs:restriction base="xs:float"> <xs:minInclusive value="0.01"/> <xs:maxInclusive value="3"/> </xs:restriction> </xs:simpleType> </xs:schema>