Corrigindo algumas falhas, em casos de automações

Aparentemente, são pouquíssimos os casos em que os atributos serão realmente obrigatórios.
Pelo que venho percebendo, ao conectar alguma parâmetro a uma automação, a <automationpattern> que fica encarregada de controlar este parâmetro, deixando de existir em <track> ou <instrumentrack>, por exemplo.
This commit is contained in:
JotaChina 2025-05-22 16:22:19 -03:00
parent 94e6bb83aa
commit 7f769bb896
1 changed files with 36 additions and 21 deletions

57
mmp.xsd
View File

@ -1,6 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<!--
TODOS OS ELEMENTOS QUE POSSAM SER CONECTADOS A ALGUMA AUTOMAÇÃO
NÃO PODEM TER SEUS ATRIBUTOS COMO NECESSÁRIOS.
POIS A AUTOMAÇÃO LEVA OS CONTROLES DOS ATRIBUTOS PARA A AUTOMATION PATTERN
-->
<!-- Raiz do projeto -->
<xs:element name="lmms-project">
@ -61,6 +66,8 @@
<xs:sequence>
<xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" />
</xs:sequence>
<xs:attribute name="x" type="xs:integer" />
<xs:attribute name="y" type="xs:integer" />
<xs:attribute name="type" type="xs:integer" use="required" />
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="muted" type="xs:boolean" use="required" />
@ -112,13 +119,13 @@
<xs:sequence>
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="vol" type="xs:integer" use="required" />
<xs:attribute name="pan" type="xs:integer" use="required" />
<xs:attribute name="pitch" type="xs:integer" use="required" />
<xs:attribute name="fxch" type="xs:integer" use="required" />
<xs:attribute name="basenote" type="xs:integer" use="required" />
<xs:attribute name="usemasterpitch" type="xs:boolean" use="required" />
<xs:attribute name="pitchrange" type="xs:integer" use="required" />
<xs:attribute name="vol" type="xs:integer" />
<xs:attribute name="pan" type="xs:integer" />
<xs:attribute name="pitch" type="xs:integer" />
<xs:attribute name="fxch" type="xs:integer" />
<xs:attribute name="basenote" type="xs:integer" />
<xs:attribute name="usemasterpitch" type="xs:boolean" />
<xs:attribute name="pitchrange" type="xs:integer" />
</xs:complexType>
</xs:element>
@ -144,23 +151,31 @@
</xs:complexType>
</xs:element>
<!-- automationtrack -->
<xs:element name="automationtrack">
<xs:complexType/>
</xs:element>
<!-- automationpattern -->
<xs:element name="automationpattern">
<xs:complexType>
<xs:attribute name="mute" type="xs:integer" use="required"/>
<xs:attribute name="prog" type="xs:integer" use="required"/>
<xs:attribute name="pos" type="xs:integer" use="required"/>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="tens" type="xs:integer" use="required"/>
<xs:attribute name="len" type="xs:integer" use="required"/>
<xs:sequence>
<xs:element name="time" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="value" type="xs:decimal" use="required"/>
<xs:attribute name="pos" type="xs:integer" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="object" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="id" type="xs:integer" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="mute" type="xs:integer" use="required"/>
<xs:attribute name="prog" type="xs:integer" use="required"/>
<xs:attribute name="pos" type="xs:integer" use="required"/>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="tens" type="xs:integer" use="required"/>
<xs:attribute name="len" type="xs:integer" use="required"/>
</xs:complexType>
</xs:element>
<!-- sampletrack -->
<xs:element name="sampletrack">
<xs:complexType>