1. 准備一個XML文件
XMLmenu
1<Menu>
2 <MenuItem Name="系統管理" AssemblyName="" FormTag="FALSE" AddToolbar="FALSE">
3 <MenuItem Name="權限管理" ShortCut="" Image="" AssemblyName="" FormTag="FALSE" AddToolButton="FALSE">
4 <MenuItem Name="系統權限管理" ShortCut="" Image="passWord.png" AssemblyName="HustCAD.IntePLM.WinUI.FrmSysRight,IntePLM.TyRightWinUI" FormTag="TRUE" AddToolButton="FALSE"/>
5 <MenuItem Name="權限規則定義" ShortCut="" Image="right.png" AssemblyName="HustCAD.IntePLM.WinUI.FrmRightRule,IntePLM.TyRightWinUI" FormTag="TRUE" AddToolButton="FALSE"/>
6 <MenuItem Name="權限日志" ShortCut="" Image="doc_yellow_edit.png" AssemblyName="HustCAD.IntePLM.WinUI.FrmRightLog,IntePLM.TyRightWinUI" FormTag="TRUE" AddToolButton="FALSE"/>
7 </MenuItem>
8</Menu>
2.准備一個xml schemal文件來驗證XML文件
<?XML version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2006 sp2 U (http://www.altova.com) by peter (hust) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualifIEd">
<xs:element name="Menu">
<xs:complexType>
<xs:sequence>
<xs:element ref="MenuItem" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MenuItem">
<xs:complexType>
<xs:sequence>
<xs:element ref="MenuItem" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="AddToolButton">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="TRUE"/>
<xs:enumeration value="FALSE"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="AddToolbar">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="TRUE"/>
<xs:enumeration value="FALSE"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="AssemblyName" type="xs:string" use="required"/>
<xs:attribute name="FormTag" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="TRUE"/>
<xs:enumeration value="FALSE"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Image" type="xs:string"/>
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="ShortCut" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="F1"/>
<xs:enumeration value="F2"/>
<xs:enumeration value="F3"/>
<xs:enumeration value="F4"/>
<xs:enumeration value="F5"/>
<xs:enumeration value="F6"/>
<xs:enumeration value="F7"/>
<xs:enumeration value="F8"/>
<xs:enumeration value="F9"/>
<xs:enumeration value="F10"/>
<xs:enumeration value="F11"/>
<xs:enumeration value="F12"/>
<xs:enumeration value="Alt0"/>
<xs:enumeration value="Alt1"/>
<xs:enumeration value="Alt2"/>
<xs:enumeration value="Alt3"/>
<xs:enumeration value="Alt4"/>
<xs:enumeration value="Alt5"/>
<xs:enumeration value="Alt6"/>
<xs:enumeration value="Alt7"/>
<xs:enumeration value="Alt8"/>
<xs:enumeration value="Alt9"/>
<xs:enumeration value="AltBksp"/>
<xs:enumeration value="AltF1"/>
<xs:enumeration value="AltF2"/>
<xs:enumeration value="AltF3"/>
<xs:enumeration value="AltF4"/>
<xs:enumeration value="AltF5"/>
<xs:enumeration value="AltF6"/>
<xs:enumeration value="AltF7"/>
<xs:enumeration value="AltF8"/>
<xs:enumeration value="AltF9"/>
<xs:enumeration value="AltF10"/>
<xs:enumeration value="AltF11"/>
<xs:enumeration value="AltF12"/>
<xs:enumeration value="AltDownArrow"/>
<xs:enumeration value="AltUpArrow"/>
<xs:enumeration value="AltLeftArrow"/>
<xs:enumeration value="AltRightArrow"/>
<xs:enumeration value="Ctrl0"/>
<xs:enumeration value="Ctrl1"/>
<xs:enumeration value="Ctrl2"/>
<xs:enumeration value="Ctrl3"/>
<xs:enumeration value="Ctrl4"/>
<xs:enumeration value="Ctrl5"/>
<xs:enumeration value="Ctrl6"/>
<xs:enumeration value="Ctrl7"/>
<xs:enumeration value="Ctrl8"/>
<xs:enumeration value="Ctrl9"/>
<xs:enumeration value="CtrlA"/>
<xs:enumeration value="CtrlB"/>
<xs:enumeration value="CtrlC"/>
<xs:enumeration value="CtrlD"/>
<xs:enumeration value="CtrlE"/>
<xs:enumeration value="CtrlF"/>
<xs:enumeration value="CtrlG"/>
<xs:enumeration value="CtrlH"/>
<xs:enumeration value="CtrlI"/>
<xs:enumeration value="CtrlJ"/>
<xs:enumeration value="CtrlK"/>
<xs:enumeration value="CtrlL"/>
<xs:enumeration value="CtrlM"/>
<xs:enumeration value="CtrlN"/>
<xs:enumeration value="CtrlO"/>
<xs:enumeration value="CtrlP"/>
<xs:enumeration value="CtrlQ"/>
<xs:enumeration value="CtrlR"/>
<xs:enumeration value="CtrlS"/>
<xs:enumeration value="CtrlT"/>
<xs:enumeration value="CtrlU"/>
<xs:enumeration value="CtrlV"/>
<xs:enumeration value="CtrlX"/>
<xs:enumeration value="CtrlY"/>
<xs:enumeration value="CtrlZ"/>
<xs:enumeration value="CtrlF1"/>
<xs:enumeration value="CtrlF2"/>
<xs:enumeration value="CtrlF3"/>
<xs:enumeration value="CtrlF4"/>
<xs:enumeration value="CtrlF5"/>
<xs:enumeration value="CtrlF6"/>
<xs:enumeration value="CtrlF7"/>
<xs:enumeration value="CtrlF8"/>
<xs:enumeration value="CtrlF9"/>
<xs:enumeration value="CtrlF10"/>
<xs:enumeration value="CtrlF11"/>
<xs:enumeration value="CtrlF12"/>
<xs:enumeration value="CtrlIns"/>
<xs:enumeration value="CtrlShift0"/>
<xs:enumeration value="CtrlShift1"/>
<xs:enumeration value="CtrlShift2"/>
<xs:enumeration value="CtrlShift3"/>
<xs:enumeration value="CtrlShift4"/>
<xs:enumeration value="CtrlShift5"/>
<xs:enumeration value="CtrlShift6"/>
<xs:enumeration value="CtrlShift7"/>
<xs:enumeration value="CtrlShift8"/>
<xs:enumeration value="CtrlShift9"/>
<xs:enumeration value="CtrlShiftA"/>
<xs:enumeration value="CtrlShiftB"/>
<xs:enumeration value="CtrlShiftC"/>
<xs:enumeration value="CtrlShiftD"/>
<xs:enumeration value="CtrlShiftE"/>
<xs:enumeration value="CtrlShiftF"/>
<xs:enumeration value="CtrlShiftG"/>
<xs:enumeration value="CtrlShiftH"/>
<xs:enumeration value="CtrlShiftI"/>
<xs:enumeration value="CtrlShiftJ"/>
<xs:enumeration value="CtrlShiftK"/>
<xs:enumeration value="CtrlShiftL"/>
<xs:enumeration value="CtrlShiftM"/>
<xs:enumeration value="CtrlShiftN"/>
<xs:enumeration value="CtrlShiftO"/>
<xs:enumeration value="CtrlShiFTP"/>
<xs:enumeration value="CtrlShiftQ"/>
<xs:enumeration value="CtrlShiftR"/>
<xs:enumeration value="CtrlShiftS"/>
<xs:enumeration value="CtrlShiftT"/>
<xs:enumeration value="CtrlShiftU"/>
<xs:enumeration value="CtrlShiftV"/>
<xs:enumeration value="CtrlShiftW"/>
<xs:enumeration value="CtrlShiftX"/>
<xs:enumeration value="CtrlShiftY"/>
<xs:enumeration value="CtrlShiftZ"/>
<xs:enumeration value="ShiftIns"/>
<xs:enumeration value="ShiftF1"/>
<xs:enumeration value="ShiftF2"/>
<xs:enumeration value="ShiftF3"/>
<xs:enumeration value="ShiftF4"/>
<xs:enumeration value="ShiftF5"/>
<xs:enumeration value="ShiftF6"/>
<xs:enumeration value="ShiftF7"/>
<xs:enumeration value="ShiftF8"/>
<xs:enumeration value="ShiftF9"/>
<xs:enumeration value="ShiftF10"/>
<xs:enumeration value="ShiftF11"/>
<xs:enumeration value="ShiftF12"/>
<xs:enumeration value=""/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:schema>