EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

xsdcxx – Online in der Cloud

Führen Sie xsdcxx im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl xsdcxx, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


xsdcxx – W3C-XML-Schema-zu-C++-Compiler

ZUSAMMENFASSUNG


xsdcxx Befehl [ Optionen ] Datei [ Datei ...]
xsdcxx Hilfe [ Befehl ]
xsdcxx Version

BESCHREIBUNG


xsdcxx generiert vokabularspezifisches, statisch typisiertes C++-Mapping aus dem W3C-XML-Schema
Definitionen. Die zu erstellende bestimmte Zuordnung wird von a ausgewählt Befehl. Jede Zuordnung hat eine
Anzahl der Mapping-spezifischen Optionen das sollte, falls vorhanden, nach dem erscheinen Befehl. Eingang
Dateien sollten W3C-XML-Schemadefinitionen sein. Der genaue Satz der generierten Dateien hängt davon ab
abhängig von der ausgewählten Zuordnung und den Optionen.

BEFEHLE


cxx-Baum
Generieren Sie die C++/Tree-Zuordnung. Für jede Eingabedatei im Formular name.xsd
Folgende C++-Dateien werden generiert: name.hxx (Header-Datei), name.ixx (Inline-Datei,
nur generiert, wenn die --generate-inline Option angegeben ist), name.cxx (Quelle
Datei) und name-fwd.hxx (Forward-Deklarationsdatei, wird nur generiert, wenn die
--generate-forward Option angegeben).

cxx-parser
Generieren Sie die C++/Parser-Zuordnung. Für jede Eingabedatei im Formular name.xsd
Folgende C++-Dateien werden generiert: name-pskel.hxx (Parser-Skelett-Header-Datei),
name-pskel.ixx (Parser-Skelett-Inline-Datei, wird nur generiert, wenn die --generieren-
Inline- Option angegeben ist), und name-pskel.cxx (Parser-Skelett-Quelldatei). Wenn
--generate-noop-impl or --generate-print-impl Option angegeben ist, die
Folgende zusätzliche Beispielimplementierungsdateien werden generiert: name-pimpl.hxx
(Parser-Implementierungs-Header-Datei) und name-pimpl.cxx (Parser-Implementierung
Quelldatei). Wenn die --generate-test-driver Option angegeben ist, die zusätzliche
Name-Treiber.cxx Die Testtreiberdatei wird generiert.

Hilfe Nutzungsinformationen drucken und beenden. Verwenden

xsdcxx Hilfe Befehl

für befehlsspezifische Hilfe.

Version
Version drucken und beenden.

OPTIONAL


Befehlsspezifisch Optionen, falls vorhanden, sollte nach dem entsprechenden erscheinen Befehl.

verbreitet Optionen
--std Version
Geben Sie den C++-Standard an, dem der generierte Code entsprechen soll. Gültige Werte
sind c ++ 98 (Standard) und c ++ 11.

Der C++-Standard beeinflusst verschiedene Aspekte des generierten Codes, die besprochen werden
Näheres finden Sie in verschiedenen Mapping-spezifischen Dokumentationen. Insgesamt, wenn C++11 ist
Wenn diese Option ausgewählt ist, basiert der generierte Code auf der Bewegungssemantik und den Verwendungszwecken std :: unique_ptr
statt veraltet std::auto_ptr.

Wenn der C++11-Modus ausgewählt ist, müssen Sie normalerweise keine zusätzlichen Schritte ausführen
außer C++11 in Ihrem C++-Compiler zu aktivieren, falls erforderlich. Der XSDCXX-Compiler wird
Fügen Sie automatisch die erforderlichen Makrodefinitionen zu den generierten Header-Dateien hinzu
wechselt die Nur-Header-Laufzeitbibliothek XSDCXX (libxsd) in den C++11-Modus.
Wenn Sie jedoch einen der XSDCXX-Laufzeitheader direkt in Ihre einfügen
Anwendung (normalerweise fügen Sie nur die generierten Header hinzu), dann benötigen Sie
zu definieren XSD_CXX11 Makro für Ihr gesamtes Projekt.

--char-Typ tippe
Generieren Sie Code mit dem bereitgestellten Zeichen tippe anstelle der Standardeinstellung verkohlen. Gültig
Werte sind verkohlen und wchar_t.

--char-encoding enc
Geben Sie die Zeichenkodierung an, die im generierten Code verwendet werden soll. Gültig
Werte für die verkohlen Zeichentyp sind utf8 (Standard), ISO8859-1, Lcp (Xerces-C++
lokale Codepage) und Original. Wenn Sie bestehen Original als Wert, den Sie dann benötigen
um den Transcoder-Implementierungsheader für Ihre Codierung am Anfang einzuschließen
der generierten Header-Dateien (siehe --hxx-prologue Möglichkeit).

NB: wchar_t Der einzig gültige Wert ist der Zeichentyp Auto und die Kodierung ist
Abhängig von der Datei wird automatisch zwischen UTF-16 und UTF-32/UCS-4 ausgewählt wchar_t
Schriftgröße.

--output-dir dir
Schreiben Sie generierte Dateien in dir anstelle des aktuellen Verzeichnisses.

--generate-inline
Generieren Sie einfache Funktionen inline. Diese Option löst die Erstellung der Inline-Datei aus.

--generate-xml-schema
Generieren Sie eine C++-Headerdatei, als ob das zu kompilierende Schema das XML-Schema definieren würde
Namensraum. Für die C++/Tree-Zuordnung enthält die resultierende Datei Definitionen
für alle integrierten XML-Schema-Typen. Für die C++/Parser-Zuordnung die resultierende Datei
enthält Definitionen für alle Parser-Grundgerüste und -Implementierungen
entsprechend den integrierten XML-Schema-Typen.

Die dem Compiler bereitgestellte Schemadatei muss nicht vorhanden sein und wird nur zum Ableiten verwendet
der Name der resultierenden Header-Datei. Benutzen Sie die --extern-xml-schema Option zu
Fügen Sie diese Datei in die generierten Dateien für andere Schemata ein.

--extern-xml-schema Datei
Fügen Sie eine abgeleitete Header-Datei hinzu Datei anstatt das XML-Schema zu generieren
Inline-Namespace-Zuordnung. Die bereitgestellte Datei muss nicht vorhanden sein und wird nur verwendet
Leiten Sie den Namen der enthaltenen Header-Datei ab. Benutzen Sie die --generate-xml-schema zu erhalten
um diese Header-Datei zu generieren.

--namespace-map xns=cns
XML-Schema-Namespace zuordnen xns zum C++-Namespace cns. Wiederholen Sie diese Option zur Angabe
Zuordnung für mehr als einen XML-Schema-Namespace. Zum Beispiel die folgende Option:

--namespace-map http://example.com/foo/bar=foo::bar

Werde das kartieren http://example.com/foo/bar XML-Schema-Namespace zum foo::bar C + +
Namespace.

--namespace-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Übersetzen des XML-Schema-Namespace verwendet werden
Namen zu C++-Namespace-Namen. Regex ist ein Perl-ähnlicher regulärer Ausdruck im Formular
/Anleitungen/Ersatz/. Stattdessen kann jedes beliebige Zeichen als Trennzeichen verwendet werden /.
Escapezeichen des Trennzeichens in Anleitungen or Ersatz wird nicht unterstützt.

Alle regulären Ausdrücke werden mit dem zuletzt angegebenen in einen Stapel verschoben
Ausdruck zuerst betrachtet. Die erste erfolgreiche Übereinstimmung wird verwendet. Regulär
Ausdrücke werden auf eine Zeichenfolge im Formular angewendet

Dateinamen Namensraum

Wenn Sie beispielsweise eine Datei haben hallo.xsd mit Namensraum http://example.com/hello und
Sie laufen xsd In dieser Datei lautet die betreffende Zeichenfolge dann:

hallo.xsd. http://example.com/hello

Für den integrierten XML-Schema-Namespace lautet die Zeichenfolge:

XMLSchema.xsd http://www.w3.org/2001/XMLSchema

Die folgenden drei Schritte werden für jeden regulären Ausdruck bis zur Übereinstimmung ausgeführt
gefunden:

1. Der Ausdruck wird angewendet und wenn das Ergebnis leer ist, wird der nächste Ausdruck angewendet
in Betracht gezogen.

2. Alle / werden ersetzt durch ::.

3. Das Ergebnis wird als gültiger C++-Bereichsname überprüft (z. B. foo::bar). Wenn das
Wenn der Test erfolgreich verläuft, wird das Ergebnis als C++-Namespace-Name verwendet.

Als Beispiel ordnet der folgende Ausdruck XML-Schema-Namespaces im Formular zu
http://example.com/foo/bar zu C++-Namespaces im Formular foo::bar:

%.* http://example.com/(.+)%$1%

Siehe auch den Abschnitt REGEX- UND SHELL-QUOTING weiter unten.

