Wenn ich eine XML-Beispieldatei verwenden, um eine XSD zu generieren, mit Visual Studio und Oxygen, generiert es eine Datei mit Tonnen <xs:element ref="ELEMENTNAME" />
, wobei Elementname ist ein tatsächlicher Elementname. Später in der Datei hat es ein Element <xs:element name="ELEMENTNAME" type="xs:string" />
, wo es definiert, was das Element ist. Zum Beispiel, hier ist ein Auszug:Generiere XSD-Datei ohne REF-Elemente - Ich möchte nur eine "literal" XSD-Datei
<xs:element name="Header">
<xs:complexType>
<xs:sequence>
<xs:element ref="VersionNumber" />
<xs:element ref="BillerGroupID" />
<xs:element ref="BillerGroupShortName" />
<xs:element ref="BillerID" />
<xs:element ref="BillerShortName" />
<xs:element ref="FileIndicator" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="VersionNumber" type="xs:string" />
<xs:element name="BillerGroupID" type="xs:string" />
<xs:element name="BillerGroupShortName" type="xs:string" />
<xs:element name="BillerID" type="xs:string" />
<xs:element name="BillerShortName" type="xs:string" />
<xs:element name="FileIndicator" type="xs:string" />
Hier ist das Problem - ich bin mit Microsoft Biztalk, und es sieht jeden einzelnen „Element“ Tag als verfügbares Schema, weil sie alle auf der obersten Ebene sind - Kopfzeile, zusammen mit jedem einzelnen Kindelement. Ich möchte nur ein Schema verfügbar machen - in diesem Fall den Header - und den Rest ausblenden.
Die offensichtliche Lösung manuell zu sein scheint, dass meine Datei bearbeiten so aussehen, manuell die REF-Anweisungen entfernen:
<xs:element name="Header">
<xs:complexType>
<xs:sequence>
<xs:element name="VersionNumber" type="xs:string" />
<xs:element name="BillerGroupID" type="xs:string" />
<xs:element name="BillerGroupShortName" type="xs:string" />
<xs:element name="BillerID" type="xs:string" />
<xs:element name="BillerShortName" type="xs:string" />
<xs:element name="FileIndicator" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
Da jedoch meine Datei sehr groß ist und Tausende von Elementen enthält, ist dies nicht wirklich machbar. Gibt es eine Möglichkeit, meinem Tool zu sagen, dass es die Datei generieren soll, ohne REFs zu verwenden, sondern stattdessen eine Kopie des Elements an die Stelle stellt, an der es statt auf der Stammebene sein soll?
Ich musste die "Well-formed XML" Option installieren, aber es funktionierte wie ein Charme, ohne eine einzige REF. Danke für deinen Tipp! – SqlRyan