以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML源码及示例(仅原创和转载) 』  (http://bbs.xml.org.cn/list.asp?boardid=32)
----  刚学的schema,写了第一个xml schema.请各位专家看看,是否有可以改进的地方。  (http://bbs.xml.org.cn/dispbbs.asp?boardid=32&rootid=&id=20225)


--  作者:Lutx
--  发布时间:7/7/2005 7:22:00 PM

--  刚学的schema,写了第一个xml schema.请各位专家看看,是否有可以改进的地方。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
 <xs:element name="Machine">
  <xs:annotation>
   <xs:documentation>Define a Machine</xs:documentation>
  </xs:annotation>
  <xs:complexType>
   <xs:choice>
    <xs:element ref="Indm3"/>
   </xs:choice>
   <xs:attribute name="machinetype" use="required" fixed="0">
    <xs:annotation>
     <xs:documentation>0: Three-phase Induction Motor</xs:documentation>
    </xs:annotation>
    <xs:simpleType>
     <xs:restriction base="xs:nonNegativeInteger">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="12"/>
     </xs:restriction>
    </xs:simpleType>
   </xs:attribute>
   <xs:attribute name="unit_system" use="optional" default="1">
    <xs:annotation>
     <xs:documentation>0: English 1:Metric</xs:documentation>
    </xs:annotation>
    <xs:simpleType>
     <xs:restriction base="xs:integer">
      <xs:enumeration value="0"/>
      <xs:enumeration value="1"/>
     </xs:restriction>
    </xs:simpleType>
   </xs:attribute>
   <xs:attribute name="wire_setting" default="American">
    <xs:simpleType>
     <xs:restriction base="xs:string">
      <xs:enumeration value="American"/>
      <xs:enumeration value="Chinese"/>
     </xs:restriction>
    </xs:simpleType>
   </xs:attribute>
  </xs:complexType>
 </xs:element>
 <xs:element name="Indm3">
  <xs:annotation>
   <xs:documentation>Three-phase induction motor </xs:documentation>
  </xs:annotation>
  <xs:complexType>
   <xs:sequence>
    <xs:element name="General">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="rated_power" type="PowerValue"/>
       <xs:element name="voltage" type="VoltValue" default="380"/>
       <xs:element name="connection" type="ConnTypeValue" default="0"/>
       <xs:element name="pole_pairs" type="PolesValue" default="1">
        <xs:annotation>
         <xs:documentation>must be an even number</xs:documentation>
        </xs:annotation>
       </xs:element>
       <xs:element name="frequency" type="FreqValue" default="50"/>
       <xs:element name="speed" type="SpeedValue"/>
       <xs:element name="stray_loss" type="LossValue"/>
       <xs:element name="frictional_loss" type="LossValue"/>
       <xs:element name="load_type" type="LoadTypeValue"/>
       <xs:element name="stator_length" type="NonZeroSizeValue"/>
       <xs:element name="stator_SF" type="StackingFactorValue"/>
       <xs:element name="stator_steel" type="xs:string"/>
       <xs:element name="op_temperature" type="TempValue"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
    <xs:element name="Stator1">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="stator_slots" type="SlotNumberValue">
        <xs:annotation>
         <xs:documentation>must be an multiple of 3</xs:documentation>
        </xs:annotation>
       </xs:element>
       <xs:element name="inner_diameter" type="NonZeroSizeValue"/>
       <xs:element name="outer_diameter" type="NonZeroSizeValue">
        <xs:annotation>
         <xs:documentation>must be greater than inner_diameter</xs:documentation>
        </xs:annotation>
       </xs:element>
       <xs:element name="slot_type" type="StatorSlotType" default="2"/>
       <xs:element name="hs0" type="NonZeroSizeValue"/>
       <xs:element name="hs1" type="SizeValue"/>
       <xs:element name="hs2" type="SizeValue"/>
       <xs:element name="bs0" type="NonZeroSizeValue"/>
       <xs:element name="bs1" type="SizeValue"/>
       <xs:element name="bs2" type="SizeValue"/>
       <xs:element name="rs" type="SizeValue"/>
       <xs:element name="tooth_width" type="SizeValue"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
    <xs:element name="Stator2">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="slot_conductors" type="SlotConductorsValue"/>
       <xs:element name="branches" type="BranchsValue"/>
       <xs:element name="wires" type="WiresPerConductorValue"/>
       <xs:element name="coil_type" type="CoilType"/>
       <xs:element name="coil_pitch" type="CoilPitchValue"/>
       <xs:element name="wire_diameter" type="NonZeroSizeValue"/>
       <xs:element name="gauge_No" type="xs:integer" fixed="-200">
        <xs:annotation>
         <xs:documentation>User define, always -200</xs:documentation>
        </xs:annotation>
       </xs:element>
       <xs:element name="wire_thickness" type="xs:integer" fixed="0">
        <xs:annotation>
         <xs:documentation>always 0</xs:documentation>
        </xs:annotation>
       </xs:element>
       <xs:element name="wire_wrap" type="NonZeroSizeValue"/>
       <xs:element name="slot_insulation" type="NonZeroSizeValue"/>
       <xs:element name="top_space" type="PercentValue"/>
       <xs:element name="bottom_space" type="PercentValue"/>
       <xs:element name="end_length" type="NonZeroSizeValue"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
    <xs:element name="Rotor1">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="air_gap" type="NonZeroSizeValue"/>
       <xs:element name="shaft_diameter" type="NonZeroSizeValue"/>
       <xs:element name="rotor_slots" type="SlotNumberValue"/>
       <xs:element name="rotor_slot_type" type="RotorSlotType"/>
       <xs:element name="hr0" type="SizeValue"/>
       <xs:element name="hr01" type="SizeValue"/>
       <xs:element name="hr1" type="SizeValue"/>
       <xs:element name="hr2" type="SizeValue"/>
       <xs:element name="br0" type="SizeValue"/>
       <xs:element name="br1" type="SizeValue"/>
       <xs:element name="br2" type="SizeValue"/>
       <xs:element name="rr" type="SizeValue"/>
       <xs:element name="bottom_slots" type="OptSlotNumberValue">
        <xs:annotation>
         <xs:documentation>if greator than zero, must be divisor of top rotor slots</xs:documentation>
        </xs:annotation>
       </xs:element>
       <xs:element name="bottom_slot_type" type="RotorSlotType"/>
       <xs:element name="b_hr0" type="SizeValue"/>
       <xs:element name="b_hr1" type="SizeValue"/>
       <xs:element name="b_hr2" type="SizeValue"/>
       <xs:element name="b_br0" type="SizeValue"/>
       <xs:element name="b_br1" type="SizeValue"/>
       <xs:element name="b_br2" type="SizeValue"/>
       <xs:element name="b_rr" type="SizeValue"/>
       <xs:element name="is_cast_rotor" type="xs:boolean"/>
       <xs:element name="is_halg_slot" type="xs:boolean"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
    <xs:element name="Rotor2">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="vent_type" type="VentTypeValue"/>
       <xs:element name="ventage_holes" type="xs:nonNegativeInteger"/>
       <xs:element name="stator_ducts" type="xs:nonNegativeInteger"/>
       <xs:element name="vent_location" type="SizeValue"/>
       <xs:element name="hole_diameter" type="SizeValue"/>
       <xs:element name="skew_slots" type="SizeValue"/>
       <xs:element name="end_bar_length" type="SizeValue"/>
       <xs:element name="ring_height" type="SizeValue"/>
       <xs:element name="ring_width" type="SizeValue"/>
       <xs:element name="bar_resistivity" type="ResistivityValue"/>
       <xs:element name="ring_resistivity" type="ResistivityValue"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
   </xs:sequence>
  </xs:complexType>
 </xs:element>
 <xs:simpleType name="PowerValue">
  <xs:annotation>
   <xs:documentation>Define Power Value(kW)</xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:float">
   <xs:minExclusive value="0"/>
   <xs:pattern value=""/>
  </xs:restriction>
 </xs:simpleType>
 <xs:simpleType name="VoltValue">
  <xs:annotation>
   <xs:documentation>Define Voltage Value(V)</xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:float">
   <xs:minExclusive value="0"/>
  </xs:restriction>
 </xs:simpleType>
 <xs:simpleType name="ConnTypeValue">
  <xs:annotation>
   <xs:documentation>Define Connection Type 0: Wye 1: Delta</xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:integer">
   <xs:enumeration value="0"/>
   <xs:enumeration value="1"/>
  </xs:restriction>
 </xs:simpleType>
 <xs:simpleType name="PolesValue">
  <xs:annotation>
   <xs:documentation>Define Poles Value</xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:positiveInteger">
   <xs:pattern value=""/>
  </xs:restriction>
 </xs:simpleType>
 <xs:simpleType name="FreqValue">
  <xs:annotation>
   <xs:documentation>Define Frequency value(Hz)</xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:positiveInteger"/>
 </xs:simpleType>
 <xs:simpleType name="SpeedValue">
  <xs:annotation>
   <xs:documentation>Define Rotor Speed Value(rpm)</xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:float">
   <xs:minExclusive value="0"/>
  </xs:restriction>
 </xs:simpleType>
 <xs:simpleType name="LossValue">
  <xs:annotation>
   <xs:documentation>Define Loss (W)</xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:float">
   <xs:minInclusive value="0"/>
  </xs:restriction>
 </xs:simpleType>
 <xs:simpleType name="SizeValue">
  <xs:annotation>
   <xs:documentation>Define size (mm or inch)</xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:float">
   <xs:minInclusive value="0"/>
  </xs:restriction>
 </xs:simpleType>
 <xs:simpleType name="StackingFactorValue">
  <xs:annotation>
   <xs:documentation>Define stacking factor </xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:float">
   <xs:maxInclusive value="1"/>
   <xs:minExclusive value="0"/>
  </xs:restriction>
 </xs:simpleType>
 <xs:simpleType name="TempValue">
  <xs:annotation>
   <xs:documentation>Define temperature value</xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:float"/>
 </xs:simpleType>
 <xs:simpleType name="LoadTypeValue">
  <xs:annotation>
   <xs:documentation>Define Load Type -1:Constant Speed 0:Constant Power 1:Constant Torque 2:Linear Torque 3:Fan Load</xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:integer">
   <xs:enumeration value="-1"/>
   <xs:enumeration value="0"/>
   <xs:enumeration value="1"/>
   <xs:enumeration value="2"/>
   <xs:enumeration value="3"/>
  </xs:restriction>
 </xs:simpleType>
 <xs:simpleType name="SlotNumberValue">
  <xs:annotation>
   <xs:documentation>Define Slot Number</xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:positiveInteger"/>
 </xs:simpleType>
 <xs:simpleType name="OptSlotNumberValue">
  <xs:annotation>
   <xs:documentation>Define slot number (can be zero)</xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:nonNegativeInteger"/>
 </xs:simpleType>
 <xs:simpleType name="NonZeroSizeValue">
  <xs:annotation>
   <xs:documentation>Define size (greater than zero)</xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:float">
   <xs:minExclusive value="0"/>
  </xs:restriction>
 </xs:simpleType>
 <xs:simpleType name="StatorSlotType">
  <xs:annotation>
   <xs:documentation>Define stator slot type</xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:integer">
   <xs:enumeration value="1"/>
   <xs:enumeration value="2"/>
   <xs:enumeration value="3"/>
   <xs:enumeration value="4"/>
   <xs:enumeration value="5"/>
   <xs:enumeration value="6"/>
  </xs:restriction>
 </xs:simpleType>
 <xs:simpleType name="RotorSlotType">
  <xs:annotation>
   <xs:documentation>Define rotor slot type</xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:integer">
   <xs:enumeration value="1"/>
   <xs:enumeration value="2"/>
   <xs:enumeration value="3"/>
   <xs:enumeration value="4"/>
  </xs:restriction>
 </xs:simpleType>
 <xs:simpleType name="CoilPitchValue">
  <xs:restriction base="xs:positiveInteger"/>
 </xs:simpleType>
 <xs:simpleType name="CoilType">
  <xs:annotation>
   <xs:documentation>Stator Coil Type 1:单层同心式 2:单层交叉 3:单层链式 4:双层叠绕 5:双层波绕</xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:integer">
   <xs:enumeration value="1"/>
   <xs:enumeration value="2"/>
   <xs:enumeration value="3"/>
   <xs:enumeration value="4"/>
   <xs:enumeration value="5"/>
  </xs:restriction>
 </xs:simpleType>
 <xs:simpleType name="SlotConductorsValue">
  <xs:restriction base="xs:positiveInteger"/>
 </xs:simpleType>
 <xs:simpleType name="BranchsValue">
  <xs:restriction base="xs:positiveInteger"/>
 </xs:simpleType>
 <xs:simpleType name="WiresPerConductorValue">
  <xs:restriction base="xs:positiveInteger"/>
 </xs:simpleType>
 <xs:simpleType name="PercentValue">
  <xs:restriction base="xs:float">
   <xs:minInclusive value="0"/>
   <xs:maxInclusive value="100"/>
  </xs:restriction>
 </xs:simpleType>
 <xs:simpleType name="VentTypeValue">
  <xs:annotation>
   <xs:documentation>Vent Type 0:AxialHole 1:Aligned Duct 2:UnalignedDuct</xs:documentation>
  </xs:annotation>
  <xs:restriction base="xs:integer">
   <xs:enumeration value="0"/>
   <xs:enumeration value="1"/>
   <xs:enumeration value="2"/>
  </xs:restriction>
 </xs:simpleType>
 <xs:simpleType name="ResistivityValue">
  <xs:restriction base="xs:float">
   <xs:minInclusive value="0"/>
  </xs:restriction>
 </xs:simpleType>
</xs:schema>

--  作者:Lutx
--  发布时间:7/8/2005 9:47:00 AM

--  
人气不旺啊。
--  作者:dingcai
--  发布时间:7/11/2005 10:13:00 AM

--  
好长呀
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
78.125ms