--namespace-regex-trace
Verfolgen Sie den Prozess der Anwendung regulärer Ausdrücke, die mit angegeben werden --namespace-
Regex Möglichkeit. Verwenden Sie diese Option, um herauszufinden, warum Ihre regulären Ausdrücke nicht funktionieren
was Sie von ihnen erwartet haben.

--reserved-name n[=r]
Namen hinzufügen n zur Liste der Namen, die nicht als Bezeichner verwendet werden sollen. Der Name
kann optional gefolgt werden von = und der Ersatzname r das sollte genutzt werden
stattdessen. Alle C++-Schlüsselwörter sind bereits in dieser Liste enthalten.

--include-with-brackets
Verwenden Sie beim Generieren spitze Klammern (<>) anstelle von Anführungszeichen („“) #einschließen Richtlinien.

--include-Präfix Präfix
Speichern Präfix zu erzeugen #einschließen Direktive Pfade.

Wenn Ihr Schema beispielsweise das folgende Importelement enthält

<importieren namespace="..." schemaLocation="base.xsd"/>

und dieses Fragment mit zusammengestellt --include-Präfix Schemata/, dann das Include
Direktive im generierten Code wäre:

#einschließen „schemas/base.hxx“

--include-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zur Transformation verwendet werden #einschließen Richtlinien
Pfade. Regex ist ein Perl-ähnlicher regulärer Ausdruck im Formular /Anleitungen/Ersatz/.
Stattdessen kann jedes beliebige Zeichen als Trennzeichen verwendet werden /. Escapezeichen des Trennzeichens
Zeichen Anleitungen or Ersatz wird nicht unterstützt.

Alle regulären Ausdrücke werden mit dem zuletzt angegebenen in einen Stapel verschoben
Ausdruck zuerst betrachtet. Die erste erfolgreiche Übereinstimmung wird verwendet.

Der folgende Ausdruck transformiert beispielsweise Pfade im Formular
schemas/foo/bar zu Pfaden im Formular generiert/foo/bar:

%schemas/(.+)%generated/$1%

Siehe auch den Abschnitt REGEX- UND SHELL-QUOTING weiter unten.

--include-regex-trace
Verfolgen Sie den Prozess der Anwendung regulärer Ausdrücke, die mit angegeben werden --enthalten-
Regex Möglichkeit. Verwenden Sie diese Option, um herauszufinden, warum Ihre regulären Ausdrücke nicht funktionieren
was Sie von ihnen erwartet haben.

--guard-präfix Präfix
Speichern Präfix zu generierten Header-Inclusion-Guards. Das Präfix wird in „upper“ umgewandelt
Groß- und Kleinschreibung und Zeichen, die in einem Präprozessormakronamen unzulässig sind, werden durch ersetzt
Unterstriche. Wenn diese Option nicht angegeben ist, ist der Verzeichnisteil der Eingabe
Als Präfix wird die Schemadatei verwendet.

--hxx-Suffix Suffix
Verwenden Sie die bereitgestellten Suffix anstelle der Standardeinstellung .hxx um den Namen zu konstruieren
Header-Datei. Beachten Sie, dass dieses Suffix auch zum Erstellen von Namen von Header-Dateien verwendet wird
entsprechend den enthaltenen/importierten Schemata.

--ixx-suffix Suffix
Verwenden Sie die bereitgestellten Suffix anstelle der Standardeinstellung .ixx um den Namen zu konstruieren
Inline-Datei.

--cxx-suffix Suffix
Verwenden Sie die bereitgestellten Suffix anstelle der Standardeinstellung .cxx um den Namen zu konstruieren
Quelldatei.

--fwd-suffix Suffix
Verwenden Sie die bereitgestellten Suffix anstelle der Standardeinstellung -fwd.hxx den Namen konstruieren
die Forward-Deklarationsdatei.

--hxx-regex Regex
Verwenden Sie den bereitgestellten Ausdruck, um den Namen der Header-Datei zu erstellen. Regex ist eine
Perl-ähnlicher regulärer Ausdruck im Formular /Anleitungen/Ersatz/. Beachten Sie, dass dies
Ausdruck wird auch verwendet, um Namen der entsprechenden Header-Dateien zu erstellen
enthaltene/importierte Schemata. Siehe auch den Abschnitt REGEX- UND SHELL-QUOTING weiter unten.

--ixx-regex Regex
Verwenden Sie den bereitgestellten Ausdruck, um den Namen der Inline-Datei zu erstellen. Regex ist eine
Perl-ähnlicher regulärer Ausdruck im Formular /Anleitungen/Ersatz/. Siehe auch REGEX
UND SHELL-ZITAT-Abschnitt weiter unten.

--cxx-regex Regex
Verwenden Sie den bereitgestellten Ausdruck, um den Namen der Quelldatei zu erstellen. Regex ist eine
Perl-ähnlicher regulärer Ausdruck im Formular /Anleitungen/Ersatz/. Siehe auch REGEX
UND SHELL-ZITAT-Abschnitt weiter unten.

--fwd-regex Regex
Verwenden Sie den bereitgestellten Ausdruck, um den Namen der Forward-Deklarationsdatei zu erstellen.
Regex ist ein Perl-ähnlicher regulärer Ausdruck im Formular /Anleitungen/Ersatz/. Siehe auch
den Abschnitt REGEX- UND SHELL-QUOTING weiter unten.

--hxx-prologue Text
Insert Text am Anfang der Header-Datei.

--ixx-prolog Text
Insert Text am Anfang der Inline-Datei.

--cxx-prologue Text
Insert Text am Anfang der Quelldatei.

--fwd-prologue Text
Insert Text am Anfang der Forward-Deklarationsdatei.

--Prolog Text
Insert Text am Anfang jeder generierten Datei, für die es keine Datei gibt.
spezifischer Prolog.

--hxx-epilog Text
Insert Text am Ende der Header-Datei.

--ixx-Epilog Text
Insert Text am Ende der Inline-Datei.

--cxx-epilog Text
Insert Text am Ende der Quelldatei.

--fwd-epilog Text
Insert Text am Ende der Forward-Deklarationsdatei.

--Epilog Text
Insert Text am Ende jeder generierten Datei, für die es keine dateispezifischen Angaben gibt
Epilog.

--hxx-prologue-datei Datei
Fügen Sie den Inhalt ein Datei am Anfang der Header-Datei.

--ixx-prologue-datei Datei
Fügen Sie den Inhalt ein Datei am Anfang der Inline-Datei.

--cxx-prologue-datei Datei
Fügen Sie den Inhalt ein Datei am Anfang der Quelldatei.

--fwd-prologue-file Datei
Fügen Sie den Inhalt ein Datei am Anfang der Forward-Deklarationsdatei.

--prologue-datei Datei
Fügen Sie den Inhalt ein Datei am Anfang jeder generierten Datei, für die
Es gibt keine dateispezifische Prologdatei.

--hxx-epilogue-file Datei
Fügen Sie den Inhalt ein Datei am Ende der Header-Datei.

--ixx-epilogue-file Datei
Fügen Sie den Inhalt ein Datei am Ende der Inline-Datei.

--cxx-epilogue-file Datei
Fügen Sie den Inhalt ein Datei am Ende der Quelldatei.

--fwd-epilogue-file Datei
Fügen Sie den Inhalt ein Datei am Ende der Forward-Deklarationsdatei.

--epilog-datei Datei
Fügen Sie den Inhalt ein Datei am Ende jeder generierten Datei, für die es eine gibt
keine dateispezifische Epilogdatei.

--export-symbol Symbol
Insert Symbol an Stellen, an denen DLL-Steueranweisungen exportieren/importieren
(__declspec(dllexport/dllimport)) sind notwendig.

--export-xml-schema
Exportieren/Importieren Sie Typen im XML-Schema-Namespace mithilfe des bereitgestellten Exportsymbols
an. Nach der Installation können Sie HEIC-Dateien mit der --export-symbol Option. Die XSD_NO_EXPORT Mit einem Makro kann dies weggelassen werden
Code während der C++-Kompilierung, was nützlich sein kann, wenn Sie denselben verwenden möchten
Generierter Code über mehrere Plattformen hinweg.

--export-maps
Exportieren Sie Polymorphismus-Unterstützungskarten aus einer Win32-DLL, in der sich dieser generierte Code befindet
platziert. Dies ist erforderlich, wenn Ihre Typhierarchie auf mehrere DLLs aufgeteilt ist
da andernfalls jede DLL über einen eigenen Kartensatz verfügt. In dieser Situation die
Generierter Code für die DLL, der Basistypen und/oder Substitutionsgruppen enthält
Heads sollten mit dieser Option und der generierte Code für alle anderen DLLs kompiliert werden
sollte mit kompiliert werden --import-maps. Diese Option ist nur zusammen mit gültig
--generate-polymorphicdem „Vermischten Geschmack“. Seine XSD_NO_EXPORT Mit einem Makro kann dieser Code weggelassen werden
während der C++-Kompilierung, was nützlich sein kann, wenn Sie dasselbe verwenden möchten
Generierter Code über mehrere Plattformen hinweg.

