У меня есть около 10 xml-схем, которые я должен очистить путем алфавитизации элементов / типов.Некоторое время я гуглил и нашел чье-то решение,
Здесь
, которое по какой-то причине мне не подходит (оно пропускается с xsd: schema до xsd:comlplexType name = Account).Вот упрощенный пример, поскольку вы можете видеть, что первые 10 или около того элементов расположены по порядку, но когда разработчик добавил 2 новых поля, они вышли из строя (crossRef и ID).Я хочу убедиться, что CrossRef и ID располагаются в алфавитном порядке не только в последовательности, определенной как часть объекта Account, но также, если они были определены как их собственные типы отдельно (эти два поля не являются, но остальные являются), чтоих определения также будут в алфавитном порядке с остальными определениями.
<?xml version="1.0" encoding="utf-8"?><xsd:schema targetNamespace="####" xmlns="####" xmlns:lms.base="####/base" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import namespace="###/base" schemaLocation="Base.xsd" />
<xsd:element name="Account" type="Account" />
<xsd:complexType name="Account" >
<xsd:complexContent >
<xsd:extension base="lms.base:ExtensionBase">
<xsd:sequence >
<xsd:element name="Address" type="lms.base:Address" minOccurs="0" maxOccurs ="unbounded" />
<xsd:element name="BusinessSegment" type="lms.base:BusinessSegment" minOccurs ="0" maxOccurs ="1" />
<xsd:element name="Name" type="AccountName" minOccurs ="0" maxOccurs ="1" />
<xsd:element name="Number" type="AccountNumber" minOccurs ="0" maxOccurs ="1" />
<xsd:element name="Office" type="AccountOffice" minOccurs ="0" maxOccurs ="1" />
<xsd:element name="Status" type="AccountStatus" minOccurs ="0" maxOccurs ="1" />
<xsd:element name="UWMemo" type="lms.base:UWMemo" minOccurs ="0" maxOccurs ="1" />
<xsd:element name="CrossRef" type="lms.base:string-minLength" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="ID" type="xsd:long" />
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:simpleType name="AccountID">
<xsd:restriction base="lms.base:ID" />
</xsd:simpleType>
<xsd:simpleType name="AccountName">
<xsd:restriction base="lms.base:string-minLength" />
</xsd:simpleType>
<xsd:simpleType name="AccountNumber">
<xsd:restriction base="lms.base:string-minLength" />
</xsd:simpleType>
<xsd:simpleType name="AccountStatus">
<xsd:restriction base="lms.base:string-minLength">
<xsd:enumeration value="Not_Assigned" />
<xsd:enumeration value="Active" />
<xsd:enumeration value="Inactive" />
<xsd:enumeration value="Targeted/Prospect" />
<xsd:enumeration value="Lost" />
<xsd:enumeration value="Submission Declined" />
<xsd:enumeration value="Terminated" />
<xsd:enumeration value="Claim" />
<xsd:enumeration value="Watch List" />
<xsd:enumeration value="H.O. Hold/Suspend" />
<xsd:enumeration value="Infrequent" />
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="AccountOffice">
<xsd:complexContent>
<xsd:extension base="lms.base:Value"/>
</xsd:complexContent>
</xsd:complexType>