У меня есть очень сложная XML-схема, где внутри элемента «CustomData» можно вставлять точно пользовательские данные.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
...
...
...
...
<xs:element name="CustomData" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:element name="UniqueIdentifier" type="xs:string"/>
<xs:any namespace="##any" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
...
</xs:schema>
Внутри «CustomData» есть два обязательных элемента: «Имя» и«UniqueIdentifier»
Я создал свои собственные пользовательские данные с этой схемой:
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:attribute name="du">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="S_L"/>
<xs:enumeration value="RI_L"/>
<xs:enumeration value="PC_L"/>
<xs:enumeration value="G_L"/>
<xs:enumeration value="UC_L"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:complexType name="du_type">
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute ref="du" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:element name="CustomData">
<xs:complexType>
<xs:sequence>
<xs:element name="CAM_Rated_Voltage" type="xs:decimal" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_Max_Voltage" type="xs:decimal" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_Min_Voltage" type="xs:decimal" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_Rated_Frequency" type="xs:decimal" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_Max_Frequency" type="xs:decimal" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_Min_Frequency" type="xs:decimal" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_Rated_Current" type="xs:decimal" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_Max_Current" type="xs:decimal" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_Min_Current" type="xs:decimal" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_Rated_Power_Factor" type="xs:decimal" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_Num_Sources" type="xs:int" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_Source_Type" minOccurs="1" maxOccurs="unbounded">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="H"/>
<xs:enumeration value="I"/>
<xs:enumeration value="F"/>
<xs:enumeration value="T"/>
<xs:enumeration value="M"/>
<xs:enumeration value="Q"/>
<xs:enumeration value="S"/>
<xs:enumeration value="LS"/>
<xs:enumeration value="DL"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CAM_Replaceable_Sources" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_Nominal_Source_Power" type="xs:decimal" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="CAM_InsulationClass" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_IP_Body" type="xs:int" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_IP_Box" type="xs:int" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_IK" type="xs:int" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_Surge" type="xs:int" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_IDPhotobiological_Risk" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="CAM_Threshold_Distace_PhRisk" type="xs:decimal" minOccurs="0" maxOccurs="1"/>
<xs:element name="CAM_Rated_Life" type="xs:string" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_Failure_Index" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="CAM_Luminous_Efficacy" type="xs:decimal" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_Dff" type="xs:decimal" minOccurs="1" maxOccurs="1"/>
<xs:element name="CAM_Uclass" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="U1"/>
<xs:enumeration value="U2"/>
<xs:enumeration value="U3"/>
<xs:enumeration value="U4"/>
<xs:enumeration value="U5"/>
<xs:enumeration value=""/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CAM_G_Class" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value=""/>
<xs:enumeration value="G*1"/>
<xs:enumeration value="G*2"/>
<xs:enumeration value="G*3"/>
<xs:enumeration value="G*4"/>
<xs:enumeration value="G*5"/>
<xs:enumeration value="G*6"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="CAM_IPEA" type="du_type" minOccurs="5" maxOccurs="5"/>
<xs:element name="CAM_Warranty" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="CAM_ID_Mark" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="CAM_ID_Mark_Link" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Как я могу интегрировать мою схему в элемент «CustomData» основного?
Большое спасибо.