--import-maps
Importieren Sie Polymorphismus-Unterstützungskarten in eine Win32-DLL oder eine ausführbare Datei, in die diese importiert werden soll
Der generierte Code ist verlinkt. Siehe die --export-maps Weitere Informationen finden Sie in der Optionsdokumentation.
Diese Option ist nur zusammen mit gültig --generate-polymorphicdem „Vermischten Geschmack“. Seine XSD_NO_EXPORT
Das Makro kann verwendet werden, um diesen Code während der C++-Kompilierung wegzulassen, was nützlich sein kann, wenn
Sie möchten denselben generierten Code auf mehreren Plattformen verwenden.

--generate-dep
Generieren um Abhängigkeitsinformationen. Diese Option löst die Erstellung des aus .d
Datei, die die Abhängigkeiten der generierten Dateien von der Hauptschemadatei als enthält
sowie alle Schemadateien, die es transitiv einschließt/importiert. Das
Die Abhängigkeitsdatei wird dann normalerweise in die Hauptdatei eingebunden Makefile die Umsetzung
automatische Abhängigkeitsverfolgung.

Beachten Sie auch, dass die automatische Abhängigkeitsgenerierung in der dateibezogenen Datei nicht unterstützt wird.
Typmodus (--file-per-type). In diesem Fall werden alle generierten Dateien erzeugt
mit einem einzigen Compiler-Aufruf und hängen von allen Schemata ab. Infolgedessen ist es so
Es ist einfacher, eine solche Abhängigkeit manuell herzustellen, vielleicht mit Hilfe von
--file-list* Optionen.

--generate-dep-only
Generieren um Nur Abhängigkeitsinformationen.

--dep-phony
Generieren Sie gefälschte Ziele für enthaltene/importierte Schemadateien, wodurch jedes davon abhängig wird
auf nichts. Solche Dummy-Regeln lassen sich umgehen um Fehler, die durch die Entfernung von verursacht werden
Schemadateien, ohne auch die Abhängigkeitsdatei entsprechend zu aktualisieren.

--dep-target Ziel
Ändern Sie das Ziel der Abhängigkeitsregel. Standardmäßig enthält es alle generierten Daten
C++-Dateien sowie die Abhängigkeitsdatei selbst, ohne Verzeichnispräfixe. Wenn
Wenn Sie mehrere Ziele benötigen, können Sie diese als einzelnes Leerzeichen angeben.
getrenntes Argument oder Sie können diese Option mehrmals wiederholen.

--dep-suffix Suffix
Verwenden Sie die bereitgestellten Suffix anstelle der Standardeinstellung .d um den Namen zu konstruieren
Abhängigkeitsdatei.

--dep-regex Regex
Verwenden Sie den bereitgestellten Ausdruck, um den Namen der Abhängigkeitsdatei zu erstellen. Regex is
ein Perl-ähnlicher regulärer Ausdruck im Formular /Anleitungen/Ersatz/. Siehe auch die
Siehe den Abschnitt „REGEX- UND SHELL-QUOTING“ weiter unten.

--disable-warning warnen
Druckwarnung mit ID deaktivieren warnen. Wenn alle wird dann für die Warnungs-ID angegeben
Alle Warnungen sind deaktiviert.

--options-Datei Datei
Weitere Optionen lesen Sie unter Datei. Jede Option sollte in einer separaten Zeile erscheinen
optional gefolgt von einem Leerzeichen und einem Optionswert. Leere Zeilen und Zeilenanfang
mit # werden ignoriert. Optionswerte können in doppelte () eingeschlossen werden.") oder Single (')
Anführungszeichen, um führende und nachfolgende Leerzeichen beizubehalten und Leerzeichen anzugeben
Werte. Wenn der Wert selbst nachgestellte oder führende Anführungszeichen enthält, schließen Sie ihn mit einem ein
zusätzliche Anführungszeichen, zum Beispiel '"X"'. Nicht führende und nicht nachgestellte Anführungszeichen sind
als Teil des Optionswerts interpretiert.

Die Semantik der Bereitstellung von Optionen in einer Datei entspricht der Bereitstellung derselben
Satz von Optionen in der gleichen Reihenfolge in der Befehlszeile an der Stelle, an der die
--options-Datei Option angegeben ist, mit der Ausnahme, dass die Shell mit Escapezeichen und Anführungszeichen versehen ist
nicht benötigt. Sie können diese Option wiederholen, um mehr als eine Optionsdatei anzugeben.

--show-sloc
Zeigt die Anzahl der generierten physischen Quellcodezeilen (SLOC) an.

--sloc-limit num
Stellen Sie sicher, dass die Anzahl der generierten physischen Quellcodezeilen (SLOC) nicht zunimmt
überschreiten num.

--proprietäre-Lizenz
Geben Sie an, dass der generierte Code unter einer proprietären Lizenz lizenziert ist
die GPL.

--custom-literals Datei
Laden Sie eine benutzerdefinierte XML-Zeichenfolge in C++-Literalzuordnungen von Datei. Dieser Mechanismus kann sein
nützlich, wenn Sie eine benutzerdefinierte Zeichenkodierung verwenden und einige der Zeichenfolgen in Ihrem
Schemata, zum Beispiel Element-/Attributnamen oder Aufzählungswerte, enthalten nicht
ASCII-Zeichen. In diesem Fall müssen Sie eine benutzerdefinierte Zuordnung zu C++ bereitstellen
Literale für solche Strings. Das Format dieser Datei ist in angegeben Brauch-
literale.xsd XML-Schemadatei, die im Dokumentationsverzeichnis zu finden ist.

--preserve-anonymous
Behalten Sie anonyme Typen bei. Standardmäßig werden anonyme Typen automatisch mit benannt
Namen, die von den umschließenden Elementen/Attributen abgeleitet sind. Weil Mappings implementiert sind
Da dieser Compiler die Benennung aller Typen erfordert, ist diese Option nur dann sinnvoll, wenn Sie
Sie möchten sicherstellen, dass Ihre Schemata keine anonymen Typen haben.

--show-anonymous
Elemente und Attribute anonymer Typen anzeigen. Diese Option macht nur
Sinn zusammen mit dem --preserve-anonymous .

--anonymous-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Ableiten von Namen für Anonymous verwendet werden
Typen aus den umschließenden Attributen/Elementen. Regex ist ein Perl-ähnlicher Regular
Ausdruck in der Form /Anleitungen/Ersatz/. Als Zeichen kann jedes beliebige Zeichen verwendet werden
Trennzeichen statt /. Escapezeichen des Trennzeichens in Anleitungen or
Ersatz wird nicht unterstützt.

Alle regulären Ausdrücke werden mit dem zuletzt angegebenen in einen Stapel verschoben
Ausdruck zuerst betrachtet. Die erste erfolgreiche Übereinstimmung wird verwendet. Regulär
Ausdrücke werden auf eine Zeichenfolge im Formular angewendet

Dateinamen Namensraum xpath

Zum Beispiel:

hallo.xsd http://example.com/hello Element

hallo.xsd http://example.com/hello Typ/Element

Der folgende Ausdruck sorgt beispielsweise dafür, dass alle abgeleiteten Namen mit beginnen
Großbuchstaben. Dies kann nützlich sein, wenn Ihre Namenskonvention einen Typ erfordert
Namen, die mit Großbuchstaben beginnen:

%.* .* (.+/)*(.+)%\u$2%

Siehe auch den Abschnitt REGEX- UND SHELL-QUOTING weiter unten.

--anonymous-regex-trace
Verfolgen Sie den Prozess der Anwendung regulärer Ausdrücke, die mit angegeben werden --anonym-
Regex Möglichkeit. Verwenden Sie diese Option, um herauszufinden, warum Ihre regulären Ausdrücke nicht funktionieren
was Sie von ihnen erwartet haben.

--Landkarte ol=nl
Ordnen Sie den ursprünglichen Schemaspeicherort zu ol das im XML-Schema angegebene Include oder ist
Importieren Sie Elemente in den neuen Schemaspeicherort nl. Wiederholen Sie diese Option, um mehr als eine zuzuordnen
Schemaspeicherort. Die folgende Option ordnet beispielsweise Folgendes zu:
http://example.com/foo.xsd URL zum foo.xsd lokale Datei.

--Landkarte http://example.com/foo.xsd=foo.xsd

