EngelsFransSpaans

Ad


OnWorks-favicon

xsdcxx - Online in de cloud

Voer xsdcxx uit in de gratis hostingprovider van OnWorks via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht xsdcxx die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


xsdcxx - W3C XML-schema naar C++ compiler

KORTE INHOUD


xsdcxx commando [ opties ] filet [ filet
xsdcxx hulp [ commando ]
xsdcxx versie

PRODUCTBESCHRIJVING


xsdcxx genereert woordenschatspecifieke, statisch getypeerde C++-toewijzingen op basis van W3C XML Schema
definities. Een bepaalde mapping die moet worden gemaakt, wordt geselecteerd door a commando. Elke kaart heeft een
aantal mapping-specifieke opties dat zou, indien aanwezig, moeten verschijnen na de commando. Invoer
bestanden moeten W3C XML Schema-definities zijn. De exacte set gegenereerde bestanden is afhankelijk
op de geselecteerde mapping en opties.

COMMANDO'S


cxx-boom
Genereer de C++/Tree-toewijzing. Voor elk invoerbestand in het formulier naam.xsd de
de volgende C++-bestanden worden gegenereerd: naam.hxx (headerbestand), naam.ixx (inline-bestand,
alleen gegenereerd als de --genereren-inline optie is opgegeven), naam.cxx (Bron
bestand), en naam-fwd.hxx (doorsturendeclaratiebestand, alleen gegenereerd als de
--genereren-vooruit optie is opgegeven).

cxx-parser
Genereer de C++/Parser-toewijzing. Voor elk invoerbestand in het formulier naam.xsd de
de volgende C++-bestanden worden gegenereerd: naam-pskel.hxx (parser skelet headerbestand),
naam-pskel.ixx (parser-skelet-inlinebestand, alleen gegenereerd als de --genereren-
inline optie is opgegeven), en naam-pskel.cxx (parser-skeletbronbestand). Als
de --genereren-noop-impl or --genereren-print-impl optie is opgegeven, de
De volgende aanvullende voorbeeldimplementatiebestanden worden gegenereerd: naam-pimple.hxx
(parser-implementatie headerbestand) en naam-pimple.cxx (parser-implementatie
bron bestand). Als de --genereer-teststuurprogramma optie is opgegeven, de extra
naam-stuurprogramma.cxx teststuurprogrammabestand wordt gegenereerd.

hulp Gebruiksinformatie afdrukken en afsluiten. Gebruik

xsdcxx hulp commando

voor opdrachtspecifieke hulp.

versie
Print versie en sluit af.

OPTIES


Opdrachtspecifiek opties, indien aanwezig, zou na het overeenkomstige moeten verschijnen commando.

gemeenschappelijk opties
--soa versie
Geef de C++-standaard op waaraan de gegenereerde code moet voldoen. Geldige waarden
zijn c++98 (standaard) en c++11.

De C++-standaard heeft invloed op verschillende aspecten van de gegenereerde code die worden besproken
meer gedetailleerd in verschillende kaartspecifieke documentatie. Over het algemeen, als C++11 dat is
geselecteerd, is de gegenereerde code afhankelijk van de semantiek en het gebruik van de verplaatsing std::unieke_ptr
in plaats van afgekeurd std::auto_ptr.

Wanneer de C++11-modus is geselecteerd, hoeft u normaal gesproken geen extra stappen uit te voeren
anders dan C++11 inschakelen in uw C++-compiler, indien nodig. De XSDCXX-compiler doet dat wel
voeg automatisch de benodigde macro-definities toe aan de gegenereerde headerbestanden
zal de XSDCXX-runtimebibliotheek met alleen headers omschakelen (libxsd) naar de C++11-modus.
Als u echter een van de XSDCXX-runtimeheaders rechtstreeks in uw
applicatie (normaal gesproken neemt u alleen de gegenereerde headers op), dan heeft u dit nodig
om de . te definiëren XSD_CXX11 macro voor uw hele project.

--char-type type dan:
Genereer code met behulp van het opgegeven teken type dan: in plaats van de standaard verkolen. Geldig
waarden zijn verkolen en waar_t.

--char-codering enc
Geef de tekencodering op die in de gegenereerde code moet worden gebruikt. Geldig
waarden voor de verkolen tekentype zijn utf8 (Standaard) iso8859-1, lcp (Xerces-C++
lokale codetabel), en gewoonte. Als je slaagt gewoonte als de waarde die u dan nodig heeft
om aan het begin de transcoder-implementatieheader voor uw codering op te nemen
van de gegenereerde headerbestanden (zie de --hxx-proloog keuze).

Voor de waar_t tekentype de enige geldige waarde is auto en de codering is
automatisch geselecteerd tussen UTF-16 en UTF-32/UCS-4, afhankelijk van de waar_t
typ grootte.

--uitvoer-dir dir
Schrijf gegenereerde bestanden naar dir in plaats van de huidige map.

--genereren-inline
Genereer eenvoudige functies inline. Deze optie activeert het maken van het inlinebestand.

--genereer-xml-schema
Genereer een C++ headerbestand alsof het schema dat wordt gecompileerd het XML-schema definieert
naamruimte. Voor de C++/Tree-toewijzing bevat het resulterende bestand definities
voor alle ingebouwde typen XML-schema. Voor de C++/Parser-toewijzing: het resulterende bestand
zal definities bevatten voor alle parserskeletten en implementaties
overeenkomend met de ingebouwde typen XML-schema.

Het schemabestand dat aan de compiler wordt verstrekt, hoeft niet te bestaan ​​en wordt alleen gebruikt om af te leiden
de naam van het resulterende headerbestand. Gebruik de --extern-xml-schema optie om
neem dit bestand op in de gegenereerde bestanden voor andere schema's.

--extern-xml-schema filet
Voeg een headerbestand toe dat is afgeleid van filet in plaats van het XML-schema te genereren
naamruimtetoewijzing inline. Het aangeleverde bestand hoeft niet te bestaan ​​en wordt alleen gebruikt
leidt de naam af van het opgenomen headerbestand. Gebruik de --genereer-xml-schema optie
om dit headerbestand te genereren.

--naamruimte-map xns=cns
Wijs XML-schemanaamruimte toe xns naar C++-naamruimte cns. Herhaal deze optie om op te geven
toewijzing voor meer dan één XML-schemanaamruimte. Bijvoorbeeld de volgende optie:

--naamruimte-map http://example.com/foo/bar=foe::bar

Zal de http://example.com/foo/bar XML-schemanaamruimte naar de foo::balk C + +
naamruimte.

--naamruimte-regex regex
Toevoegen regex naar de lijst met reguliere expressies die worden gebruikt om de XML-schemanaamruimte te vertalen
namen naar C++-naamruimtenamen. regex is een Perl-achtige reguliere expressie in de vorm
/patroon/vervanging/. Elk teken kan als scheidingsteken worden gebruikt in plaats van /.
Ontsnappen van het scheidingsteken in patroon or vervanging wordt niet ondersteund.

Alle reguliere expressies worden in een stapel geduwd, waarbij de laatste is opgegeven
uitdrukking die als eerste wordt beschouwd. De eerste match die slaagt, wordt gebruikt. Normaal
expressies worden toegepast op een tekenreeks in het formulier

bestandsnaam namespace

Als u bijvoorbeeld een bestand hallo.xsd met naamruimte http://example.com/hello en
jij rent xsd in dit bestand, dan is de betreffende string:

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

Voor de ingebouwde XML-schemanaamruimte is de tekenreeks:

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

De volgende drie stappen worden voor elke reguliere expressie uitgevoerd tot aan de match
is gevonden:

1. De expressie wordt toegepast en als het resultaat leeg is, is de volgende expressie dat wel
beschouwd.

2. Alle / worden vervangen door ::.

3. Er wordt geverifieerd dat het resultaat een geldige C++-scopenaam is (bijv. foo::balk). Als dit
test slaagt, wordt het resultaat gebruikt als een C++-naamruimtenaam.

Als voorbeeld wijst de volgende expressie XML-schemanaamruimten toe in het formulier
http://example.com/foo/bar naar C++-naamruimten in het formulier foo::balk:

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

Zie ook het gedeelte REGEX EN SHELL QUOTING hieronder.

--naamruimte-regex-trace
Traceer het proces van het toepassen van reguliere expressies die zijn opgegeven met de --naamruimte-
regex keuze. Gebruik deze optie om erachter te komen waarom uw reguliere expressies niet werken
wat je van ze verwachtte.

--gereserveerde naam n[=r]
Naam toevoegen n toegevoegd aan de lijst met namen die niet als identificatiegegevens mogen worden gebruikt. De naam
kan eventueel gevolgd worden door = en de vervangende naam r dat moet worden gebruikt
in plaats van. Alle C++-trefwoorden staan ​​al in deze lijst.

--inclusief-met-beugels
Gebruik punthaken (<>) in plaats van aanhalingstekens ("") in gegenereerd #include richtlijnen.

--include-voorvoegsel voorvoegsel
Toevoegen voorvoegsel te genereren #include richtinggevende paden.

Als u bijvoorbeeld het volgende importelement in uw schema had

<import naamruimte = "..." schemaLocation = "basis.xsd"/>

en compileerde dit fragment met --include-voorvoegsel schema's/, dan de include
richtlijn in de gegenereerde code zou zijn:

#include "schema's/base.hxx"

--include-regex regex
Toevoegen regex naar de lijst met reguliere expressies die worden gebruikt om te transformeren #include Richtlijnen
paden. regex is een Perl-achtige reguliere expressie in de vorm /patroon/vervanging/.
Elk teken kan als scheidingsteken worden gebruikt in plaats van /. Ontsnappen aan het scheidingsteken
personage in patroon or vervanging wordt niet ondersteund.

Alle reguliere expressies worden in een stapel geduwd, waarbij de laatste is opgegeven
uitdrukking die als eerste wordt beschouwd. De eerste match die slaagt, wordt gebruikt.

De volgende expressie transformeert bijvoorbeeld paden in het formulier
schema's/foo/bar naar paden in het formulier gegenereerd/foo/bar:

%schema's/(.+)%gegenereerd/$1%

Zie ook het gedeelte REGEX EN SHELL QUOTING hieronder.

--include-regex-trace
Traceer het proces van het toepassen van reguliere expressies die zijn opgegeven met de --erbij betrekken-
regex keuze. Gebruik deze optie om erachter te komen waarom uw reguliere expressies niet werken
wat je van ze verwachtte.

--guard-voorvoegsel voorvoegsel
Toevoegen voorvoegsel om header-insluitingsbewakers te genereren. Het voorvoegsel wordt omgezet naar boven
Hoofdlettergebruik en tekens die illegaal zijn in de naam van een preprocessormacro worden vervangen door
onderstreept. Als deze optie niet is opgegeven, wordt de map onderdeel van de invoer
schemabestand wordt gebruikt als voorvoegsel.

--hxx-achtervoegsel achtervoegsel
Gebruik de meegeleverde achtervoegsel in plaats van de standaard .hxx om de naam van de te construeren
header-bestand. Merk op dat dit achtervoegsel ook wordt gebruikt om namen van headerbestanden samen te stellen
overeenkomend met opgenomen/geïmporteerde schema's.

--ixx-achtervoegsel achtervoegsel
Gebruik de meegeleverde achtervoegsel in plaats van de standaard .ixx om de naam van de te construeren
inline-bestand.

--cxx-achtervoegsel achtervoegsel
Gebruik de meegeleverde achtervoegsel in plaats van de standaard .cxx om de naam van de te construeren
bron bestand.

--fwd-achtervoegsel achtervoegsel
Gebruik de meegeleverde achtervoegsel in plaats van de standaard -fwd.hxx om de naam van te construeren
het voorwaartse aangiftebestand.

--hxx-regex regex
Gebruik de opgegeven expressie om de naam van het headerbestand samen te stellen. regex is een
Perl-achtige reguliere expressie in de vorm /patroon/vervanging/. Merk op dat dit
expressie wordt ook gebruikt om namen van headerbestanden te construeren die overeenkomen met
opgenomen/geïmporteerde schema's. Zie ook het gedeelte REGEX EN SHELL QUOTING hieronder.

--ixx-regex regex
Gebruik de opgegeven expressie om de naam van het inlinebestand samen te stellen. regex is een
Perl-achtige reguliere expressie in de vorm /patroon/vervanging/. Zie ook de REGEX
EN SHELL CITEREN hieronder.

--cxx-regex regex
Gebruik de opgegeven expressie om de naam van het bronbestand samen te stellen. regex is een
Perl-achtige reguliere expressie in de vorm /patroon/vervanging/. Zie ook de REGEX
EN SHELL CITEREN hieronder.

--fwd-regex regex
Gebruik de opgegeven expressie om de naam van het voorwaartse declaratiebestand samen te stellen.
regex is een Perl-achtige reguliere expressie in de vorm /patroon/vervanging/. Zie ook
de sectie REGEX EN SHELL QUOTING hieronder.

--hxx-proloog tekst
Invoegen tekst aan het begin van het headerbestand.

--ixx-proloog tekst
Invoegen tekst aan het begin van het inlinebestand.

--cxx-proloog tekst
Invoegen tekst aan het begin van het bronbestand.

--fwd-proloog tekst
Invoegen tekst aan het begin van het voorwaartse aangiftebestand.

--proloog tekst
Invoegen tekst aan het begin van elk gegenereerd bestand waarvoor geen bestand bestaat
specifieke proloog.

--hxx-epiloog tekst
Invoegen tekst aan het einde van het headerbestand.

--ixx-epiloog tekst
Invoegen tekst aan het einde van het inlinebestand.

--cxx-epiloog tekst
Invoegen tekst aan het einde van het bronbestand.

--fwd-epiloog tekst
Invoegen tekst aan het einde van het voorwaartse aangiftebestand.

--epiloog tekst
Invoegen tekst aan het einde van elk gegenereerd bestand waarvoor geen bestandsspecifiek bestand is
epiloog.

--hxx-proloog-bestand filet
Voeg de inhoud van het filet aan het begin van het headerbestand.

--ixx-proloog-bestand filet
Voeg de inhoud van het filet aan het begin van het inlinebestand.

--cxx-proloog-bestand filet
Voeg de inhoud van het filet aan het begin van het bronbestand.

--fwd-proloog-bestand filet
Voeg de inhoud van het filet aan het begin van het voorwaartse aangiftebestand.

--proloog-bestand filet
Voeg de inhoud van het filet aan het begin van elk gegenereerd bestand waarvoor
er is geen bestandsspecifiek proloogbestand.

--hxx-epiloog-bestand filet
Voeg de inhoud van het filet aan het einde van het headerbestand.

--ixx-epiloog-bestand filet
Voeg de inhoud van het filet aan het einde van het inlinebestand.

--cxx-epiloog-bestand filet
Voeg de inhoud van het filet aan het einde van het bronbestand.

--fwd-epiloog-bestand filet
Voeg de inhoud van het filet aan het einde van het voorwaartse aangiftebestand.

--epiloog-bestand filet
Voeg de inhoud van het filet aan het einde van elk gegenereerd bestand waarvoor er een is
geen bestandsspecifiek epiloogbestand.

--export-symbool symbool
Invoegen symbool op plaatsen waar DLL-export-/importcontrole-instructies staan
(__declspec(dllexport/dllimport)) zijn noodzakelijk.

--export-xml-schema
Export-/importtypen in de XML-schemanaamruimte met behulp van het opgegeven exportsymbool
met de --export-symbool optie. De XSD_NO_EXPORT Macro kan worden gebruikt om dit weg te laten
code tijdens het compileren van C++, wat handig kan zijn als u hetzelfde wilt gebruiken
gegenereerde code op meerdere platforms.

--export-kaarten
Exporteer polymorfisme-ondersteuningskaarten vanuit een Win32 DLL waarin deze gegenereerde code zich bevindt
geplaatst. Dit is nodig wanneer uw typehiërarchie over meerdere DLL's is verdeeld
omdat anders elke DLL zijn eigen set kaarten zal hebben. In deze situatie is de
gegenereerde code voor de DLL die basistypen en/of substitutiegroep bevat
heads moeten worden gecompileerd met deze optie en de gegenereerde code voor alle andere DLL's
mee moet worden samengesteld --import-kaarten. Deze optie is alleen geldig in combinatie met
--genereren-polymorf. De XSD_NO_EXPORT macro kan worden gebruikt om deze code weg te laten
tijdens het compileren van C++, wat handig kan zijn als u hetzelfde wilt gebruiken
gegenereerde code op meerdere platforms.

--import-kaarten
Importeer polymorfisme-ondersteuningskaarten naar een Win32 DLL of uitvoerbaar bestand waarin dit
gegenereerde code is gekoppeld. Zie de --export-kaarten optiedocumentatie voor meer informatie.
Deze optie is alleen geldig in combinatie met --genereren-polymorf. De XSD_NO_EXPORT
macro kan worden gebruikt om deze code weg te laten tijdens C++-compilatie, wat handig kan zijn als
u dezelfde gegenereerde code op meerdere platforms wilt gebruiken.

--genereer-dep
Genereer maken afhankelijkheidsinformatie. Deze optie activeert de creatie van de .d
bestand met de afhankelijkheden van de gegenereerde bestanden op het hoofdschemabestand als
evenals alle schemabestanden die het transitief bevat/importeert. Dit
afhankelijkheidsbestand wordt dan normaal gesproken opgenomen in het hoofdbestand makefile te voeren
automatisch bijhouden van afhankelijkheid.

Houd er ook rekening mee dat het automatisch genereren van afhankelijkheid niet wordt ondersteund in de bestand-per-
typemodus (--bestand-per-type). In dit geval worden alle gegenereerde bestanden geproduceerd
met één enkele compileraanroep en zijn afhankelijk van alle schema's. Het resultaat is dat het zo is
Het is gemakkelijker om een ​​dergelijke afhankelijkheid handmatig vast te stellen, misschien met behulp van de
--bestandslijst* opties.

--genereren-alleen-dep
Genereer maken alleen informatie over afhankelijkheid.

--dep-nep
Genereer valse doelen voor opgenomen/geïmporteerde schemabestanden, waardoor ze allemaal afhankelijk zijn
op niets. Dergelijke dummy-regels werken rond maken fouten veroorzaakt door het verwijderen van
schemabestanden zonder ook het afhankelijkheidsbestand bij te werken zodat het overeenkomt.

--dep-doel doel
Wijzig het doel van de afhankelijkheidsregel. Standaard bevat het alle gegenereerde bestanden
C++-bestanden en het afhankelijkheidsbestand zelf, zonder mapvoorvoegsels. Als
Als u meerdere doelen nodig heeft, kunt u deze specificeren als één enkele, spatie-
gescheiden argument of u kunt deze optie meerdere keren herhalen.

--dep-achtervoegsel achtervoegsel
Gebruik de meegeleverde achtervoegsel in plaats van de standaard .d om de naam van de te construeren
afhankelijkheidsbestand.

--dep-regex regex
Gebruik de opgegeven expressie om de naam van het afhankelijkheidsbestand samen te stellen. regex is
een Perl-achtige reguliere expressie in de vorm /patroon/vervanging/. Zie ook de
REGEX EN SHELL QUOTING-sectie hieronder.

--uitschakelen-waarschuwing waarschuwen
Schakel afdrukwaarschuwing met ID uit waarschuwen. Indien allen wordt dan opgegeven voor de waarschuwings-ID
alle waarschuwingen zijn uitgeschakeld.

--opties-bestand filet
Lees extra opties van filet. Elke optie zou op een aparte regel moeten verschijnen
eventueel gevolgd door een spatie en een optiewaarde. Lege lijnen en lijnen die beginnen
Met # worden genegeerd. Optiewaarden kunnen worden omsloten door dubbele (") of alleenstaand (')
aanhalingstekens om voorloop- en volgspaties te behouden en om lege spaties op te geven
waarden. Als de waarde zelf aanhalingstekens of aanhalingstekens bevat, plaatst u deze tussen een
extra paar aanhalingstekens, bijvoorbeeld '"X"'. Niet-leidende en niet-volgende koersen zijn dat wel
geïnterpreteerd als onderdeel van de optiewaarde.

De semantiek van het aanbieden van opties in een bestand is gelijk aan het aanbieden ervan
reeks opties in dezelfde volgorde op de opdrachtregel op het punt waar het
--opties-bestand optie is opgegeven, behalve dat de shell escapen en aanhalen is
niet verplicht. U kunt deze optie herhalen om meer dan één optiebestand op te geven.

--show-sloc
Toon het aantal gegenereerde fysieke broncoderegels (SLOC).

--sloc-limiet num
Controleer of het aantal gegenereerde fysieke broncoderegels (SLOC) dit niet doet
overtreffen num.

--eigen licentie
Geef aan dat de gegenereerde code is gelicentieerd onder een eigen licentie in plaats van
de GPL.

--aangepaste letterlijke waarden filet
Laad aangepaste XML-tekenreeks naar letterlijke C++-toewijzingen van filet. Dit mechanisme kan zijn
handig als u een aangepaste tekencodering en enkele tekenreeksen in uw
schema's, bijvoorbeeld namen van elementen/attributen of opsommingswaarden, bevatten niet-
ASCII-tekens. In dit geval moet u een aangepaste toewijzing aan C++ opgeven
letterlijke waarden voor dergelijke tekenreeksen. Het formaat van dit bestand is gespecificeerd in de op maat
letterlijk.xsd XML-schemabestand dat u kunt vinden in de documentatiemap.

--bewaren-anoniem
Anonieme typen behouden. Standaard worden anonieme typen automatisch benoemd met
namen afgeleid van de omhullende elementen/attributen. Omdat mappings zijn geïmplementeerd
door deze compiler vereisen dat alle typen een naam krijgen, deze optie is alleen nuttig als u
wilt u er zeker van zijn dat uw schema's geen anonieme typen hebben.

--toon-anoniem
Toon elementen en attributen die van anonieme typen zijn. Deze optie maakt alleen
zin samen met de --bewaren-anoniem optie.

--anonieme-regex regex
Toevoegen regex toegevoegd aan de lijst met reguliere expressies die worden gebruikt om namen voor anoniem af te leiden
typen uit de omsluitende attributen/elementen. regex is een Perl-achtige reguliere
uitdrukking in de vorm /patroon/vervanging/. Elk teken kan worden gebruikt als
scheidingsteken in plaats van /. Ontsnappen van het scheidingsteken in patroon or
vervanging wordt niet ondersteund.

Alle reguliere expressies worden in een stapel geduwd, waarbij de laatste is opgegeven
uitdrukking die als eerste wordt beschouwd. De eerste match die slaagt, wordt gebruikt. Normaal
expressies worden toegepast op een tekenreeks in het formulier

bestandsnaam namespace xpad

Bijvoorbeeld:

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

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

De volgende expressie zorgt er bijvoorbeeld voor dat alle afgeleide namen beginnen met
hoofdletters. Dit kan handig zijn als uw naamgeving type vereist
namen die met hoofdletters beginnen:

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

Zie ook het gedeelte REGEX EN SHELL QUOTING hieronder.

--anonieme-regex-trace
Traceer het proces van het toepassen van reguliere expressies die zijn opgegeven met de --anoniem-
regex keuze. Gebruik deze optie om erachter te komen waarom uw reguliere expressies niet werken
wat je van ze verwachtte.

--locatie-kaart ol=nl
Breng de oorspronkelijke schemalocatie in kaart ol dat is opgegeven in het XML-schema include or
importeer elementen naar een nieuwe schemalocatie nl. Herhaal deze optie om meer dan één in kaart te brengen
schemalocatie. De volgende optie wijst bijvoorbeeld de
http://example.com/foo.xsd URL naar de voedsel.xsd lokaal bestand.

--locatie-kaart http://example.com/foo.xsd=foo.xsd

--locatie-regex regex
Toevoegen regex toegevoegd aan de lijst met reguliere expressies die worden gebruikt om schemalocaties in kaart te brengen
die in het XML-schema zijn opgegeven, bevatten of importeren elementen. regex is een Perl-achtig
reguliere expressie in de vorm /patroon/vervanging/. Elk teken kan worden gebruikt als
een scheidingsteken in plaats van /. Ontsnappen van het scheidingsteken in patroon or
vervanging wordt niet ondersteund. Alle reguliere expressies worden in een stapel geduwd
waarbij de laatst opgegeven uitdrukking als eerste wordt beschouwd. De eerste wedstrijd die slaagt
is gebruikt.

Met de volgende expressie worden bijvoorbeeld URL-locaties in het formulier toegewezen
http://example.com/foo/bar.xsd naar lokale bestanden in het formulier bar.xsd:

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

Zie ook het gedeelte REGEX EN SHELL QUOTING hieronder.

--locatie-regex-trace
Traceer het proces van het toepassen van reguliere expressies die zijn opgegeven met de --plaats-
regex keuze. Gebruik deze optie om erachter te komen waarom uw reguliere expressies niet werken
wat je van ze verwachtte.

--bestand-per-type
Genereer een afzonderlijke set C++-bestanden voor elk type dat is gedefinieerd in het XML-schema. Opmerking
dat u in deze modus alleen de rootschema('s) hoeft te compileren en de code zal zijn
gegenereerd voor alle opgenomen en geïmporteerde schema's. Deze compilatiemodus is voornamelijk
handig als sommige van uw schema's niet afzonderlijk kunnen worden gecompileerd of cyclisch zijn
afhankelijkheden waarbij sprake is van typeovererving. Andere opties gerelateerd aan deze modus
zijn: --type-bestand-regex, --schema-bestand-regex, --fat-type-bestand en --bestandslijst.

--type-bestand-regex regex
Toevoegen regex naar de lijst met reguliere expressies die worden gebruikt om typenamen naar bestanden te vertalen
namen toen de --bestand-per-type optie is opgegeven. regex is een Perl-achtige reguliere
uitdrukking in de vorm /patroon/vervanging/. Elk teken kan worden gebruikt als
scheidingsteken in plaats van /. Ontsnappen van het scheidingsteken in patroon or
vervanging wordt niet ondersteund. Alle reguliere expressies worden in een stapel geduwd
waarbij de laatst opgegeven uitdrukking als eerste wordt beschouwd. De eerste wedstrijd die slaagt
is gebruikt. Reguliere expressies worden toegepast op een tekenreeks in het formulier

namespace typenaam

De volgende expressie wordt bijvoorbeeld toegewezen aan het type foo dat is gedefinieerd in de
http://example.com/bar naamruimte naar bestandsnaam bar-foo:

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

Zie ook het gedeelte REGEX EN SHELL QUOTING hieronder.

--type-bestand-regex-trace
Traceer het proces van het toepassen van reguliere expressies die zijn opgegeven met de --type-bestand-
regex keuze. Gebruik deze optie om erachter te komen waarom uw reguliere expressies niet werken
wat je van ze verwachtte.

--schema-bestand-regex regex
Toevoegen regex naar de lijst met reguliere expressies die worden gebruikt om schemabestandsnamen te vertalen
wanneer de --bestand-per-type optie is opgegeven. regex is een Perl-achtige reguliere
uitdrukking in de vorm /patroon/vervanging/. Elk teken kan worden gebruikt als
scheidingsteken in plaats van /. Ontsnappen van het scheidingsteken in patroon or
vervanging wordt niet ondersteund. Alle reguliere expressies worden in een stapel geduwd
waarbij de laatst opgegeven uitdrukking als eerste wordt beschouwd. De eerste wedstrijd die slaagt
is gebruikt. Reguliere expressies worden toegepast op het absolute bestandssysteempad van a
schema-bestand en het resultaat, inclusief het mapgedeelte, indien aanwezig, wordt gebruikt om af te leiden
de #include richtlijnpaden en de gegenereerde C++-bestandspaden. Deze optie,
met --type-bestand-regex zijn vooral handig om de gegenereerde bestanden in te plaatsen
submappen of om conflicten met bestandsnamen op te lossen.

De volgende expressie wijst bijvoorbeeld schemabestanden toe in de foo/1.0.0/
submap naar de bestanden in de foe/ submap. Als gevolg hiervan is de #include
richtlijnpaden voor dergelijke schema's bevinden zich in de foo/schema.hxx vorm en de
gegenereerde C++-bestanden worden in de foe/ submap:

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

Zie ook het gedeelte REGEX EN SHELL QUOTING hieronder.

--schema-bestand-regex-trace
Traceer het proces van het toepassen van reguliere expressies die zijn opgegeven met de --schema-bestand-
regex keuze. Gebruik deze optie om erachter te komen waarom uw reguliere expressies niet werken
wat je van ze verwachtte.

--fat-type-bestand
Genereer code die overeenkomt met globale elementen in typebestanden in plaats van in schema
bestanden wanneer de --type-bestand-regex optie is opgegeven. Deze optie is in de eerste plaats
handig als u probeert de hoeveelheid objectcode die aan een
uitvoerbaar door gecompileerde gegenereerde code in een statische (archief)bibliotheek te verpakken.

--bestandslijst filet
Schrijf een lijst met gegenereerde C++-bestanden naar filet. Deze optie is vooral handig in de
compilatiemodus bestand-per-type (--bestand-per-type) om een ​​lijst met gegenereerde C++ te maken
bestanden, bijvoorbeeld als een makefile-fragment.

--bestandslijst-proloog tekst
Invoegen tekst aan het begin van de bestandslijst. Voor het gemak worden alle gevallen van
de \n tekenvolgorde in tekst worden vervangen door nieuwe lijnen. Deze optie kan, voor
kan bijvoorbeeld worden gebruikt om de gegenereerde bestandslijst toe te wijzen aan een makefile-variabele.

--bestandslijst-epiloog tekst
Invoegen tekst aan het einde van de bestandslijst. Voor het gemak worden alle voorkomens van de
\n tekenvolgorde in tekst worden vervangen door nieuwe lijnen.

--bestandslijst-delim tekst
Scheid bestandsnamen die naar de bestandslijst zijn geschreven met tekst in plaats van nieuwe lijnen. Als een
gemak, alle voorkomens van de \n tekenvolgorde in tekst worden vervangen door
nieuwe lijnen.

cxx-boom commando opties
--genereren-polymorf
Genereer polymorfismebewuste code. Geef deze optie op als u vervanging gebruikt
groepen of xsi: type. Gebruik de --polymorf-type or --polymorf-type-alles optie om
specificeer welke typehiërarchieën polymorf zijn.

--polymorf-type type dan:
Geef aan dat type dan: is een wortel van een polymorfe typehiërarchie. De compiler kan dat
bepalen vaak automatisch welke typen polymorf zijn op basis van de vervanging
groepsverklaringen. Het is echter mogelijk dat u deze optie moet gebruiken als u deze niet gebruikt
vervangingsgroepen of als vervangingsgroepen in een ander schema zijn gedefinieerd. Jij
Deze optie moet worden opgegeven bij het compileren van elk schemabestand dat ernaar verwijst type dan: .
De type dan: argument is een XML-schematypenaam waarmee optioneel kan worden gekwalificeerd
een naamruimte in de namespace#naam vorm.

--polymorf-type-alles
Geef aan dat alle typen als polymorf moeten worden behandeld.

--polymorfe plaat num
Specificeer de polymorfe kaartplaat waarop de gegenereerde code moet worden geregistreerd. Dit
functionaliteit is vooral nuttig om meerdere schema's te scheiden die de
dezelfde polymorfe typen.

--geordend type type dan:
Geef de volgorde van dat element aan type dan: is aanzienlijk. Een voorbeeld zou een complex zijn
type met onbeperkte keuze als inhoudsmodel waarbij de elementvolgorde in XML heeft
toepassingsspecifieke semantiek. Voor geordende typen genereert de compiler een special
containergegevenslid en een overeenkomstige set accessors en modifiers die dat wel zijn
gebruikt om de volgorde van elementen vast te leggen en, voor gemengde inhoud, van tekst.

De type dan: argument is een XML-schematypenaam waarmee optioneel kan worden gekwalificeerd
een naamruimte in de namespace#naam formulier. Houd er ook rekening mee dat u dit moet opgeven
deze optie bij het compileren van elk schemabestand waarvan andere geordende typen zijn afgeleid
van dit type.

--geordend-type-afgeleid
Behandel typen die zijn afgeleid van geordende bases automatisch als besteld. Dit is
vooral handig als u de volledige inhoud wilt kunnen herhalen
met behulp van de container voor inhoudsbestellingen.

--besteld-type-gemengd
Behandel complexe typen automatisch met gemengde inhoud zoals besteld.

--besteld-type-alles
Geef aan dat de elementvolgorde bij alle typen significant is.

--bestelcontainer type dan:
Geef een aangepaste klassensjabloon op die moet worden gebruikt als container voor de inhoud
volgorde in geordende typen in plaats van de standaard standaard::vector. Zien --geordend type For
meer informatie over het bestelde type. Deze optie is vooral handig als dat nodig is
voer complexere zoekopdrachten uit in de inhoudsordercontainer, bijvoorbeeld per element
ID kaart. In dit geval kan een container als Boost multi-index handiger zijn. Opmerking
dat als u een aangepaste container gebruikt, u waarschijnlijk ook de
relevante headers met behulp van de --hxx-proloog* opties.

--genereren-serialisatie
Genereer serialisatiefuncties. Serialisatiefuncties converteren het objectmodel
terug naar XML.

--genereren-ostream
Genereer ostream-invoegoperatoren (exploitant<) voor gegenereerde typen. Dit maakt het mogelijk
één om eenvoudig een fragment of het hele objectmodel af te drukken voor foutopsporing of logboekregistratie.

--genereren-doxygen
Genereer documentatiecommentaar dat geschikt is voor extractie door de Doxygen
documentatiesysteem. Documentatie van annotaties wordt toegevoegd aan de opmerkingen if
aanwezig in het schema.

--genereren-vergelijking
Vergelijkingsoperatoren genereren (exploitant== en exploitant!=) voor complexe typen.
De vergelijking wordt per lid uitgevoerd.

--genereer-standaard-ctor
Genereer standaardconstructors, zelfs voor typen die vereiste leden hebben. Vereist
leden van een instantie die met een dergelijke constructor is geconstrueerd, worden niet geïnitialiseerd en
toegang ertoe resulteert in ongedefinieerd gedrag.

--genereer-van-basis-ctor
Genereer constructors die een exemplaar van een basistype verwachten, gevolgd door alles
benodigde leden.

--onderdruk-toewijzing
Onderdruk het genereren van kopieertoewijzingsoperatoren voor complexe typen. Als dit
optie is opgegeven, worden de kopieertoewijzingsoperatoren voor dergelijke typen gedeclareerd
privé en niet geïmplementeerd.

--genereren-losmaken
Genereer ontkoppelingsfuncties voor vereiste elementen en attributen. Ontkoppel functies
voor optionele en sequentiekardinaliteiten worden geleverd door de respectieve containers.
Met deze functies kunt u bijvoorbeeld subbomen in het objectmodel verplaatsen
binnen dezelfde boom of tussen verschillende bomen.

--genereren-wildcard
Genereer accessors en modifiers, evenals parseer- en serialisatiecode voor XML
Schemajokertekens (elke en elk kenmerk). XML-inhoud die wordt gekoppeld aan jokertekens is
gepresenteerd als DOM-fragmenten. Houd er rekening mee dat u de Xerces-C++-runtime moet initialiseren
als u deze optie gebruikt.

--genereren-elk-type
Extraheer de inhoud van het XML-schema en sla deze op elk type typ het als een DOM-fragment. Opmerking
dat u de Xerces-C++ runtime moet initialiseren als u deze optie gebruikt.

--genereren-invoeging os
Genereer operatoren voor het invoegen van datarepresentatiestromen voor de os uitvoerstroom:
type. Herhaal deze optie om meer dan één streamtype op te geven. De ACE CDR-stream
(ACE_OutputCDR) en RPC XDR worden door de compiler herkend en de nodige
#include richtlijnen worden automatisch gegenereerd. Gebruik voor aangepaste streamtypen de
--hxx-proloog* mogelijkheden om de benodigde aangiften te verstrekken.

--genereren-extractie is
Genereer datarepresentatiestream-extractieconstructors voor de is invoerstroom
type. Herhaal deze optie om meer dan één streamtype op te geven. De ACE CDR-stream
(ACE_InvoerCDR) en RPC XDR worden door de compiler herkend en de nodige
#include richtlijnen worden automatisch gegenereerd. Gebruik voor aangepaste streamtypen de
--hxx-proloog* mogelijkheden om de benodigde aangiften te verstrekken.

--genereren-vooruit
Genereer een afzonderlijk headerbestand met voorwaartse declaraties voor de typen Being
gegenereerd.

--onderdrukken-parseren
Onderdruk het genereren van de parseerfuncties en constructors. Gebruik deze optie
om de gegenereerde codegrootte te verkleinen wanneer parseren vanuit XML niet nodig is.

--generate-element-type
Genereer typen in plaats van parseer- en serialisatiefuncties voor hoofdelementen.
Dit is vooral handig om objectmodellen met hetzelfde roottype te onderscheiden
met verschillende wortelelementen.

--genereer-element-kaart
Genereer een hoofdelementkaart die uniforme parsering en serialisatie mogelijk maakt
meerdere wortelelementen. Deze optie is alleen geldig in combinatie met --genereren-element-
type dan: .

--genereren-intelligentie
Genereer oplossingen voor IntelliSense-bugs in Visual Studio 2005 (8.0). Wanneer dit
optie wordt gebruikt, is de resulterende code iets uitgebreider. IntelliSense-in
Voor Visual Studio 2008 (9.0) en hoger zijn deze tijdelijke oplossingen niet vereist. Ondersteuning voor
IntelliSense in Visual Studio 2003 (7.1) is verbeterd met deze optie, maar dat is nog steeds zo
incompleet.

--omit-default-attributen
Laat attributen met standaard- en vaste waarden weg uit geserialiseerde XML-documenten.

--typenaamgeving stijl
Geef de typenaamgevingsconventie op die in de gegenereerde code moet worden gebruikt. Geldig
stijlen zijn knr (Standaard) ucc en Java. Zie het gedeelte NAAMVERDRAG hieronder
voor meer informatie.

--functienaamgeving stijl
Geef de functienaamgevingsconventie op die in de gegenereerde code moet worden gebruikt.
Geldige stijlen zijn knr (Standaard) lcc en Java. Zie de sectie NAAMVERDRAG
hieronder voor meer informatie.

--type-regex regex
Toevoegen regex naar de lijst met reguliere expressies die worden gebruikt om het XML-schematype te vertalen
namen naar C++-typenamen. Zie het gedeelte NAAMVERDRAG hieronder voor meer informatie
informatie.

--accessor-regex regex
Toevoegen regex naar de lijst met reguliere expressies die worden gebruikt om XML-schemanamen van te vertalen
elementen/attributen voor C++-toegangsfunctienamen. Zie de NAAMVERDRAG
sectie hieronder voor meer informatie.

--één-accessor-regex regex
Toevoegen regex naar de lijst met reguliere expressies die worden gebruikt om XML-schemanamen van te vertalen
elementen/attributen met kardinaliteit één tot C++ accessorfunctienamen. Zie de
NAAMVERDRAG hieronder voor meer informatie.

--opt-accessor-regex regex
Toevoegen regex naar de lijst met reguliere expressies die worden gebruikt om XML-schemanamen van te vertalen
elementen/attributen met kardinaliteit optioneel voor C++ accessor-functienamen. Zien
het gedeelte NAAMVERDRAG hieronder voor meer informatie.

--seq-accessor-regex regex
Toevoegen regex naar de lijst met reguliere expressies die worden gebruikt om XML-schemanamen van te vertalen
elementen/attributen met kardinaliteitsvolgorde voor C++-toegangsfunctienamen. Zien
het gedeelte NAAMVERDRAG hieronder voor meer informatie.

--modifier-regex regex
Toevoegen regex naar de lijst met reguliere expressies die worden gebruikt om XML-schemanamen van te vertalen
elementen/attributen aan C++ modifier-functienamen. Zie de NAAMVERDRAG
sectie hieronder voor meer informatie.

--one-modifier-regex regex
Toevoegen regex naar de lijst met reguliere expressies die worden gebruikt om XML-schemanamen van te vertalen
elementen/attributen met kardinaliteit één tot C++ modificatiefunctienamen. Zie de
NAAMVERDRAG hieronder voor meer informatie.

--opt-modifier-regex regex
Toevoegen regex naar de lijst met reguliere expressies die worden gebruikt om XML-schemanamen van te vertalen
elementen/attributen met kardinaliteit optioneel voor C++ modifier-functienamen. Zien
het gedeelte NAAMVERDRAG hieronder voor meer informatie.

--seq-modifier-regex regex
Toevoegen regex naar de lijst met reguliere expressies die worden gebruikt om XML-schemanamen van te vertalen
elementen/attributen met een kardinaliteitsvolgorde voor C++-modificatiefunctienamen. Zien
het gedeelte NAAMVERDRAG hieronder voor meer informatie.

--parser-regex regex
Toevoegen regex naar de lijst met reguliere expressies die worden gebruikt om het XML-schema-element te vertalen
namen naar C++ parseerfunctienamen. Zie het gedeelte NAAMVERDRAG hieronder voor
meer informatie.

--serializer-regex regex
Toevoegen regex naar de lijst met reguliere expressies die worden gebruikt om het XML-schema-element te vertalen
namen naar C++ serialisatiefunctienamen. Zie het gedeelte NAAMVERDRAG hieronder
voor meer informatie.

--const-regex regex
Toevoegen regex naar de lijst met reguliere expressies die worden gebruikt om XML-schema-afgeleide vertalingen te vertalen
namen naar constante namen in C++. Zie het gedeelte NAAMVERDRAG hieronder voor meer informatie
informatie.

--teller-regex regex
Toevoegen regex naar de lijst met reguliere expressies die worden gebruikt om het XML-schema te vertalen
opsommingswaarden naar C++-enumeratornamen. Zie het gedeelte NAAMVERDRAG hieronder
voor meer informatie.

--element-type-regex regex
Toevoegen regex naar de lijst met reguliere expressies die worden gebruikt om het XML-schema-element te vertalen
namen naar C++-elementtypenamen. Zie het gedeelte NAAMVERDRAG hieronder voor meer informatie
informatie.

--naam-regex-trace
Traceer het proces van het toepassen van reguliere expressies die bij de naam zijn opgegeven
transformatie mogelijkheden. Gebruik deze optie om erachter te komen waarom uw reguliere expressies
doe niet wat je van ze verwachtte.

--root-element-eerst
Behandel alleen het eerste globale element als documentroot. Standaard allemaal globaal
elementen worden beschouwd als documentwortels.

--root-element-laatste
Behandel alleen het laatste globale element als documenthoofdmap. Standaard allemaal globaal
elementen worden beschouwd als documentwortels.

--root-element-alles
Behandel alle globale elementen als documentwortels. Dit is het standaardgedrag. Door
Door deze optie expliciet op te geven, kunt u de waarschuwing onderdrukken die wordt gegeven als
er is meer dan één globaal element gedefinieerd.

--root-element-none
Behandel geen globale elementen als documentwortels. Standaard alle globale elementen
worden beschouwd als documentwortels.

--root-element element
Alleen behandelen element als documentroot. Herhaal deze optie om er meer dan één op te geven
wortelelement.

--aangepast type kaart
Gebruik een aangepast C++-type in plaats van de gegenereerde klasse. De kaart argument staat in de
formulier naam[= type dan: [/baseren]], waar naam is een typenaam zoals gedefinieerd in XML Schema en
type dan: is een C++-typenaam die in plaats daarvan moet worden gebruikt. Als type dan: is niet aanwezig of
leeg, dan wordt aangenomen dat het aangepaste type dezelfde naam heeft en gedefinieerd is in de
dezelfde naamruimte als de gegenereerde klasse zou hebben. Als baseren is opgegeven, dan is de
gegenereerde klasse wordt nog steeds gegenereerd, maar met die naam.

--aangepast-type-regex regex
Gebruik aangepaste C++-typen in plaats van de gegenereerde klassen. De regex argument staat in de
formulier /naampat/[type-sub/[basis-sub/]], waar naampat is een regex-patroon dat dat wel doet
worden vergeleken met typenamen zoals gedefinieerd in XML Schema en type-sub is een C++-type
naamvervanging die in plaats daarvan moet worden gebruikt. Als type-sub is niet aanwezig of zijn
vervanging resulteert in een lege tekenreeks, waarna wordt aangenomen dat het aangepaste type de
dezelfde naam en worden gedefinieerd in dezelfde naamruimte als de gegenereerde klasse zou hebben.
If basis-sub aanwezig is en de vervanging ervan resulteert in een niet-lege tekenreeks en vervolgens de
gegenereerde klasse wordt nog steeds gegenereerd, maar met het resultaat van deze vervanging als zijn
naam. Het patroon en de vervangingen zijn in de reguliere expressie-indeling van Perl. Zien
ook de sectie REGEX EN SHELL QUOTING hieronder.

--onderdelen num
Splits de gegenereerde broncode in num onderdelen. Dit is handig bij het vertalen van grote,
monolithische schema's en een C++-compiler kan de resulterende bron niet compileren
code in één keer (meestal vanwege onvoldoende geheugen).

--onderdelen-achtervoegsel achtervoegsel
Te gebruiken achtervoegsel in plaats van de standaard '-' om de bestandsnaam van het onderdeel te scheiden
nummer.

cxx-parser commando opties
--type-kaart mapbestand
Lees XML-schema naar C++-typetoewijzingsinformatie uit mapbestand. Herhaal deze optie
specificeer verschillende typekaarten. Typekaarten worden beschouwd in volgorde van verschijning en de
eerste wedstrijd wordt gebruikt. Standaard worden alle door de gebruiker gedefinieerde typen toegewezen komen te vervallen. Zie het
TYPE KAART hieronder voor meer informatie.

--xml-parser parser
Te gebruiken parser als de onderliggende XML-parser. Geldige waarden zijn xerces voor Xerces-C++
(standaard) en expat voor expat.

--genereren-validatie
Validatiecode genereren. Daarvoor zorgt de validatiecode ("perfect parser")
instancedocumenten voldoen aan het schema. Validatiecode wordt standaard gegenereerd
wanneer de geselecteerde onderliggende XML-parser niet-validerend is (expat).

--onderdruk-validatie
Onderdruk het genereren van validatiecode. Validatie wordt standaard onderdrukt
wanneer de geselecteerde onderliggende XML-parser valideert (xerces).

--genereren-polymorf
Genereer polymorfismebewuste code. Geef deze optie op als u vervanging gebruikt
groepen of xsi: type.

--genereren-noop-impl
Genereer een voorbeeld van een parserimplementatie die niets doet (geen bewerking). De
voorbeeldimplementatie kan vervolgens worden gevuld met de applicatiespecifieke code. Voor een
invoerbestand in het formulier naam.xsd deze optie activeert de generatie van twee
extra C++-bestanden in de vorm: naam-pimple.hxx (parser-implementatiekop
bestand) en naam-pimple.cxx (parser-implementatie bronbestand).

--genereren-print-impl
Genereer een voorbeeld van een parserimplementatie die de XML-gegevens naar STDOUT afdrukt. Voor een
invoerbestand in het formulier naam.xsd deze optie activeert de generatie van twee
extra C++-bestanden in de vorm: naam-pimple.hxx (parser-implementatiekop
bestand) en naam-pimple.cxx (parser-implementatie bronbestand).

--genereer-teststuurprogramma
Genereer een teststuurprogramma voor de implementatie van de voorbeeldparser. Voor een invoerbestand in
het formulier naam.xsd deze optie activeert het genereren van een extra C++-bestand in
het formulier naam-stuurprogramma.cxx.

--geforceerd overschrijven
Forceer het overschrijven van de bestaande implementatie- en teststuurprogrammabestanden. Gebruik dit
optie alleen als u het niet erg vindt om de wijzigingen die u in de sample hebt aangebracht, kwijt te raken
implementatie- of teststuurprogrammabestanden.

--root-element-eerst
Geef aan dat het eerste globale element de documentroot is. Deze informatie is
gebruikt om de testdriver voor de voorbeeldimplementatie te genereren.

--root-element-laatste
Geef aan dat het laatste globale element de documentroot is. Deze informatie is
gebruikt om de testdriver voor de voorbeeldimplementatie te genereren.

--root-element element
Geef aan dat element is de documentroot. Deze informatie wordt gebruikt om te genereren
de testdriver voor de voorbeeldimplementatie.

--skel-type-achtervoegsel achtervoegsel
Gebruik de meegeleverde achtervoegsel in plaats van de standaard _pskel om de namen te construeren van de
gegenereerde parserskeletten.

--skel-bestand-achtervoegsel achtervoegsel
Gebruik de meegeleverde achtervoegsel in plaats van de standaard -pskel om de namen te construeren van de
gegenereerde parserskeletbestanden.

--impl-type-achtervoegsel achtervoegsel
Gebruik de meegeleverde achtervoegsel in plaats van de standaard _pimpel om de namen te construeren van de
parser-implementaties voor de ingebouwde XML-schematypen, evenals voorbeeldparser
implementaties.

--impl-bestand-achtervoegsel achtervoegsel
Gebruik de meegeleverde achtervoegsel in plaats van de standaard -pimpel om de namen te construeren van de
gegenereerde voorbeeldparser-implementatiebestanden.

BENAMING VERDRAG


De compiler kan worden geïnstrueerd om een ​​bepaalde naamgevingsconventie te gebruiken in het gegenereerde bestand
code. Een aantal veelgebruikte conventies kunnen worden geselecteerd met behulp van de --typenaamgeving en
--functienaamgeving opties. Een aangepaste naamgevingsconventie kan worden bereikt met behulp van de --type-
regex, --accessor-regex, --één-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, --teller-regex en --element-type-
regex opties.

De --typenaamgeving optie specificeert de conventie die moet worden gebruikt voor het benoemen van C++
soorten. Mogelijke waarden voor deze optie zijn knr (Standaard) ucc en Java. De knr waarde
(staat voor K&R) betekent de standaard naamgevingsconventie in kleine letters met het onderstrepingsteken
gebruikt als woordscheidingsteken, bijvoorbeeld: foo, foo_bar. De ucc (staat voor bovenste kameel-
geval) en Java waardeert een synoniem voor dezelfde naamgevingsconventie als de eerste letter van
elk woord in de naam wordt met een hoofdletter geschreven, bijvoorbeeld: Foo, FooBar.

Evenzo is de --functienaamgeving optie specificeert de conventie waarvoor moet worden gebruikt
C++-functies benoemen. Mogelijke waarden voor deze optie zijn knr (Standaard) lcc en Java.
De knr waarde (staat voor K&R) betekent de standaard naamgevingsconventie in kleine letters met
het onderstrepingsteken wordt gebruikt als woordscheidingsteken, bijvoorbeeld: foo(), foo_bar(). De lcc waarde
(staat voor kleine letters) betekent een naamgevingsconventie waarbij de eerste letter van elk
woord behalve dat het eerste een hoofdletter heeft, bijvoorbeeld: foo(), fooBar(). De Java naamgeving
conventie is vergelijkbaar met die in kleine letters, behalve dat accessor-functies dat ook zijn
voorafgegaan door get, modificatiefuncties worden voorafgegaan door set, parseerfuncties wel
voorafgegaan door parseren, en serialisatiefuncties worden voorafgegaan door serialiseren, bijvoorbeeld:
getFoo(), setFooBar(), parseRoot(), serializeRoot().

Houd er rekening mee dat de naamgevingsconventies die zijn opgegeven met de --typenaamgeving en --functienaamgeving
opties voeren slechts beperkte transformaties uit op de namen die afkomstig zijn uit het schema in de
vorm van type-, attribuut- en elementnamen. Met andere woorden: om consistente resultaten te verkrijgen,
uw schema's moeten een soortgelijke naamgevingsconventie volgen als degene die u graag zou willen hebben
in de gegenereerde code. Als alternatief kunt u gebruik maken van de --*-regex opties (hieronder besproken)
om verdere transformaties uit te voeren op de namen die uit het schema komen.

De --type-regex, --accessor-regex, --één-accessor-regex, --opt-accessor-regex, --volg-
accessor-regex, --modifier-regex, --one-modifier-regex, --opt-modifier-regex, --volg-
modifier-regex, --parser-regex, --serializer-regex, --const-regex, --teller-regex en
--element-type-regex Met opties kunt u voor elke naam extra reguliere expressies opgeven
categorie naast de vooraf gedefinieerde set die wordt toegevoegd afhankelijk van de --typenaamgeving
en --functienaamgeving opties. Expressies die worden meegeleverd met de --*-regex opties
worden geëvalueerd voorafgaand aan eventuele vooraf gedefinieerde expressies. Hierdoor kunt u selectief overschrijven
enkele of alle vooraf gedefinieerde transformaties. Bij het debuggen van uw eigen expressies is dit het geval
vaak handig om te zien welke uitdrukkingen bij welke namen passen. De --naam-regex-trace optie
Hiermee kunt u het proces volgen van het toepassen van reguliere expressies op namen.

De waarde voor de --*-regex opties moeten een perl-achtige reguliere expressie in de vorm zijn
/patroon/vervanging/. Elk teken kan als scheidingsteken worden gebruikt in plaats van /. Ontsnappen
van het scheidingsteken in patroon or vervanging wordt niet ondersteund. Allemaal regulier
expressies voor elke categorie worden samen met de laatste naar een categoriespecifieke stapel gepusht
opgegeven uitdrukking als eerste beschouwd. De eerste match die slaagt, wordt gebruikt. Voor de
--één-accessor-regex (accessors met kardinaliteit één), --opt-accessor-regex (accessoire
met kardinaliteit optioneel), en --seq-accessor-regex (accessors met kardinaliteitsreeks)
categorieën de --accessor-regex expressies worden gebruikt als fallback. Voor de --een-
modifier-regex, --opt-modifier-regex en --seq-modifier-regex categorieën de --modificator-
regex expressies worden gebruikt als fallback. Voor de --element-type-regex categorie de
--type-regex expressies worden gebruikt als fallback.

De typenaamexpressies (--type-regex) worden geëvalueerd op basis van de naamtekenreeks met de
volgende formaat:

[namespace ]naam[,naam][,naam][,naam]

De naamexpressies van het elementtype (--element-type-regex), alleen effectief als de
--generate-element-type optie is opgegeven, worden geëvalueerd op basis van de naamtekenreeks met de
volgende formaat:

namespace naam

In het typenaamformaat wordt de namespace een deel gevolgd door een spatie is alleen aanwezig voor globaal
soort namen. Voor globale typen en elementen die zijn gedefinieerd in schema's zonder doelnaamruimte:
de namespace een deel is leeg maar de ruimte is nog steeds aanwezig. In het typenaamformaat erna
de initiële naam component, maximaal drie extra naam componenten kunnen aanwezig zijn,
gescheiden door comma's. Bijvoorbeeld:

http://example.com/hello type dan:

foo

foe, iterator

foo,const,iterator

De volgende set vooraf gedefinieerde reguliere expressies wordt gebruikt om typenamen te transformeren wanneer
de naamgevingsconventie in hoofdletters wordt geselecteerd:

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

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

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

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

De accessor- en modifier-expressies (--*accessor-regex en --*modifier-regex) zijn
geëvalueerd op basis van de naamtekenreeks met de volgende notatie:

naam[,naam][,naam]

Na de initiaal naam component, maximaal twee extra naam componenten kunnen aanwezig zijn,
gescheiden door comma's. Bijvoorbeeld:

foo

dom,document

foo, standaard, waarde

De volgende set vooraf gedefinieerde reguliere expressies wordt gebruikt om accessornamen te transformeren
wanneer de Java naamgevingsconventie is geselecteerd:

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

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

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

Voor de parser-, serializer- en enumeratorcategorieën geldt het overeenkomstige reguliere
expressies worden geëvalueerd op basis van lokale namen van elementen en opsommingswaarden,
respectievelijk. De volgende vooraf gedefinieerde reguliere expressie wordt bijvoorbeeld gebruikt
transformeer parseerfunctienamen wanneer de Java naamgevingsconventie is geselecteerd:

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

De const-categorie wordt gebruikt om C++-constantenamen te maken voor het element/jokerteken/tekst
inhoud-ID's in geordende typen.

Zie ook het gedeelte REGEX EN SHELL QUOTING hieronder.

TYPE MAP


Typemapbestanden worden in C++/Parser gebruikt om een ​​mapping tussen XML Schema en C++ te definiëren
soorten. De compiler gebruikt deze informatie om de retourtypen van te bepalen na_*
functies in parserskeletten die overeenkomen met XML-schematypen en argumenttypen
voor callbacks die overeenkomen met elementen en attributen van deze typen.

De compiler beschikt over een set vooraf gedefinieerde toewijzingsregels waaraan ingebouwde XML-schematypen worden toegewezen
geschikte C++-typen (hieronder besproken) en alle andere typen komen te vervallen. Door uw eigen aan te bieden
type kaarten kunt u deze vooraf gedefinieerde regels overschrijven. Het formaat van het type mapbestand is
hieronder weergegeven:

namespace schemanaamruimte [ cxx-naamruimte ]
{
( omvatten bestandsnaam; )*
([ type dan: ] schema-type cxx-ret-type [ cxx-arg-type ]; )*
}

Te gebruiken zowel schemanaamruimte en schema-type zijn regex-patronen while cxx-naamruimte, cxx-ret-
type dan: en cxx-arg-type zijn regex-patroonsubstituties. Alle namen kunnen optioneel zijn
ingesloten tussen " ", bijvoorbeeld om spaties op te nemen.

schemanaamruimte bepaalt de XML-schemanaamruimte. Optioneel cxx-naamruimte wordt voorafgegaan door
elke C++-typenaam in deze naamruimtedeclaratie. cxx-ret-type is een C++-typenaam die
wordt gebruikt als retourtype voor de na_* functies. Optioneel cxx-arg-type is een argument
type voor callback-functies die overeenkomen met elementen en attributen van dit type. Als cxx-
arg-type is niet gespecificeerd, het is standaard cxx-ret-type if cxx-ret-type eindigt met * or &
(dat wil zeggen, het is een aanwijzer of een verwijzing) en const cxx-ret-type& anders. bestandsnaam is
een bestandsnaam in de indeling " " of < > en wordt toegevoegd met de #include richtlijn aan
de gegenereerde code.

De # karakter begint een commentaar dat eindigt met een nieuwe regel of einde van het bestand. Om een ​​op te geven
naam die bevat # plaats het tussen " ". Bijvoorbeeld:

namespace http://www.example.com/xmlns/my my
{
neem "mijn.hxx" op;

# Geef appels door op waarde.
#
appel appel;

# Geef sinaasappels door als aanwijzingen.
#
oranje oranje_t*;
}

In het bovenstaande voorbeeld, voor de http://www.example.com/xmlns/my#oranje XML-schematype, de
mijn::orange_t* Het type C++ wordt gebruikt als retour- en argumenttype.

Er kunnen meerdere naamruimtedeclaraties in één bestand worden opgegeven. De naamruimte
declaratie kan ook volledig worden weggelaten om typen in een schema zonder naamruimte toe te wijzen.
Bijvoorbeeld:

neem "mijn.hxx" op;
appel appel;

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

De compiler heeft een aantal vooraf gedefinieerde toewijzingsregels die kunnen worden gepresenteerd als de
volgende kaartbestanden. De op tekenreeksen gebaseerde ingebouwde XML-schematypen worden aan beide toegewezen
std::tekenreeks or std::wstring afhankelijk van het tekentype dat is geselecteerd met de --char-type
keuze (verkolen standaard).

namespace http://www.w3.org/2001/XMLSchema
{
booleaanse bool bool;

byte "ondertekend teken" "ondertekend teken";
unsignedByte "niet-ondertekende char" "niet-ondertekende char";

kort kort kort;
unsignedShort "niet-ondertekend kort" "niet-ondertekend kort";

int int;
unsignedInt "niet-ondertekende int" "niet-ondertekende int";

lang "lang lang" "lang lang";
unsignedLong "niet-ondertekend lang lang" "niet-ondertekend lang lang";

geheel getal "lang lang" "lang lang";

negatiefGeheel getal "lang lang" "lang lang";
nonPositiveInteger "lang lang" "lang lang";

positiveInteger "niet-ondertekend lang lang" "niet-ondertekend lang lang";
nonNegativeInteger "niet-ondertekend lang lang" "niet-ondertekend lang lang";

vlotter vlotter;
dubbel dubbel dubbel;
decimaal dubbel dubbel;

tekenreeks std::tekenreeks;
genormaliseerdeString std::string;
token std::tekenreeks;
Naam std::string;
NMTOKEN standaard::tekenreeks;
NCName std::tekenreeks;
ID std::tekenreeks;
IDREF standaard::tekenreeks;
taal std::string;
anyURI std::tekenreeks;

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

QName xml_schema::qname;

base64Binaire std::auto_ptr
std::auto_ptr ;
hexBinary std::auto_ptr
std::auto_ptr ;

datum xml_schema::datum;
dateTime xml_schema::date_time;
duur xml_schema::duur;
gDay xml_schema::gday;
gMonth xml_schema::gmaand;
gMonthDay xml_schema::gmaand_dag;
gYear xml_schema::gyear;
gYearMonth xml_schema::gyear_month;
tijd xml_schema::tijd;
}

De laatste vooraf gedefinieerde regel wijst alles toe dat niet door eerdere regels was toegewezen komen te vervallen:

naamruimte .*
{
.* leegte leegte;
}

Wanneer u uw eigen typekaarten aanlevert met de --type-kaart optie, worden ze eerst geëvalueerd.
Hierdoor kunt u vooraf gedefinieerde regels selectief negeren.

REGEX EN SHELL CITAAT


Bij het invoeren van een reguliere expressie-argument op de shell-opdrachtregel is dit vaak het geval
Het is noodzakelijk om aanhalingstekens te gebruiken (waarbij het argument tussen " " of ' ') wordt geplaatst om te voorkomen dat de
shell bepaalde tekens niet interpreteert, bijvoorbeeld spaties als scheidingstekens voor argumenten en
$ als variabele uitbreidingen.

Helaas is het moeilijk om dit te bereiken op een manier die overdraagbaar is over POSIX-shells,
zoals die gevonden worden op GNU/Linux en UNIX, en Windows shell. Als u bijvoorbeeld " " gebruikt
voor citeren krijg je een verkeerd resultaat met POSIX-shells als je expressie $ bevat.
De standaardmanier om hiermee om te gaan op POSIX-systemen is door in plaats daarvan ' ' te gebruiken.
Helaas verwijdert de Windows-shell ' ' niet uit argumenten wanneer ze worden doorgegeven
toepassingen. Als gevolg hiervan moet u mogelijk ' ' gebruiken voor POSIX en " " voor Windows ($ niet
behandeld als een speciaal teken in Windows).

Als alternatief kunt u opties voor reguliere expressies opslaan in een bestand, één optie per regel,
en gebruik dit bestand met de --opties-bestand keuze. Met deze aanpak hoeft dat niet
Maak je zorgen over het citeren van shells.

DIAGNOSE


Als het invoerbestand geen geldige W3C XML Schema-definitie is, xsdcxx zal een diagnose uitbrengen
berichten naar STDERR en sluit af met een uitgangscode die niet nul is.

Gebruik xsdcxx online met behulp van onworks.net-services


Gratis servers en werkstations

Windows- en Linux-apps downloaden

Linux-commando's

Ad