1.XML中的类型标签:
<xs:complexType>复合类型和<xs:simpleTyle>简单类型是数据结构类型,包含了各种类型的属性。可以被子类型继承,继承方式为<xs:extension base="SignalFunction"/>。
2.XML中的元素<xs:element>
元素是一个节点,每个元素一定会有一种数据类型,用Type="xxxx"描述该元素的类型。此外元素还有自己的属性(atrribute)。元素是不可以被继承的。
3.XML中的属性<xs:attribute>
属性可以是节点的属性,也可以是类型的属性。
对于STD信号而言,信号每个BSC信号最终的表现形式是元素,但是这些元素的类型都是它们自己的类型,且这些类型最终继承自signalFunction复合类型。
而<Signal>元素则规定了TSF信号是由那几个BSCs信号组合而成(如AC_SIGNAL信号由Constant信号、Add调节器、Sinusoid信号组成)
因此要规定BSC信号,先规定特定BSC信号的复合类型,而这些复合类型一方面继承了<signalFunction>类型,另一方面规定了自己的属性(如sinusoid信号规定了幅值、频率、相位)。
那么<signalFunction>复合类型规定了什么呢?
<xs:complexType name="SignalFunctionType" abstract="true">
<xs:annotation>
<xs:documentation>All BSCs originate from classes derived from the SignalFunction base class (see Table B.1). The SignalFunction class is described as a pure virtual class as it can only be used to derive classes rather than to create test objects</xs:documentation>
</xs:annotation>
<xs:attribute name="type" type="xs:string" use="optional"/>
<xs:attribute name="reftype" type="xs:string" use="optional"/>
<xs:attribute name="name" type="SignalID" use="required"/>
<xs:attribute name="In" type="SignalREFS" use="optional"/>
<xs:attribute name="channels" type="string" use="optional"/>
<xs:attribute name="Gate" type="SignalREF" use="optional"/>
<xs:attribute name="Sync" type="SignalREF" use="optional"/>
<xs:attribute name="Conn" type="SignalREFS" use="optional"/>
<xs:attribute name="pinsIn" type="pinString" use="optional"/>
<xs:attribute name="pinsOut" type="pinString" use="optional"/>
<xs:attribute name="pinsSync" type="pinString" use="optional"/>
<xs:attribute name="pinsGate" type="pinString" use="optional"/>
<xs:attribute ref="std:scriptEngine"/>
<xs:anyAttribute namespace="##other" processContents="strict"/>
<!--xs:anyAttribute namespace="##other" processContents="lax"/-->
</xs:complexType>
规定了In接口、Conn接口、Sync接口等,这是每个信号都可能需要的接口。