--location-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Zuordnen von Schemaspeicherorten verwendet werden
Im XML-Schema angegebene Include- oder Importelemente. Regex ist ein Perl-ähnliches
regulärer Ausdruck im Formular /Anleitungen/Ersatz/. Als Zeichen kann jedes beliebige Zeichen verwendet werden
ein Trennzeichen statt /. Escapezeichen des Trennzeichens in Anleitungen or
Ersatz wird nicht unterstützt. Alle regulären Ausdrücke werden in einen Stapel verschoben
wobei der zuletzt angegebene Ausdruck zuerst berücksichtigt wird. Das erste Match, das erfolgreich ist
wird eingesetzt.

Der folgende Ausdruck ordnet beispielsweise URL-Positionen im Formular zu
http://example.com/foo/bar.xsd zu lokalen Dateien im Formular bar.xsd:

%http://.+/(.+)%$1%

Siehe auch den Abschnitt REGEX- UND SHELL-QUOTING weiter unten.

--location-regex-trace
Verfolgen Sie den Prozess der Anwendung regulärer Ausdrücke, die mit angegeben werden --Standort-
Regex Möglichkeit. Verwenden Sie diese Option, um herauszufinden, warum Ihre regulären Ausdrücke nicht funktionieren
was Sie von ihnen erwartet haben.

--file-per-type
Generieren Sie einen separaten Satz von C++-Dateien für jeden im XML-Schema definierten Typ. Notiz
dass Sie in diesem Modus nur das/die Root-Schema(s) kompilieren müssen und der Code wird erstellt
für alle eingebundenen und importierten Schemata generiert. Dieser Kompilierungsmodus ist in erster Linie
Nützlich, wenn einige Ihrer Schemata nicht separat kompiliert werden können oder zyklisch sind
Abhängigkeiten, die Typvererbung beinhalten. Weitere Optionen im Zusammenhang mit diesem Modus
sind: --type-file-regex, --schema-file-regex, --fat-type-file und --Dateiliste.

--type-file-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Übersetzen von Typnamen in eine Datei verwendet werden
Namen, wenn die --file-per-type Option ist angegeben. Regex ist ein Perl-ähnlicher Regular
Ausdruck in der Form /Anleitungen/Ersatz/. Als Zeichen kann jedes beliebige Zeichen verwendet werden
Trennzeichen statt /. Escapezeichen des Trennzeichens in Anleitungen or
Ersatz wird nicht unterstützt. Alle regulären Ausdrücke werden in einen Stapel verschoben
wobei der zuletzt angegebene Ausdruck zuerst berücksichtigt wird. Das erste Match, das erfolgreich ist
wird eingesetzt. Reguläre Ausdrücke werden auf eine Zeichenfolge im Formular angewendet

Namensraum Modellname

Beispielsweise der folgende Expression-Maps-Typ foo das ist in der definiert
http://example.com/bar Namespace in Dateinamen umwandeln Bar-Foo:

%http://example.com/(. +) (.+)%$1-$2%

Siehe auch den Abschnitt REGEX- UND SHELL-QUOTING weiter unten.

--type-file-regex-trace
Verfolgen Sie den Prozess der Anwendung regulärer Ausdrücke, die mit angegeben werden --type-file-
Regex Möglichkeit. Verwenden Sie diese Option, um herauszufinden, warum Ihre regulären Ausdrücke nicht funktionieren
was Sie von ihnen erwartet haben.

--schema-file-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Übersetzen von Schemadateinamen verwendet werden
wenn das --file-per-type Option ist angegeben. Regex ist ein Perl-ähnlicher Regular
Ausdruck in der Form /Anleitungen/Ersatz/. Als Zeichen kann jedes beliebige Zeichen verwendet werden
Trennzeichen statt /. Escapezeichen des Trennzeichens in Anleitungen or
Ersatz wird nicht unterstützt. Alle regulären Ausdrücke werden in einen Stapel verschoben
wobei der zuletzt angegebene Ausdruck zuerst berücksichtigt wird. Das erste Match, das erfolgreich ist
wird eingesetzt. Reguläre Ausdrücke werden auf den absoluten Dateisystempfad von a angewendet
Schemadatei und das Ergebnis, einschließlich des Verzeichnisteils, falls vorhanden, wird zur Ableitung verwendet
#einschließen Direktivenpfade sowie die generierten C++-Dateipfade. Diese Option,
zusammen mit --type-file-regex sind in erster Linie nützlich, um die generierten Dateien dort abzulegen
Unterverzeichnisse oder um Dateinamenskonflikte zu lösen.

Der folgende Ausdruck ordnet beispielsweise Schemadateien im zu foo/1.0.0/
Unterverzeichnis zu den Dateien im foo/ Unterverzeichnis. Infolgedessen ist die #einschließen
Direktivenpfade für solche Schemata finden Sie im foo/schema.hxx Form und die
Generierte C++-Dateien werden im abgelegt foo/ Unterverzeichnis:

%.*/foo/1.0.0/(.+)%foo/$1%

Siehe auch den Abschnitt REGEX- UND SHELL-QUOTING weiter unten.

--schema-file-regex-trace
Verfolgen Sie den Prozess der Anwendung regulärer Ausdrücke, die mit angegeben werden --schema-file-
Regex Möglichkeit. Verwenden Sie diese Option, um herauszufinden, warum Ihre regulären Ausdrücke nicht funktionieren
was Sie von ihnen erwartet haben.

--fat-type-file
Generieren Sie Code, der globalen Elementen entspricht, in Typdateien statt in Schemata
Dateien, wenn die --type-file-regex Option angegeben ist. Diese Option ist in erster Linie
nützlich, wenn Sie versuchen, die Menge an Objektcode zu minimieren, der mit einem verknüpft ist
ausführbar, indem kompilierter generierter Code in eine statische (Archiv-)Bibliothek gepackt wird.

--Dateiliste Datei
Schreiben Sie eine Liste der generierten C++-Dateien in Datei. Diese Option ist vor allem in der nützlich
Datei-pro-Typ-Kompilierungsmodus (--file-per-type), um eine Liste generierter C++ zu erstellen
Dateien, zum Beispiel als Makefile-Fragment.

--file-list-prologue Text
Insert Text am Anfang der Dateiliste. Der Einfachheit halber sind alle Vorkommen von
\n Zeichenfolge in Text werden durch neue Zeilen ersetzt. Diese Option kann z
Beispielsweise kann die generierte Dateiliste einer Makefile-Variablen zugewiesen werden.

--file-list-epilog Text
Insert Text am Ende der Dateiliste. Der Einfachheit halber sind alle Vorkommen des
\n Zeichenfolge in Text werden durch neue Zeilen ersetzt.

--file-list-delim Text
Begrenzen Sie Dateinamen, die in die Dateiliste geschrieben werden, mit Text statt neuer Zeilen. Als ein
Bequemlichkeit, alle Vorkommnisse der \n Zeichenfolge in Text werden ersetzt durch
neue Zeilen.

cxx-Baum Befehl Optionen
--generate-polymorphic
Generieren Sie polymorphismusfähigen Code. Geben Sie diese Option an, wenn Sie Substitution verwenden
Gruppen oder xsi:typ. Benutze die --polymorphischer Typ or --polymorphic-type-all Option zu
Geben Sie an, welche Typhierarchien polymorph sind.

--polymorphischer Typ tippe
Weisen darauf hin, dass tippe ist eine Wurzel einer polymorphen Typhierarchie. Der Compiler kann
Bestimmen Sie anhand der Substitution häufig automatisch, welche Typen polymorph sind
Gruppenerklärungen. Möglicherweise müssen Sie diese Option jedoch verwenden, wenn Sie sie nicht verwenden
Substitutionsgruppen oder wenn Substitutionsgruppen in einem anderen Schema definiert sind. Du
Sie müssen diese Option beim Kompilieren jeder Schemadatei angeben, auf die verwiesen wird tippe.
Das tippe Argument ist ein XML-Schema-Typname, der optional mit qualifiziert werden kann
ein Namensraum im Namensraum#Name Form.

--polymorphic-type-all
Geben Sie an, dass alle Typen als polymorph behandelt werden sollen.

--polymorphe-Platte num
Geben Sie die polymorphe Kartenplatte an, auf der der generierte Code registriert werden soll. Das
Die Funktionalität ist in erster Linie nützlich, um mehrere Schemas zu trennen, die die definieren
gleiche polymorphe Typen.

--ordered-type tippe
Geben Sie die Reihenfolge der Elemente an tippe ist wichtig. Ein Beispiel wäre ein Komplex
Typ mit unbegrenzter Auswahl als Inhaltsmodell, bei dem die Elementreihenfolge in XML gilt
anwendungsspezifische Semantik. Für geordnete Typen generiert der Compiler ein spezielles
Container-Datenelement und ein entsprechender Satz von Zugriffsmethoden und Modifikatoren
Wird verwendet, um die Reihenfolge von Elementen und, bei gemischten Inhalten, von Text zu erfassen.

