Skip to content

Commit 4f50e0f

Browse files
committed
Merge branch 'master' of https://github.com/mbsim-env/mbsim
2 parents f7ca11b + d1db0a7 commit 4f50e0f

File tree

1 file changed

+139
-117
lines changed

1 file changed

+139
-117
lines changed

kernel/schema/mbsim.xsd

Lines changed: 139 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -307,140 +307,162 @@
307307
<xs:restriction base="pv:stringPartialEval"/>
308308
</xs:simpleType>
309309

310+
311+
310312
<xs:element name="Element" abstract="true" type="ElementType">
311313
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
312314
<p>Abstraktes (Top-Level) Basis Element von MBSim.</p>
313315
<p>Das Attribut <code>name</code> gibt den Namen des Elements an. Dieser Name wird für die Referenzierung des
314316
Elements benötig. Die Plotausgaben verwenden ebenfalls diese Namen.</p>
315317
</xs:documentation></xs:annotation>
316318
</xs:element>
319+
320+
<!-- We define plotFeature* and plotAttribute* as global elements for improved preprocessing:
321+
If a element which can be used inside a Embed element is a local element than the preprocessor must do a revalidation which is quite expensive.
322+
This can be avoided if we define such elements globally and reference it beside the Embed element.
323+
This way the XML validator can already validate the such element during the initial validation where still Embed elements exists in the model. -->
324+
<xs:element name="plotFeature">
325+
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
326+
Definiert die Plotfeatures für dieses Element.
327+
</xs:documentation></xs:annotation>
328+
<xs:complexType>
329+
<xs:simpleContent>
330+
<xs:extension base="pv:booleanFullEval">
331+
<xs:attribute name="value" type="pv:qnamePartialEval" use="required"/>
332+
</xs:extension>
333+
</xs:simpleContent>
334+
</xs:complexType>
335+
</xs:element>
336+
<xs:element name="plotFeatureForChildren">
337+
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
338+
Definiert die Plotfeatures für alle Kindelement.
339+
</xs:documentation></xs:annotation>
340+
<xs:complexType>
341+
<xs:simpleContent>
342+
<xs:extension base="pv:booleanFullEval">
343+
<xs:attribute name="value" type="pv:qnamePartialEval" use="required"/>
344+
</xs:extension>
345+
</xs:simpleContent>
346+
</xs:complexType>
347+
</xs:element>
348+
<xs:element name="plotFeatureRecursive">
349+
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
350+
Definiert die Plotfeatures für diese Element und alle Kindelement.
351+
</xs:documentation></xs:annotation>
352+
<xs:complexType>
353+
<xs:simpleContent>
354+
<xs:extension base="pv:booleanFullEval">
355+
<xs:attribute name="value" type="pv:qnamePartialEval" use="required"/>
356+
</xs:extension>
357+
</xs:simpleContent>
358+
</xs:complexType>
359+
</xs:element>
360+
<xs:element name="plotAttribute">
361+
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
362+
Definiert ein Plot-Attribute ohne Wert.
363+
(Plot attribute sind statische Daten welche als key/value Paar an plot datasets/groups angehängt werden.)
364+
</xs:documentation></xs:annotation>
365+
<xs:complexType>
366+
<xs:attribute name="name" type="pv:stringPartialEval" use="required"/>
367+
</xs:complexType>
368+
</xs:element>
369+
<xs:element name="plotAttributeInt">
370+
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
371+
Definiert ein Plot-Attribute mit integer Wert.
372+
</xs:documentation></xs:annotation>
373+
<xs:complexType>
374+
<xs:simpleContent>
375+
<xs:extension base="pv:integerFullEval">
376+
<xs:attribute name="name" type="pv:stringPartialEval" use="required"/>
377+
</xs:extension>
378+
</xs:simpleContent>
379+
</xs:complexType>
380+
</xs:element>
381+
<xs:element name="plotAttributeFloat">
382+
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
383+
Definiert ein Plot-Attribute mit floating-point Wert.
384+
</xs:documentation></xs:annotation>
385+
<xs:complexType>
386+
<xs:simpleContent>
387+
<xs:extension base="pv:floatFullEval">
388+
<xs:attribute name="name" type="pv:stringPartialEval" use="required"/>
389+
</xs:extension>
390+
</xs:simpleContent>
391+
</xs:complexType>
392+
</xs:element>
393+
<xs:element name="plotAttributeString">
394+
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
395+
Definiert ein Plot-Attribute mit string Wert.
396+
</xs:documentation></xs:annotation>
397+
<xs:complexType>
398+
<xs:simpleContent>
399+
<xs:extension base="pv:stringFullEval">
400+
<xs:attribute name="name" type="pv:stringPartialEval" use="required"/>
401+
</xs:extension>
402+
</xs:simpleContent>
403+
</xs:complexType>
404+
</xs:element>
405+
<xs:element name="plotAttributeIntVector">
406+
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
407+
Definiert ein Plot-Attribute mit integer Vector-Wert.
408+
</xs:documentation></xs:annotation>
409+
<xs:complexType>
410+
<xs:complexContent>
411+
<xs:extension base="pv:integerVector">
412+
<xs:attribute name="name" type="pv:stringPartialEval" use="required"/>
413+
</xs:extension>
414+
</xs:complexContent>
415+
</xs:complexType>
416+
</xs:element>
417+
<xs:element name="plotAttributeFloatVector">
418+
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
419+
Definiert ein Plot-Attribute mit floating-point Vector-Wert.
420+
</xs:documentation></xs:annotation>
421+
<xs:complexType>
422+
<xs:complexContent>
423+
<xs:extension base="pv:unknownVector">
424+
<xs:attribute name="name" type="pv:stringPartialEval" use="required"/>
425+
</xs:extension>
426+
</xs:complexContent>
427+
</xs:complexType>
428+
</xs:element>
429+
<xs:element name="plotAttributeFloatMatrix">
430+
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
431+
Definiert ein Plot-Attribute mit floating-point Vector-Wert.
432+
</xs:documentation></xs:annotation>
433+
<xs:complexType>
434+
<xs:complexContent>
435+
<xs:extension base="pv:unknownMatrix">
436+
<xs:attribute name="name" type="pv:stringPartialEval" use="required"/>
437+
</xs:extension>
438+
</xs:complexContent>
439+
</xs:complexType>
440+
</xs:element>
441+
317442
<xs:complexType name="ElementType">
318443
<xs:sequence>
319444
<xs:choice minOccurs="0" maxOccurs="unbounded">
320-
<xs:element name="plotFeature">
321-
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
322-
Definiert die Plotfeatures für dieses Element.
323-
</xs:documentation></xs:annotation>
324-
<xs:complexType>
325-
<xs:simpleContent>
326-
<xs:extension base="pv:booleanFullEval">
327-
<xs:attribute name="value" type="pv:qnamePartialEval" use="required"/>
328-
</xs:extension>
329-
</xs:simpleContent>
330-
</xs:complexType>
331-
</xs:element>
332-
<xs:element name="plotFeatureForChildren">
333-
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
334-
Definiert die Plotfeatures für alle Kindelement.
335-
</xs:documentation></xs:annotation>
336-
<xs:complexType>
337-
<xs:simpleContent>
338-
<xs:extension base="pv:booleanFullEval">
339-
<xs:attribute name="value" type="pv:qnamePartialEval" use="required"/>
340-
</xs:extension>
341-
</xs:simpleContent>
342-
</xs:complexType>
343-
</xs:element>
344-
<xs:element name="plotFeatureRecursive">
345-
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
346-
Definiert die Plotfeatures für diese Element und alle Kindelement.
347-
</xs:documentation></xs:annotation>
348-
<xs:complexType>
349-
<xs:simpleContent>
350-
<xs:extension base="pv:booleanFullEval">
351-
<xs:attribute name="value" type="pv:qnamePartialEval" use="required"/>
352-
</xs:extension>
353-
</xs:simpleContent>
354-
</xs:complexType>
355-
</xs:element>
445+
<xs:element ref="plotFeature"/>
446+
<xs:element ref="plotFeatureForChildren"/>
447+
<xs:element ref="plotFeatureRecursive"/>
448+
<xs:element ref="pv:Embed"/>
356449
</xs:choice>
357450
<xs:choice minOccurs="0" maxOccurs="unbounded">
358-
<xs:element name="plotAttribute">
359-
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
360-
Definiert ein Plot-Attribute ohne Wert.
361-
(Plot attribute sind statische Daten welche als key/value Paar an plot datasets/groups angehängt werden.)
362-
</xs:documentation></xs:annotation>
363-
<xs:complexType>
364-
<xs:attribute name="name" type="pv:stringPartialEval" use="required"/>
365-
</xs:complexType>
366-
</xs:element>
367-
<xs:element name="plotAttributeInt">
368-
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
369-
Definiert ein Plot-Attribute mit integer Wert.
370-
</xs:documentation></xs:annotation>
371-
<xs:complexType>
372-
<xs:simpleContent>
373-
<xs:extension base="pv:integerFullEval">
374-
<xs:attribute name="name" type="pv:stringPartialEval" use="required"/>
375-
</xs:extension>
376-
</xs:simpleContent>
377-
</xs:complexType>
378-
</xs:element>
379-
<xs:element name="plotAttributeFloat">
380-
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
381-
Definiert ein Plot-Attribute mit floating-point Wert.
382-
</xs:documentation></xs:annotation>
383-
<xs:complexType>
384-
<xs:simpleContent>
385-
<xs:extension base="pv:floatFullEval">
386-
<xs:attribute name="name" type="pv:stringPartialEval" use="required"/>
387-
</xs:extension>
388-
</xs:simpleContent>
389-
</xs:complexType>
390-
</xs:element>
391-
<xs:element name="plotAttributeString">
392-
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
393-
Definiert ein Plot-Attribute mit string Wert.
394-
</xs:documentation></xs:annotation>
395-
<xs:complexType>
396-
<xs:simpleContent>
397-
<xs:extension base="pv:stringFullEval">
398-
<xs:attribute name="name" type="pv:stringPartialEval" use="required"/>
399-
</xs:extension>
400-
</xs:simpleContent>
401-
</xs:complexType>
402-
</xs:element>
403-
<xs:element name="plotAttributeIntVector">
404-
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
405-
Definiert ein Plot-Attribute mit integer Vector-Wert.
406-
</xs:documentation></xs:annotation>
407-
<xs:complexType>
408-
<xs:complexContent>
409-
<xs:extension base="pv:integerVector">
410-
<xs:attribute name="name" type="pv:stringPartialEval" use="required"/>
411-
</xs:extension>
412-
</xs:complexContent>
413-
</xs:complexType>
414-
</xs:element>
415-
<xs:element name="plotAttributeFloatVector">
416-
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
417-
Definiert ein Plot-Attribute mit floating-point Vector-Wert.
418-
</xs:documentation></xs:annotation>
419-
<xs:complexType>
420-
<xs:complexContent>
421-
<xs:extension base="pv:unknownVector">
422-
<xs:attribute name="name" type="pv:stringPartialEval" use="required"/>
423-
</xs:extension>
424-
</xs:complexContent>
425-
</xs:complexType>
426-
</xs:element>
427-
<xs:element name="plotAttributeFloatMatrix">
428-
<xs:annotation><xs:documentation xml:lang="de" xmlns="">
429-
Definiert ein Plot-Attribute mit floating-point Vector-Wert.
430-
</xs:documentation></xs:annotation>
431-
<xs:complexType>
432-
<xs:complexContent>
433-
<xs:extension base="pv:unknownMatrix">
434-
<xs:attribute name="name" type="pv:stringPartialEval" use="required"/>
435-
</xs:extension>
436-
</xs:complexContent>
437-
</xs:complexType>
438-
</xs:element>
451+
<xs:element ref="plotAttribute"/>
452+
<xs:element ref="plotAttributeInt"/>
453+
<xs:element ref="plotAttributeFloat"/>
454+
<xs:element ref="plotAttributeString"/>
455+
<xs:element ref="plotAttributeIntVector"/>
456+
<xs:element ref="plotAttributeFloatVector"/>
457+
<xs:element ref="plotAttributeFloatMatrix"/>
458+
<xs:element ref="pv:Embed"/>
439459
</xs:choice>
440460
</xs:sequence>
441461
<xs:attribute name="name" type="pv:stringPartialEval"/> <!-- is not required here since Function has not name attribute -->
442462
</xs:complexType>
443463

464+
465+
444466
<xs:element name="EmptyGroup" abstract="true" substitutionGroup="Element" type="EmptyGroupType"/>
445467
<xs:complexType name="EmptyGroupType">
446468
<xs:complexContent>

0 commit comments

Comments
 (0)