Ciao a tutti,
ho uno schema XML abbastanza complesso per gestire dati fotometrici.
In questo schema, con l'elemento "CustomData", è possibile inserire nuovi elementi non previsti dallo schema iniziale.
codice:<?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>
Come vedete, lo schema base all'interno di "CustomData" prevede già gli elementi "Name" e "UniqueIdentifier" mentre altri possono essere inseriti arbitrariamente.
Attraverso lo schema sotto, ho creato i miei "CustomData".
Come faccio ad integrarlo all'interno dell'elemento "CustomData" dello schema originale?
codice:<?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>

Rispondi quotando