Das tippe Argument ist ein XML-Schema-Typname, der optional mit qualifiziert werden kann
ein Namensraum im Namensraum#Name form. Beachten Sie auch, dass Sie angeben müssen
Verwenden Sie diese Option, wenn Sie jede Schemadatei kompilieren, von der andere geordnete Typen abgeleitet sind
von diesem Typ.

--ordered-type-derived
Behandeln Sie von geordneten Basen abgeleitete Typen automatisch als ebenfalls geordnet. Das ist
Dies ist vor allem dann nützlich, wenn Sie den gesamten Inhalt durchlaufen möchten
Verwenden des Inhaltsreihenfolgecontainers.

--ordered-type-mixed
Behandeln Sie komplexe Typen mit gemischtem Inhalt automatisch wie angegeben.

--ordered-type-all
Geben Sie an, dass die Reihenfolge der Elemente in allen Typen von Bedeutung ist.

--order-container tippe
Geben Sie eine benutzerdefinierte Klassenvorlage an, die als Container für den Inhalt verwendet werden soll
Reihenfolge in geordneten Typen anstelle der Standardeinstellung std :: vector. Sehen --ordered-type für
Weitere Informationen zum bestellten Typ. Diese Option ist vor allem bei Bedarf nützlich
Führen Sie komplexere Suchvorgänge im Inhaltsreihenfolgecontainer durch, beispielsweise nach Elementen
Ausweis. In diesem Fall ist ein Container wie Boost Multi-Index möglicherweise praktischer. Notiz
Wenn Sie einen benutzerdefinierten Container verwenden, müssen Sie höchstwahrscheinlich auch den einbinden
relevante Header mit dem --hxx-prologue* Optionen.

--generate-serialization
Generieren Sie Serialisierungsfunktionen. Serialisierungsfunktionen konvertieren das Objektmodell
zurück zu XML.

--generate-ostream
Generieren Sie Ostream-Einfügungsoperatoren (Operator<) für generierte Typen. Dies erlaubt
Eine davon ermöglicht das einfache Drucken eines Fragments oder des gesamten Objektmodells zum Debuggen oder Protokollieren.

--generate-doxygen
Generieren Sie Dokumentationskommentare, die für die Extraktion durch Doxygen geeignet sind
Dokumentationssystem. Dokumentation aus Anmerkungen wird den Kommentaren hinzugefügt, wenn
im Schema vorhanden.

--generate-comparison
Vergleichsoperatoren generieren (Operator== und Operator!=) für komplexe Typen.
Der Vergleich wird mitgliedweise durchgeführt.

--generate-default-ctor
Generieren Sie Standardkonstruktoren auch für Typen, die über erforderliche Mitglieder verfügen. Erforderlich
Mitglieder einer mit einem solchen Konstruktor erstellten Instanz werden nicht initialisiert und
Der Zugriff darauf führt zu undefiniertem Verhalten.

--generate-from-base-ctor
Generieren Sie Konstruktoren, die eine Instanz eines Basistyps erwarten, gefolgt von allen
erforderliche Mitglieder.

--suppress-assignment
Unterdrücken Sie die Generierung von Kopierzuweisungsoperatoren für komplexe Typen. Wenn dies
Wenn die Option angegeben ist, werden die Kopierzuweisungsoperatoren für solche Typen deklariert
privat und nicht implementiert.

--generate-detach
Generieren Sie Trennfunktionen für erforderliche Elemente und Attribute. Funktionen abtrennen
für optionale und sequenzielle Kardinalitäten werden von den jeweiligen Containern bereitgestellt.
Mit diesen Funktionen können Sie beispielsweise Teilbäume im Objektmodell verschieben
entweder innerhalb desselben Baumes oder zwischen verschiedenen Bäumen.

--generate-wildcard
Generieren Sie Accessoren und Modifikatoren sowie Parsing- und Serialisierungscode für XML
Schema-Platzhalter (jedem und irgendeinAttribut). Durch Platzhalter übereinstimmende XML-Inhalte sind
als DOM-Fragmente dargestellt. Beachten Sie, dass Sie die Xerces-C++-Laufzeit initialisieren müssen
wenn Sie diese Option nutzen.

--generate-any-type
Extrahieren und speichern Sie den Inhalt des XML-Schemas jeder Typ Typ als DOM-Fragment. Notiz
dass Sie die Xerces-C++-Laufzeit initialisieren müssen, wenn Sie diese Option verwenden.

--generate-insertion os
Generieren Sie Datendarstellungs-Stream-Einfügungsoperatoren für die os Ausgabestrom
Typ. Wiederholen Sie diese Option, um mehr als einen Stream-Typ anzugeben. Der ACE CDR-Stream
(ACE_OutputCDR) und RPC XDR werden vom Compiler erkannt und die erforderlichen
#einschließen Anweisungen werden automatisch generiert. Für benutzerdefinierte Stream-Typen verwenden Sie die
--hxx-prologue* Möglichkeiten, die erforderlichen Erklärungen abzugeben.

--generate-extraction is
Generieren Sie Datendarstellungs-Stream-Extraktionskonstruktoren für is Eingabestrom
Typ. Wiederholen Sie diese Option, um mehr als einen Stream-Typ anzugeben. Der ACE CDR-Stream
(ACE_InputCDR) und RPC XDR werden vom Compiler erkannt und die erforderlichen
#einschließen Anweisungen werden automatisch generiert. Für benutzerdefinierte Stream-Typen verwenden Sie die
--hxx-prologue* Möglichkeiten, die erforderlichen Erklärungen abzugeben.

--generate-forward
Generieren Sie eine separate Header-Datei mit Vorwärtsdeklarationen für die vorhandenen Typen
generiert.

--suppress-parsing
Unterdrücken Sie die Generierung der Parsing-Funktionen und Konstruktoren. Nutzen Sie diese Option
um die Größe des generierten Codes zu reduzieren, wenn das Parsen aus XML nicht erforderlich ist.

--generate-element-type
Generieren Sie Typen anstelle von Parsing- und Serialisierungsfunktionen für Stammelemente.
Dies ist in erster Linie nützlich, um Objektmodelle mit demselben Stammtyp zu unterscheiden
mit unterschiedlichen Wurzelelementen.

--generate-element-map
Generieren Sie eine Stammelementzuordnung, die eine einheitliche Analyse und Serialisierung von ermöglicht
mehrere Wurzelelemente. Diese Option ist nur zusammen mit gültig --generate-element-
tippe.

--generate-intellisense
Generieren Sie Problemumgehungen für IntelliSense-Fehler in Visual Studio 2005 (8.0). Wenn das
Wenn die Option verwendet wird, ist der resultierende Code etwas ausführlicher. IntelliSense in
Für Visual Studio 2008 (9.0) und höher sind diese Problemumgehungen nicht erforderlich. Unterstützung für
IntelliSense in Visual Studio 2003 (7.1) wird mit dieser Option verbessert, ist aber immer noch vorhanden
unvollständig.

--omit-default-attributes
Lassen Sie Attribute mit Standard- und Festwerten aus serialisierten XML-Dokumenten weg.

--type-naming Stil
Geben Sie die Typbenennungskonvention an, die im generierten Code verwendet werden soll. Gültig
Stile sind knr (Standard), Ucc und Java. Siehe den Abschnitt NAMENSKONVENTION weiter unten
um mehr zu erfahren.

--function-naming Stil
Geben Sie die Funktionsbenennungskonvention an, die im generierten Code verwendet werden soll.
Gültige Stile sind knr (Standard), lcc und Java. Siehe den Abschnitt NAMENSKONVENTION
unten für weitere Informationen.

--type-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Übersetzen des XML-Schematyps verwendet werden
Namen in C++-Typnamen umwandeln. Weitere Informationen finden Sie im Abschnitt NAMENSKONVENTION weiter unten
Informationen.

--accessor-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Übersetzen von XML-Schemanamen verwendet werden
Elemente/Attribute für C++-Accessor-Funktionsnamen. Siehe die NAMENSKONVENTION
Abschnitt unten für weitere Informationen.

--one-accessor-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Übersetzen von XML-Schemanamen verwendet werden
Elemente/Attribute mit der Kardinalität eins für C++-Accessor-Funktionsnamen. Siehe die
Weitere Informationen finden Sie im Abschnitt NAMENSKONVENTION weiter unten.

--opt-accessor-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Übersetzen von XML-Schemanamen verwendet werden
Elemente/Attribute mit optionaler Kardinalität für C++-Accessor-Funktionsnamen. Sehen
Weitere Informationen finden Sie im Abschnitt NAMENSKONVENTION weiter unten.

--seq-accessor-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Übersetzen von XML-Schemanamen verwendet werden
Elemente/Attribute mit Kardinalitätssequenz zu C++-Accessor-Funktionsnamen. Sehen
Weitere Informationen finden Sie im Abschnitt NAMENSKONVENTION weiter unten.

