我想要的是创建一个由一组按钮组成的动态GUI(在我的例子中,每个按钮代表一个来自xml文件的元素),当我点击一个按钮时,将会创建一个代表其子元素的按钮..我知道是否有可能使用DOM或JAXB来做到这一点。如果有人可以帮助我或有其他想法,那就太感恩了! 谢谢!!
<?xml version="1.0" encoding="UTF-8" ?>
- <HWData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="hw_data.xsd">
<Header time="2015-02-03T02:02:56" uploaded="false" version="1.0" />
- <NE MOID="NE-SGSN-387826" objectClass="NE" objectClassVersion="1" NEId="387826" NEType="SGSN" systemTitle="SGSN-MNB-" locationName="MANOUBA" systemReleaseVersion="J8" softwareReleaseVersion="J8 50.70-0 50" serialNumber="387826" vendorName="Nokia">
- <EQHO MOID="NE-SGSN-387826/DN:EQHO-1A" objectClass="EQHO" objectClassVersion="1" equipmentHolderId="11" equipmentHolderType="Cabinet" equipmentHolderSpecificType="EC217_A" locationName="1A" serialNumber="" interchangeability="" version="" identificationCode="" vendorName="Nokia">
- <EQHO MOID="NE-SGSN-387826/DN:EQHO-1A/EQHO-1-0" objectClass="EQHO" objectClassVersion="1" equipmentHolderId="11100" equipmentHolderType="Cartridge" equipmentHolderSpecificType="ACH16_A" locationName="1A001-00" serialNumber="XY131403380" interchangeability="" version="" identificationCode="" vendorName="Nokia">
<UNIT MOID="NE-SGSN-387826/DN:EQHO-1A/EQHO-1-0/UNIT-1-PIU-1" objectClass="UNIT" objectClassVersion="1" unitId="1" unitTypeActual="ACPI4_A" unitTypeExpected="ACPI4_A" position="1" operationalState="enabled" serialNumber="FK124600007" interchangeability="B" version="3C" identificationCode="C111969" vendorName="Nokia" />
<UNIT MOID="NE-SGSN-387826/DN:EQHO-1A/EQHO-1-0/UNIT-1-RTM-1" objectClass="UNIT" objectClassVersion="1" unitId="1" unitTypeActual="CPRT4_A" unitTypeExpected="CPRT4_A" position="1" operationalState="enabled" serialNumber="JG130400410" interchangeability="A" version="2A" identificationCode="C111970" vendorName="Nokia" />
<UNIT MOID="NE-SGSN-387826/DN:EQHO-1A/EQHO-1-0/UNIT-FAN-2" objectClass="UNIT" objectClassVersion="1" unitId="4" unitTypeActual="AFAMO_A" unitTypeExpected="AFAMO_A" position="4" operationalState="enabled" serialNumber="XY131400960" interchangeability="B" version="3B" identificationCode="C110638" vendorName="Nokia" />
<UNIT MOID="NE-SGSN-387826/DN:EQHO-1A/EQHO-1-0/UNIT-FAN-1" objectClass="UNIT" objectClassVersion="1" unitId="4" unitTypeActual="AFAMO_A" unitTypeExpected="AFAMO_A" position="4" operationalState="enabled" serialNumber="XY131400980" interchangeability="B" version="3B" identificationCode="C110638" vendorName="Nokia" />
</EQHO>
<EQHO MOID="NE-SGSN-387826/DN:EQHO-1A/EQHO-1-0" objectClass="EQHO" objectClassVersion="1" equipmentHolderId="111000501" equipmentHolderType="Cartridge" equipmentHolderSpecificType="CHAF2_A" locationName="1A001-00-FFI-1" serialNumber="31401904" interchangeability="A" version="" identificationCode="C110639" vendorName="Nokia" />
- <EQHO MOID="NE-SGSN-387826/DN:EQHO-1A/EQHO-2-0" objectClass="EQHO" objectClassVersion="1" equipmentHolderId="11200" equipmentHolderType="Cartridge" equipmentHolderSpecificType="ACH16_A" locationName="1A002-00" serialNumber="XY131403370" interchangeability="" version="" identificationCode="" vendorName="Nokia">
<UNIT MOID="NE-SGSN-387826/DN:EQHO-1A/EQHO-2-0/UNIT-1-PIU-1" objectClass="UNIT" objectClassVersion="1" unitId="1" unitTypeActual="ACPI4_A" unitTypeExpected="ACPI4_A" position="1" operationalState="enabled" serialNumber="FK124600059" interchangeability="B" version="3C" identificationCode="C111969" vendorName="Nokia" />
<UNIT MOID="NE-SGSN-387826/DN:EQHO-1A/EQHO-2-0/UNIT-SHM-2" objectClass="UNIT" objectClassVersion="1" unitId="3" unitTypeActual="ASMGR_A" unitTypeExpected="ASMGR_A" position="3" operationalState="enabled" serialNumber="XY131402619" interchangeability="A" version="4B" identificationCode="C110581" vendorName="Nokia" />
<UNIT MOID="NE-SGSN-387826/DN:EQHO-1A/EQHO-2-0/UNIT-FAN-3" objectClass="UNIT" objectClassVersion="1" unitId="4" unitTypeActual="AFAMO_A" unitTypeExpected="AFAMO_A" position="4" operationalState="enabled" serialNumber="XY131400977" interchangeability="B" version="3B" identificationCode="C110638" vendorName="Nokia" />
<UNIT MOID="NE-SGSN-387826/DN:EQHO-1A/EQHO-2-0/UNIT-FAN-1" objectClass="UNIT" objectClassVersion="1" unitId="4" unitTypeActual="AFAMO_A" unitTypeExpected="AFAMO_A" position="4" operationalState="enabled" serialNumber="XY131400971" interchangeability="B" version="3B" identificationCode="C110638" vendorName="Nokia" />
<UNIT MOID="NE-SGSN-387826/DN:EQHO-1A/EQHO-2-0/UNIT-FAN-2" objectClass="UNIT" objectClassVersion="1" unitId="4" unitTypeActual="AFAMO_A" unitTypeExpected="AFAMO_A" position="4" operationalState="enabled" serialNumber="XY131400975" interchangeability="B" version="3B" identificationCode="C110638" vendorName="Nokia" />
</EQHO>
<EQHO MOID="NE-SGSN-387826/DN:EQHO-1A/EQHO-2-0" objectClass="EQHO" objectClassVersion="1" equipmentHolderId="112000502" equipmentHolderType="Cartridge" equipmentHolderSpecificType="CHAF2_A" locationName="1A002-00-FFI-2" serialNumber="31401893" interchangeability="A" version="" identificationCode="C110639" vendorName="Nokia" />
- <EQHO MOID="NE-SGSN-387826/DN:EQHO-1A/EQHO-3-0" objectClass="EQHO" objectClassVersion="1" equipmentHolderId="11300" equipmentHolderType="Cartridge" equipmentHolderSpecificType="ACH16_A" locationName="1A003-00" serialNumber="XY131403377" interchangeability="" version="" identificationCode="" vendorName="Nokia">
<UNIT MOID="NE-SGSN-387826/DN:EQHO-1A/EQHO-3-0/UNIT-SHM-1" objectClass="UNIT" objectClassVersion="1" unitId="3" unitTypeActual="ASMGR_A" unitTypeExpected="ASMGR_A" position="3" operationalState="enabled" serialNumber="XY131301773" interchangeability="A" version="4B" identificationCode="C110581" vendorName="Nokia" />
<UNIT MOID="NE-SGSN-387826/DN:EQHO-1A/EQHO-3-0/UNIT-FAN-1" objectClass="UNIT" objectClassVersion="1" unitId="4" unitTypeActual="AFAMO_A" unitTypeExpected="AFAMO_A" position="4" operationalState="enabled" serialNumber="XY131400963" interchangeability="B" version="3B" identificationCode="C110638" vendorName="Nokia" />
<UNIT MOID="NE-SGSN-387826/DN:EQHO-1A/EQHO-3-0/UNIT-FAN-2" objectClass="UNIT" objectClassVersion="1" unitId="4" unitTypeActual="AFAMO_A" unitTypeExpected="AFAMO_A" position="4" operationalState="enabled" serialNumber="XY131400962" interchangeability="B" version="3B" identificationCode="C110638" vendorName="Nokia" />
<UNIT MOID="NE-SGSN-387826/DN:EQHO-1A/EQHO-3-0/UNIT-FAN-3" objectClass="UNIT" objectClassVersion="1" unitId="4" unitTypeActual="AFAMO_A" unitTypeExpected="AFAMO_A" position="4" operationalState="enabled" serialNumber="XY131400988" interchangeability="B" version="3B" identificationCode="C110638" vendorName="Nokia" />
</EQHO>
<EQHO MOID="NE-SGSN-387826/DN:EQHO-1A/EQHO-3-0" objectClass="EQHO" objectClassVersion="1" equipmentHolderId="113000503" equipmentHolderType="Cartridge" equipmentHolderSpecificType="CHAF2_A" locationName="1A003-00-FFI-3" serialNumber="31401903" interchangeability="A" version="" identificationCode="C110639" vendorName="Nokia" />
</EQHO>
</NE>
</HWData>
答案 0 :(得分:2)
删除了基于XStream的先前答案,转而使用JAXB。
将jaxb2-maven-plugin添加到你的pom.xml:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<schemaDirectory>src/main/resources/xsd/</schemaDirectory>
</configuration>
</plugin>
将您的XSD放在src / main / resources / xsd /
中HwDataTree类扩展了DynamicTreeDemo,这是Oracle教程的一部分。下载这两个类并将它们添加到您的项目中。
import generated.EQHO;
import generated.HWData;
import generated.NE;
import generated.UNIT;
import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import java.io.File;
import java.util.List;
public class HwDataTree extends DynamicTreeDemo {
// the path of your XML file
private static final String PATH = "C:/example.xml";
@Override
public void populateTree(DynamicTree treePanel) {
HWData hwData = initData();
treePanel.addObject(null, formatHeader(hwData));
treePanel.addObject(null, formatNE(hwData));
addNodesRecursive(hwData.getNE(), null, treePanel);
}
private HWData initData() {
try {
File xml = new File(PATH);
JAXBContext jaxbContext = JAXBContext.newInstance(HWData.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
return (HWData) jaxbUnmarshaller.unmarshal(xml);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private void addNodesRecursive(NE parent, DefaultMutableTreeNode parentNode, DynamicTree treePanel) {
List<EQHO> children = parent.getEQHO();
for (EQHO child : children) {
DefaultMutableTreeNode childNode = treePanel.addObject(parentNode, formatEQHO(child));
addNodesRecursive(child, childNode, treePanel);
}
}
private void addNodesRecursive(EQHO parent, DefaultMutableTreeNode parentNode, DynamicTree treePanel) {
List<Object> children = parent.getEQHOAndUNIT();
for (Object child : children) {
DefaultMutableTreeNode childNode = treePanel.addObject(parentNode, getMOID(child));
if (child instanceof EQHO) {
EQHO eqho = (EQHO) child;
addNodesRecursive(eqho, childNode, treePanel);
}
}
}
private String getMOID(Object child) {
String moid;
if (child instanceof EQHO) {
EQHO eqho = (EQHO) child;
moid = formatEQHO(eqho);
} else if (child instanceof UNIT) {
UNIT unit = (UNIT) child;
moid = formatUnit(unit);
} else {
throw new RuntimeException("Could not parse type of: " + child);
}
return moid;
}
private String formatHeader(HWData hwData) {
return String.format("Header time=%s", hwData.getHeader().getTime());
}
private String formatNE(HWData hwData) {
return String.format("NE MOID=%s", hwData.getNE().getMOID());
}
private String formatEQHO(EQHO child) {
return String.format("EQHO MOID=%s", child.getMOID());
}
private String formatUnit(UNIT unit) {
return String.format("UNIT MOID=%s", unit.getMOID());
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
private static void createAndShowGUI() {
JFrame frame = new JFrame("Tree");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
HwDataTree newContentPane = new HwDataTree();
newContentPane.setOpaque(true);
frame.setContentPane(newContentPane);
frame.pack();
frame.setVisible(true);
}
}
通过执行mvn clean compile
生成包装器。
然后运行HwDataTree,结果如下:
答案 1 :(得分:1)
这是我的xsd
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by XMLSPY 5 Professional Ed. Release 4, Installed Multi + SMP for 2 users (Nokia GmbH) -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.20">
<!-- Version history:
1.20: - changed "xsd" namespace according to W3C official recommendation
- removed Telcordia specific pattern from EquipmentHolderSpecificTypes
- added AvailabilityStatusEntry value "inCharge"
- made "time" attribute in <Header/> mandatory
- added serviceState attribute to PRUT
- made PRUT attributes optional
- added mnemonic attribute to EQHO
- allow empty strings for attributes "position", "manufacturingDate", "dateOfLastService"
- SoftwareReleaseVersionType: 20 -> 30
1.12: vendorName: mandatory, non-empty
1.11: PositionType: string -> integer
EquipmentHolderSpecificTypes: pattern refined according to Telcordia Network Engineer Java extensions
Additional attributes in <Header/>
time: timeInstant -> dateTime
1.10: Length of FunctionalUnitTypes: 4 -> 10
Length of SoftwareReleaseVersionType: 10->20
Length of VersionType: 5->30
-->
<xsd:simpleType name="AdministrativeState">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="locked"/>
<xsd:enumeration value="unlocked"/>
<xsd:enumeration value="shuttingDown"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ConnectorTypes">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="DateOrEmptyType">
<xsd:union memberTypes="xsd:date EmptyStringType"/>
</xsd:simpleType>
<!-- whitespaces are allowed -->
<xsd:simpleType name="EmptyStringType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="\s*"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="EquipmentHolderTypes">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
<xsd:enumeration value="Cabinet"/>
<xsd:enumeration value="Rack"/>
<xsd:enumeration value="Subrack"/>
<xsd:enumeration value="Cartridge"/>
<xsd:enumeration value="Slot"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="EquipmentHolderSpecificTypes">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="FunctionalUnitIdType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="FunctionalUnitTypes">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="HWCheckSumType">
<xsd:restriction base="xsd:integer"/>
</xsd:simpleType>
<xsd:simpleType name="IdentificationCodeType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="InterchangeabilityType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="LocationNameType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="MOID">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="256"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="MnemonicType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="NEAddressType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="256"/>
<xsd:pattern value="[-_.0-9a-zA-Z]+=.*"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="NamingAttributeIdType">
<xsd:restriction base="xsd:integer">
<xsd:maxInclusive value="999999999"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="NameFromPlanningSystemType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="NETypes">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="NumberOfSlotsOccupiedType">
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="1"/>
<xsd:maxInclusive value="99"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ObjectClassType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="5"/>
<xsd:pattern value="[A-Z]*"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ObjectClassVersionType">
<xsd:restriction base="xsd:integer">
<xsd:maxInclusive value="100"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="OperationalState">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="disabled"/>
<xsd:enumeration value="enabled"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="PositionType">
<xsd:union memberTypes="xsd:integer EmptyStringType"/>
</xsd:simpleType>
<xsd:simpleType name="PowerSupplyTypes">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ProtectionGroupTypes">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="plus"/>
<xsd:enumeration value="colon"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="SerialNumberType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="35"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ServiceStateType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="active"/>
<xsd:enumeration value="standby"/>
<xsd:enumeration value="undefined"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="SoftwareReleaseVersionType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="SystemReleaseVersionType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="256"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="SystemTitleType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="256"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="UnitTypes">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="UserLabelType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="128"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="VendorNameType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20"/>
<xsd:minLength value="1"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="VersionType">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="30"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="AvailabilityStatus">
<xsd:sequence>
<xsd:element name="AvailabilityStatusEntry" minOccurs="0" maxOccurs="unbounded">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="inCharge"/>
<xsd:enumeration value="inTest"/>
<xsd:enumeration value="failed"/>
<xsd:enumeration value="powerOff"/>
<xsd:enumeration value="offLine"/>
<xsd:enumeration value="offDuty"/>
<xsd:enumeration value="dependency"/>
<xsd:enumeration value="degraded"/>
<xsd:enumeration value="notInstalled"/>
<xsd:enumeration value="logFull"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GlobalConnectorId">
<xsd:attribute name="connectorHolderMOID" type="MOID"/>
<xsd:attribute name="connectorIdentifier" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="MOIDList">
<xsd:sequence>
<xsd:element name="MOID" type="MOID" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PhysicalConnectorList">
<xsd:sequence>
<xsd:element name="Connector" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence minOccurs="0">
<xsd:element name="connectedToIdentifier" type="GlobalConnectorId"/>
</xsd:sequence>
<xsd:attribute name="connectorType" type="ConnectorTypes"/>
<xsd:attribute name="connectorIdentifier" type="xsd:string"/>
<xsd:attribute name="location" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:attributeGroup name="MOGeneralAttributes">
<xsd:attribute name="MOID" type="MOID" use="required"/>
<xsd:attribute name="objectClass" type="ObjectClassType"/>
<xsd:attribute name="objectClassVersion" type="ObjectClassVersionType"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="MOStateAttributes">
<xsd:attribute name="administrativeState" type="AdministrativeState"/>
<xsd:attribute name="operationalState" type="OperationalState"/>
</xsd:attributeGroup>
<xsd:element name="availabilityStatus" type="AvailabilityStatus"/>
<xsd:element name="physicalConnectorList" type="PhysicalConnectorList"/>
<xsd:element name="UNIT">
<xsd:complexType>
<xsd:sequence minOccurs="0" maxOccurs="2">
<xsd:element ref="availabilityStatus" minOccurs="0"/>
<xsd:element ref="physicalConnectorList" minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref="MOGeneralAttributes"/>
<xsd:attributeGroup ref="MOStateAttributes"/>
<xsd:attribute name="unitId" type="NamingAttributeIdType"/>
<xsd:attribute name="unitTypeActual" type="UnitTypes" use="required"/>
<xsd:attribute name="unitTypeExpected" type="UnitTypes"/>
<xsd:attribute name="position" type="PositionType"/>
<xsd:attribute name="numberOfSlotsOccupied" type="NumberOfSlotsOccupiedType"/>
<xsd:attribute name="userLabel" type="UserLabelType"/>
<xsd:attribute name="softwareReleaseVersion" type="SoftwareReleaseVersionType"/>
<xsd:attribute name="vendorName" type="VendorNameType" use="required"/>
<xsd:attribute name="version" type="VersionType"/>
<xsd:attribute name="serialNumber" type="SerialNumberType"/>
<xsd:attribute name="manufacturingDate" type="DateOrEmptyType"/>
<xsd:attribute name="dateOfLastService" type="DateOrEmptyType"/>
<xsd:attribute name="interchangeability" type="InterchangeabilityType"/>
<xsd:attribute name="identificationCode" type="IdentificationCodeType"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="PRUT">
<xsd:complexType>
<xsd:attributeGroup ref="MOGeneralAttributes"/>
<xsd:attribute name="unitPointer" type="MOID"/>
<xsd:attribute name="protectionUnitId" type="NamingAttributeIdType"/>
<xsd:attribute name="protecting" type="xsd:boolean"/>
<xsd:attribute name="priority" type="xsd:integer"/>
<xsd:attribute name="serviceState" type="ServiceStateType"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="EQHO">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="physicalConnectorList" type="PhysicalConnectorList" minOccurs="0"/>
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="EQHO" minOccurs="0"/>
<xsd:element ref="UNIT" minOccurs="0"/>
</xsd:sequence>
</xsd:sequence>
<xsd:attributeGroup ref="MOGeneralAttributes"/>
<xsd:attributeGroup ref="MOStateAttributes"/>
<xsd:attribute name="equipmentHolderId" type="NamingAttributeIdType"/>
<xsd:attribute name="equipmentHolderSpecificType" type="EquipmentHolderSpecificTypes" use="required"/>
<xsd:attribute name="equipmentHolderType" type="EquipmentHolderTypes" use="required"/>
<xsd:attribute name="userLabel" type="UserLabelType"/>
<xsd:attribute name="vendorName" type="VendorNameType" use="required"/>
<xsd:attribute name="version" type="VersionType"/>
<xsd:attribute name="position" type="PositionType"/>
<xsd:attribute name="locationName" type="LocationNameType"/>
<xsd:attribute name="serialNumber" type="SerialNumberType"/>
<xsd:attribute name="manufacturingDate" type="DateOrEmptyType"/>
<xsd:attribute name="dateOfLastService" type="DateOrEmptyType"/>
<xsd:attribute name="interchangeability" type="InterchangeabilityType"/>
<xsd:attribute name="identificationCode" type="IdentificationCodeType"/>
<xsd:attribute name="mnemonic" type="MnemonicType"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="POSU">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="poweredEquipmentPtrList" type="MOIDList" minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref="MOGeneralAttributes"/>
<xsd:attribute name="powerSupplyId" type="NamingAttributeIdType"/>
<xsd:attribute name="powerSupplyType" type="PowerSupplyTypes"/>
<xsd:attribute name="powerSource" type="xsd:integer"/>
<xsd:attribute name="operationalState" type="OperationalState"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="FUUT">
<xsd:complexType>
<xsd:sequence>
<xsd:sequence minOccurs="0" maxOccurs="2">
<xsd:element name="supportedByUnitList" type="MOIDList" minOccurs="0"/>
<xsd:element name="affectedObjectList" type="MOIDList" minOccurs="0"/>
</xsd:sequence>
<xsd:element ref="FUUT" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="MOGeneralAttributes"/>
<xsd:attributeGroup ref="MOStateAttributes"/>
<xsd:attribute name="functionalUnitId" type="FunctionalUnitIdType"/>
<xsd:attribute name="functionalUnitType" type="FunctionalUnitTypes" use="required"/>
<xsd:attribute name="userLabel" type="UserLabelType"/>
<xsd:attribute name="version" type="VersionType"/>
<xsd:attribute name="protected" type="xsd:boolean"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="PRGR">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="availabilityStatus" type="AvailabilityStatus" minOccurs="0"/>
<xsd:element ref="PRUT" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="MOGeneralAttributes"/>
<xsd:attribute name="protectionGroupId" type="NamingAttributeIdType"/>
<xsd:attribute name="protectionGroupType" type="ProtectionGroupTypes" use="required"/>
<xsd:attribute name="revertive" type="xsd:boolean"/>
<xsd:attribute name="operationalState" type="OperationalState"/>
<xsd:attribute name="waitToRestoreTime" type="xsd:integer" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Header">
<xsd:complexType>
<xsd:attribute name="time" type="xsd:dateTime" use="required"/>
<xsd:attribute name="version" type="xsd:string"/>
<xsd:attribute name="uploaded" type="xsd:boolean"/>
<xsd:attribute name="GlobalId" type="xsd:integer"/>
<xsd:attribute name="AdaptationName" type="xsd:string"/>
<xsd:attribute name="AccessProtocol" type="xsd:string"/>
<xsd:attribute name="ProprietaryMediatorAddress" type="NEAddressType"/>
<xsd:attribute name="ProprietaryElementAddress" type="NEAddressType"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="NE">
<xsd:complexType>
<xsd:sequence minOccurs="0">
<xsd:element ref="EQHO" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="POSU" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="FUUT" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="PRGR" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref="MOGeneralAttributes"/>
<xsd:attributeGroup ref="MOStateAttributes"/>
<xsd:attribute name="NEId" type="xsd:string" use="required"/>
<xsd:attribute name="NEType" type="NETypes" use="required"/>
<xsd:attribute name="systemTitle" type="SystemTitleType"/>
<xsd:attribute name="systemReleaseVersion" type="SystemReleaseVersionType"/>
<xsd:attribute name="serialNumber" type="SerialNumberType"/>
<xsd:attribute name="softwareReleaseVersion" type="SoftwareReleaseVersionType"/>
<xsd:attribute name="userLabel" type="UserLabelType"/>
<xsd:attribute name="vendorName" type="VendorNameType" use="required"/>
<xsd:attribute name="version" type="VersionType"/>
<xsd:attribute name="locationName" type="LocationNameType"/>
<xsd:attribute name="HWCheckSum" type="HWCheckSumType"/>
<xsd:attribute name="nameFromPlanningSystem" type="NameFromPlanningSystemType"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="HWData">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Header"/>
<xsd:element ref="NE"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>