--modifier-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Übersetzen von XML-Schemanamen verwendet werden
Elemente/Attribute für C++-Modifikatorfunktionsnamen. Siehe die NAMENSKONVENTION
Abschnitt unten für weitere Informationen.

--one-modifier-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Übersetzen von XML-Schemanamen verwendet werden
Elemente/Attribute mit Kardinalität eins zu C++-Modifizierer-Funktionsnamen. Siehe die
Weitere Informationen finden Sie im Abschnitt NAMENSKONVENTION weiter unten.

--opt-modifier-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Übersetzen von XML-Schemanamen verwendet werden
Elemente/Attribute mit optionaler Kardinalität für C++-Modifikatorfunktionsnamen. Sehen
Weitere Informationen finden Sie im Abschnitt NAMENSKONVENTION weiter unten.

--seq-modifier-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Übersetzen von XML-Schemanamen verwendet werden
Elemente/Attribute mit Kardinalitätssequenz zu C++-Modifizierer-Funktionsnamen. Sehen
Weitere Informationen finden Sie im Abschnitt NAMENSKONVENTION weiter unten.

--parser-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Übersetzen des XML-Schema-Elements verwendet werden
Namen zu C++-Parsing-Funktionsnamen. Weitere Informationen finden Sie im Abschnitt NAMENSKONVENTION weiter unten
mehr Informationen.

--serializer-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Übersetzen des XML-Schema-Elements verwendet werden
Namen zu C++-Serialisierungsfunktionsnamen. Siehe den Abschnitt NAMENSKONVENTION weiter unten
um mehr zu erfahren.

--const-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Übersetzen von XML-Schema-abgeleitet verwendet werden
Namen zu C++-Konstantennamen. Weitere Informationen finden Sie im Abschnitt NAMENSKONVENTION weiter unten
Informationen.

--enumerator-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Übersetzen des XML-Schemas verwendet werden
Enumerationswerte in C++-Enumeratornamen. Siehe den Abschnitt NAMENSKONVENTION weiter unten
um mehr zu erfahren.

--element-type-regex Regex
Speichern Regex zur Liste der regulären Ausdrücke, die zum Übersetzen des XML-Schema-Elements verwendet werden
Namen zu C++-Elementtypnamen. Weitere Informationen finden Sie im Abschnitt NAMENSKONVENTION weiter unten
Informationen.

--name-regex-trace
Verfolgen Sie den Prozess der Anwendung regulärer Ausdrücke, die mit dem Namen angegeben sind
Transformationsmöglichkeiten. Verwenden Sie diese Option, um herauszufinden, warum Ihre regulären Ausdrücke
Tun Sie nicht das, was Sie von ihnen erwartet haben.

--root-element-first
Behandeln Sie nur das erste globale Element als Dokumentstamm. Standardmäßig alles global
Elemente gelten als Dokumentwurzeln.

--root-element-last
Behandeln Sie nur das letzte globale Element als Dokumentstamm. Standardmäßig alles global
Elemente gelten als Dokumentwurzeln.

--root-element-all
Behandeln Sie alle globalen Elemente als Dokumentwurzeln. Dies ist das Standardverhalten. Von
Wenn Sie diese Option explizit angeben, können Sie die Warnung unterdrücken, die ausgegeben wird, wenn
Es ist mehr als ein globales Element definiert.

--root-element-none
Behandeln Sie keine globalen Elemente als Dokumentstämme. Standardmäßig alle globalen Elemente
gelten als Dokumentwurzeln.

--root-element Element
Nur behandeln Element als Dokumentenstamm. Wiederholen Sie diese Option, um mehr als eine anzugeben
Wurzelelement.

--custom-type Karte
Verwenden Sie einen benutzerdefinierten C++-Typ anstelle der generierten Klasse. Der Karte Argument ist in der
unten stehende Formular Name[=tippe[/Base]], wo Name ist ein Typname wie im XML-Schema definiert und
tippe ist ein C++-Typname, der stattdessen verwendet werden sollte. Wenn tippe ist nicht vorhanden bzw
leer ist, wird davon ausgegangen, dass der benutzerdefinierte Typ denselben Namen hat und in definiert ist
denselben Namensraum wie die generierte Klasse haben würde. Wenn Base angegeben ist dann die
Die generierte Klasse wird weiterhin generiert, jedoch mit diesem Namen.

--custom-type-regex Regex
Verwenden Sie benutzerdefinierte C++-Typen anstelle der generierten Klassen. Der Regex Argument ist in der
unten stehende Formular /Name-pat/[Typ-Sub/[Basis-Sub/]], wo Name-pat ist ein Regex-Muster, das wird
mit Typnamen abgeglichen werden, wie sie im XML-Schema definiert sind und Typ-Sub ist ein C++-Typ
Namensersetzung, die stattdessen verwendet werden sollte. Wenn Typ-Sub ist nicht vorhanden oder es ist
Wenn die Ersetzung zu einer leeren Zeichenfolge führt, wird davon ausgegangen, dass der benutzerdefinierte Typ Folgendes hat
denselben Namen haben und im selben Namensraum definiert sein wie die generierte Klasse.
If Basis-Sub vorhanden ist und seine Ersetzung zu einer nicht leeren Zeichenfolge führt, dann die
Die generierte Klasse wird weiterhin generiert, jedoch mit dem Ergebnis dieser Ersetzung als ihr
Name. Das Muster und die Ersetzungen liegen im Perl-Format für reguläre Ausdrücke vor. Sehen
auch den Abschnitt REGEX- UND SHELL-QUOTING weiter unten.

--Teile num
Teilen Sie den generierten Quellcode auf num Teile. Dies ist nützlich, wenn Sie große,
monolithische Schemata und ein C++-Compiler ist nicht in der Lage, die resultierende Quelle zu kompilieren
Code auf einmal (normalerweise aufgrund von unzureichendem Speicher).

--parts-suffix Suffix
Verwenden Sie die Suffix anstelle der Standardeinstellung '-', um den Dateinamen vom Teil zu trennen
Anzahl.

cxx-parser Befehl Optionen
--type-map Kartendatei
Lesen Sie XML-Schema-zu-C++-Typzuordnungsinformationen aus Kartendatei. Wiederholen Sie diese Option, um
Geben Sie mehrere Typzuordnungen an. Typkarten werden in der Reihenfolge ihres Erscheinens und der berücksichtigt
Es wird das erste Spiel verwendet. Standardmäßig werden alle benutzerdefinierten Typen zugeordnet ungültig. Siehe
Weitere Informationen finden Sie im Abschnitt TYPKARTE weiter unten.

--xml-parser Parser
Verwenden Sie die Parser als zugrunde liegender XML-Parser. Gültige Werte sind xerces für Xerces-C++
(Standard) und Expat für Expats.

--generate-validation
Validierungscode generieren. Dafür sorgt der Validierungscode („perfekter Parser“)
Instanzdokumente entsprechen dem Schema. Der Validierungscode wird standardmäßig generiert
wenn der ausgewählte zugrunde liegende XML-Parser nicht validierend ist (Expat).

--suppress-validation
Unterdrücken Sie die Generierung von Validierungscode. Die Validierung ist standardmäßig unterdrückt
wenn der ausgewählte zugrunde liegende XML-Parser validiert (xerces).

--generate-polymorphic
Generieren Sie polymorphismusfähigen Code. Geben Sie diese Option an, wenn Sie Substitution verwenden
Gruppen oder xsi:typ.

--generate-noop-impl
Generieren Sie eine Beispiel-Parser-Implementierung, die nichts tut (keine Operation). Der
Anschließend kann die Beispielimplementierung mit dem anwendungsspezifischen Code gefüllt werden. Für ein
Eingabedatei im Formular name.xsd Diese Option löst die Generierung von zwei aus
zusätzliche C++-Dateien im Format: name-pimpl.hxx (Parser-Implementierungsheader
Datei) und name-pimpl.cxx (Parser-Implementierungsquelldatei).

--generate-print-impl
Generieren Sie eine Beispiel-Parser-Implementierung, die die XML-Daten auf STDOUT druckt. Für ein
Eingabedatei im Formular name.xsd Diese Option löst die Generierung von zwei aus
zusätzliche C++-Dateien im Format: name-pimpl.hxx (Parser-Implementierungsheader
Datei) und name-pimpl.cxx (Parser-Implementierungsquelldatei).

--generate-test-driver
Generieren Sie einen Testtreiber für die Beispiel-Parser-Implementierung. Für eine Eingabedatei in
die Form name.xsd Diese Option löst die Generierung einer zusätzlichen C++-Datei in aus
die Form Name-Treiber.cxx.

--force-overwrite
Erzwingen Sie das Überschreiben der vorhandenen Implementierungs- und Testtreiberdateien. Benutze das
Option nur, wenn es Ihnen nichts ausmacht, die Änderungen, die Sie im Beispiel vorgenommen haben, zu verlieren
Implementierungs- oder Testtreiberdateien.

--root-element-first
Geben Sie an, dass das erste globale Element das Dokumentstammverzeichnis ist. Diese Informationen sind
Wird zum Generieren des Testtreibers für die Beispielimplementierung verwendet.

--root-element-last
Geben Sie an, dass das letzte globale Element das Dokumentstammverzeichnis ist. Diese Informationen sind
Wird zum Generieren des Testtreibers für die Beispielimplementierung verwendet.

--root-element Element
Weisen darauf hin, dass Element ist das Stammverzeichnis des Dokuments. Diese Informationen werden zur Generierung verwendet
Der Testtreiber für die Beispielimplementierung.

--skel-type-suffix Suffix
Verwenden Sie die bereitgestellten Suffix anstelle der Standardeinstellung _pskel um die Namen der zu konstruieren
generierte Parser-Skelette.

--skel-file-suffix Suffix
Verwenden Sie die bereitgestellten Suffix anstelle der Standardeinstellung -pskel um die Namen der zu konstruieren
generierte Parser-Skelettdateien.

--impl-type-suffix Suffix
Verwenden Sie die bereitgestellten Suffix anstelle der Standardeinstellung _Pimpl um die Namen der zu konstruieren
Parser-Implementierungen für die integrierten XML-Schematypen sowie Beispielparser
Implementierungen.

--impl-file-suffix Suffix
Verwenden Sie die bereitgestellten Suffix anstelle der Standardeinstellung -Pimpl um die Namen der zu konstruieren
generierte Beispiel-Parser-Implementierungsdateien.

BENENNUNG CONVENTION


Der Compiler kann angewiesen werden, in der generierten Datei eine bestimmte Namenskonvention zu verwenden
Code. Eine Reihe weit verbreiteter Konventionen können mit ausgewählt werden --type-naming und
--function-naming Optionen. Eine benutzerdefinierte Namenskonvention kann mithilfe von erreicht werden --Typ-
Regex, --accessor-regex, --one-accessor-regex, --opt-accessor-regex, --seq-accessor-regex,
--modifier-regex, --one-modifier-regex, --opt-modifier-regex, --seq-modifier-regex,
--parser-regex, --serializer-regex, --const-regex, --enumerator-regex und --element-type-
Regex Optionen.

Das --type-naming Option gibt die Konvention an, die für die Benennung von C++ verwendet werden soll
Typen. Mögliche Werte für diese Option sind knr (Standard), Ucc und Javadem „Vermischten Geschmack“. Seine knr Wert
(steht für K&R) bezeichnet die standardmäßige Namenskonvention in Kleinbuchstaben mit dem Unterstrich
Wird als Worttrennzeichen verwendet, zum Beispiel: foo, foo_bar. Der Ucc (steht für Oberkamel-
Fall) und Java Werte a Synonyme für die gleiche Namenskonvention, bei der der erste Buchstabe von
Jedes Wort im Namen wird groß geschrieben, zum Beispiel: Foo, FooBar.

Ähnlich, die --function-naming Die Option gibt die Konvention an, die verwendet werden soll
Benennen von C++-Funktionen. Mögliche Werte für diese Option sind knr (Standard), lcc und Java.
Das knr value (steht für K&R) bezeichnet die standardmäßige Namenskonvention in Kleinbuchstaben mit
der Unterstrich, der als Worttrennzeichen verwendet wird, zum Beispiel: foo(), foo_bar(). Der lcc Wert
(steht für Kleinbuchstaben in Kamelbuchstaben) bezeichnet eine Namenskonvention, bei der jeweils der erste Buchstabe verwendet wird
Wort außer dem ersten wird großgeschrieben, zum Beispiel: foo(), fooBar(). Der Java Benennung
Die Konvention ist der Kleinbuchstaben-Konvention ähnlich, mit der Ausnahme, dass dies bei Zugriffsfunktionen der Fall ist
mit dem Präfix get, Modifikatorfunktionen mit dem Präfix set, Parsingfunktionen mit dem Präfix set
mit dem Präfix „parse“ und Serialisierungsfunktionen mit dem Präfix „serialize“, zum Beispiel:
getFoo(), setFooBar(), parseRoot(), serializeRoot().

Beachten Sie, dass die mit dem angegebenen Namenskonventionen gelten --type-naming und --function-naming
Optionen führen nur begrenzte Transformationen für die Namen durch, die aus dem Schema in stammen
Form von Typ-, Attribut- und Elementnamen. Mit anderen Worten: Um konsistente Ergebnisse zu erzielen,
Ihre Schemata sollten einer ähnlichen Namenskonvention folgen wie die, die Sie gerne hätten
im generierten Code. Alternativ können Sie auch die verwenden --*-regex Optionen (unten besprochen)
um weitere Transformationen an den Namen durchzuführen, die aus dem Schema stammen.

Das --type-regex, --accessor-regex, --one-accessor-regex, --opt-accessor-regex, --seq-
Accessor-Regex, --modifier-regex, --one-modifier-regex, --opt-modifier-regex, --seq-
Modifikator-regex, --parser-regex, --serializer-regex, --const-regex, --enumerator-regex und
--element-type-regex Mit den Optionen können Sie für jeden Namen zusätzliche reguläre Ausdrücke angeben
Kategorie zusätzlich zu dem vordefinierten Satz, der je nach hinzugefügt wird --type-naming
und --function-naming Optionen. Ausdrücke, die mit bereitgestellt werden --*-regex Optionen
werden vor allen vordefinierten Ausdrücken ausgewertet. Dadurch ist ein selektives Überschreiben möglich
einige oder alle der vordefinierten Transformationen. Wenn Sie Ihre eigenen Ausdrücke debuggen, ist dies der Fall
oft nützlich, um zu sehen, welche Ausdrücke mit welchen Namen übereinstimmen. Der --name-regex-trace zu erhalten
ermöglicht es Ihnen, den Prozess der Anwendung regulärer Ausdrücke auf Namen zu verfolgen.

Der Wert für die --*-regex Optionen sollten ein Perl-ähnlicher regulärer Ausdruck im Formular sein
/Anleitungen/Ersatz/. Stattdessen kann jedes beliebige Zeichen als Trennzeichen verwendet werden /. Flucht
des Trennzeichens in Anleitungen or Ersatz wird nicht unterstützt. Alles normal
Ausdrücke für jede Kategorie werden mit der letzten in einen kategoriespezifischen Stapel verschoben
Der angegebene Ausdruck wird zuerst berücksichtigt. Die erste erfolgreiche Übereinstimmung wird verwendet. Für die
--one-accessor-regex (Accessoren mit Kardinalität eins), --opt-accessor-regex (Accessoren
mit optionaler Kardinalität) und --seq-accessor-regex (Accessoren mit Kardinalitätsfolge)
Kategorien die --accessor-regex Ausdrücke werden als Fallback verwendet. Für die --eins-
Modifikator-regex, --opt-modifier-regex und --seq-modifier-regex Kategorien die --Modifikator-
Regex Ausdrücke werden als Fallback verwendet. Für die --element-type-regex Kategorie die
--type-regex Ausdrücke werden als Fallback verwendet.

Die Typnamenausdrücke (--type-regex) werden anhand der Namenszeichenfolge ausgewertet, die das enthält
folgendes Format:

[Namensraum ]Name[,Name][,Name][,Name]

Die Ausdrücke für den Elementtypnamen (--element-type-regex), nur wirksam, wenn die
--generate-element-type Wenn die Option angegeben ist, werden sie anhand der Namenszeichenfolge ausgewertet, die die enthält
folgendes Format:

Namensraum Name

Im Typnamenformat die Namensraum Der Teil, gefolgt von einem Leerzeichen, ist nur für global vorhanden
Typnamen. Für globale Typen und Elemente, die in Schemas ohne Zielnamespace definiert sind,
Namensraum Ein Teil ist leer, aber der Raum ist noch vorhanden. Im Typnamenformat nach
die anfängliche Name Komponente, bis zu drei weitere Name Komponenten können vorhanden sein,
durch Kommata abgetrennt. Zum Beispiel:

http://example.com/hello tippe

foo

foo,iterator

foo,const,iterator

Der folgende Satz vordefinierter regulärer Ausdrücke wird zum Transformieren von Typnamen verwendet
Die Namenskonvention in Großbuchstaben wird ausgewählt:

/(?:[^ ]* )?([^,]+)/\u$1/

/(?:[^ ]* )?([^,]+),([^,]+)/\u$1\u$2/

/(?:[^ ]* )?([^,]+),([^,]+),([^,]+)/\u$1\u$2\u$3/

/(?:[^ ]* )?([^,]+),([^,]+),([^,]+),([^,]+)/\u$1\u$2\u$3\u$4/

Die Zugriffs- und Modifikatorausdrücke (--*accessor-regex und --*modifikator-regex) sind
ausgewertet anhand der Namenszeichenfolge, die das folgende Format hat:

Name[,Name][,Name]

Nach dem Anfangsbuchstaben Name Komponente, bis zu zwei weitere Name Komponenten können vorhanden sein,
durch Kommata abgetrennt. Zum Beispiel:

foo

dom,Dokument

foo,Standard,Wert

Der folgende Satz vordefinierter regulärer Ausdrücke wird zum Transformieren von Accessornamen verwendet
wenn das Java Namenskonvention ist ausgewählt:

/([^,]+)/get\u$1/

/([^,]+),([^,]+)/get\u$1\u$2/

/([^,]+),([^,]+),([^,]+)/get\u$1\u$2\u$3/

Für die Kategorien Parser, Serializer und Enumerator die entsprechende reguläre
Ausdrücke werden anhand lokaler Namen von Elementen und Aufzählungswerten ausgewertet.
bzw. Beispielsweise wird der folgende vordefinierte reguläre Ausdruck verwendet
Transformieren Sie Parsing-Funktionsnamen, wenn die Java Namenskonvention ist ausgewählt:

/(.+)/parse\u$1/

Die const-Kategorie wird verwendet, um C++-Konstantennamen für das Element/den Platzhalter/den Text zu erstellen
Inhalts-IDs in geordneten Typen.

Siehe auch den Abschnitt REGEX- UND SHELL-QUOTING weiter unten.

TYP MAP


Typzuordnungsdateien werden in C++/Parser verwendet, um eine Zuordnung zwischen XML-Schema und C++ zu definieren
Typen. Der Compiler verwendet diese Informationen, um die Rückgabetypen von zu bestimmen Post_*
Funktionen in Parser-Skeletten, die XML-Schematypen sowie Argumenttypen entsprechen
für Rückrufe, die Elementen und Attributen dieser Typen entsprechen.

Der Compiler verfügt über eine Reihe vordefinierter Zuordnungsregeln, denen integrierte XML-Schematypen zugeordnet werden
geeignete C++-Typen (unten besprochen) und alle anderen Typen zu ungültig. Indem Sie Ihre eigenen bereitstellen
Typzuordnungen können Sie diese vordefinierten Regeln überschreiben. Das Format der Typzuordnungsdatei ist
Nachstehend dargestellt:

Namensraum Schema-Namespace [ cxx-Namespace ]
{
( das Dateiname; )*
([ tippe ] Schematyp cxx-ret-type [ cxx-arg-typ ]; )*
}

Beide Schema-Namespace und Schematyp sind Regex-Muster while cxx-Namespace, cxx-ret-
tippe und cxx-arg-typ sind Regex-Musterersetzungen. Alle Namen können optional sein
eingeschlossen in „ “, um beispielsweise Leerzeichen einzuschließen.

Schema-Namespace Bestimmt den XML-Schema-Namespace. Optional cxx-Namespace ist vorangestellt
jeden C++-Typnamen in dieser Namespace-Deklaration. cxx-ret-type ist ein C++-Typname, der
wird als Rückgabetyp für verwendet Post_* Funktionen. Optional cxx-arg-typ ist ein Argument
Typ für Rückruffunktionen, die Elementen und Attributen dieses Typs entsprechen. Wenn cxx-
arg-Typ ist nicht angegeben, standardmäßig ist cxx-ret-type if cxx-ret-type endet mit * or &
(das heißt, es ist ein Zeiger oder eine Referenz) und const cxx-ret-type& Andernfalls. Dateiname is
ein Dateiname entweder im Format „ “ oder < > und wird mit dem hinzugefügt #einschließen Richtlinie zu
der generierte Code.

Das # Das Zeichen beginnt einen Kommentar, der mit einer neuen Zeile oder einem Dateiende endet. Um a anzugeben
Name, der enthält # Schließen Sie es in „ “ ein. Zum Beispiel:

Namensraum http://www.example.com/xmlns/my my
{
include „my.hxx“;

# Äpfel nach Wert übergeben.
#
Apfel Apfel;

# Orangen als Zeiger übergeben.
#
orange orange_t*;
}

Im obigen Beispiel für die http://www.example.com/xmlns/my#Orange XML-Schematyp, der
my::orange_t* Der C++-Typ wird sowohl als Rückgabe- als auch als Argumenttyp verwendet.

In einer einzigen Datei können mehrere Namensraumdeklarationen angegeben werden. Der Namensraum
Die Deklaration kann auch vollständig weggelassen werden, um Typen in einem Schema ohne Namensraum zuzuordnen.
Zum Beispiel:

include „my.hxx“;
Apfel Apfel;

Namensraum http://www.example.com/xmlns/my
{
orange "const orange_t*";
}

Der Compiler verfügt über eine Reihe vordefinierter Zuordnungsregeln, die als dargestellt werden können
folgende Kartendateien. Die auf Zeichenfolgen basierenden integrierten XML-Schematypen werden beiden zugeordnet
std::string or std::wstring Abhängig vom mit dem ausgewählten Zeichentyp --char-Typ
Option (verkohlen standardmäßig).

Namensraum http://www.w3.org/2001/XMLSchema
{
boolean bool bool;

Byte „signed char“ „signed char“;
unsignedByte „unsigned char“ „unsigned char“;

kurz kurz kurz;
unsignedShort „unsigned short“ „unsigned short“;

int int int;
unsignedInt „unsigned int“ „unsigned int“;

lang „lang lang“ „lang lang“;
unsignedLong „unsigned long long“ „unsigned long long“;

Ganzzahl „long long“ „long long“;

negativeInteger „long long“ „long long“;
nonPositiveInteger „long long“ „long long“;

positiveInteger „unsigned long long“ „unsigned long long“;
nonNegativeInteger „unsigned long long“ „unsigned long long“;

Schwimmer, Schwimmer, Schwimmer;
doppelt doppelt doppelt;
dezimal doppelt doppelt;

string std::string;
normalizedString std::string;
Token std::string;
Name std::string;
NMTOKEN std::string;
NCName std::string;
ID std::string;
IDREF std::string;
Sprache std::string;
anyURI std::string;

NMTOKENS xml_schema::string_sequence;
IDREFS xml_schema::string_sequence;

QName xml_schema::qname;

base64Binary std::auto_ptr
std::auto_ptr ;
hexBinary std::auto_ptr
std::auto_ptr ;

Datum xml_schema::date;
dateTime xml_schema::date_time;
Dauer xml_schema::duration;
gDay xml_schema::gday;
gMonth xml_schema::gmonth;
gMonthDay xml_schema::gmonth_day;
gYear xml_schema::gyear;
gYearMonth xml_schema::gyear_month;
Zeit xml_schema::time;
}

Die letzte vordefinierte Regel ordnet alles zu, was nicht durch vorherige Regeln zugeordnet wurde ungültig:

Namensraum .*
{
.* void void;
}

Wenn Sie Ihre eigenen Typkarten mit dem bereitstellen --type-map Option werden sie zuerst ausgewertet.
Dadurch können Sie vordefinierte Regeln gezielt außer Kraft setzen.

REGEX UND SHELL ZITIEREN


Bei der Eingabe eines regulären Ausdrucksarguments in der Shell-Befehlszeile ist dies häufig der Fall
Es ist notwendig, Anführungszeichen zu verwenden (das Argument in „“ oder „“ einzuschließen), um dies zu verhindern
Shell daran hindert, bestimmte Zeichen, zum Beispiel Leerzeichen, als Argumenttrennzeichen zu interpretieren und
$ als variable Erweiterungen.

Leider ist es schwierig, dies auf eine Art und Weise zu erreichen, die über POSIX-Shells hinweg portierbar ist.
wie sie unter GNU/Linux und UNIX sowie in der Windows-Shell zu finden sind. Wenn Sie beispielsweise „
Beim Zitieren erhalten Sie mit POSIX-Shells ein falsches Ergebnis, wenn Ihr Ausdruck $ enthält.
Die Standardmethode zur Behebung dieses Problems auf POSIX-Systemen ist stattdessen die Verwendung von „“.
Leider entfernt die Windows-Shell „ “ nicht aus Argumenten, wenn sie an übergeben werden
Anwendungen. Daher müssen Sie möglicherweise „ “ für POSIX und „ “ für Windows verwenden ($ ist nicht
wird unter Windows als Sonderzeichen behandelt).

Alternativ können Sie Optionen für reguläre Ausdrücke in einer Datei speichern, eine Option pro Zeile.
und verwenden Sie diese Datei mit dem --options-Datei Möglichkeit. Bei diesem Ansatz ist dies nicht erforderlich
Sorgen Sie sich um Shell-Zitate.

DIAGNOSE


Wenn die Eingabedatei keine gültige W3C-XML-Schemadefinition ist, xsdcxx wird eine Diagnose ausgeben
Nachrichten an STDERR und mit einem Exit-Code ungleich Null beenden.

Verwenden Sie xsdcxx online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad