Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

xsdcxx — Online w chmurze

Uruchom xsdcxx w bezpłatnym dostawcy hostingu OnWorks w systemie Ubuntu Online, Fedora Online, emulatorze online systemu Windows lub emulatorze online systemu MAC OS

To jest polecenie xsdcxx, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS

PROGRAM:

IMIĘ


xsdcxx — kompilator schematu XML W3C do C++

STRESZCZENIE


xsdcxx komenda [ Opcje ] filet [ filet ...]
xsdcxx pomoc [ komenda ]
xsdcxx wersja

OPIS


xsdcxx generuje specyficzne dla słownictwa, statycznie typowane mapowanie C++ ze schematu W3C XML
definicje. Konkretne mapowanie do wytworzenia jest wybierane przez a komenda. Każde mapowanie ma
liczba mapowań specyficznych Opcje które powinno pojawić się, jeśli istnieje, po komenda. Wkład
pliki powinny być definicjami schematu W3C XML. Dokładny zestaw wygenerowanych plików zależy
na wybranym mapowaniu i opcjach.

POLECENIA


drzewo cxx
Wygeneruj mapowanie C++/Drzewo. Dla każdego pliku wejściowego w formularzu imię.xsd dotychczasowy
generowane są następujące pliki C++: nazwa.hxx (plik nagłówkowy), nazwa.ixx (plik wbudowany,
generowane tylko wtedy, gdy --generuj-inline opcja jest określona), nazwa.cxx (Źródło
plik) i nazwa-fwd.hxx (plik deklaracji forward, generowany tylko wtedy, gdy plik
--generuj-do przodu jest określona opcja).

parser cxx
Wygeneruj mapowanie C++/Parser. Dla każdego pliku wejściowego w formularzu imię.xsd dotychczasowy
generowane są następujące pliki C++: nazwa-pskel.hxx (plik nagłówkowy szkieletu parsera),
nazwa-pskel.ixx (wbudowany plik szkieletu parsera, generowany tylko wtedy, gdy --Generować-
inline opcja jest określona) i nazwa-pskel.cxx (plik źródłowy szkieletu parsera). Jeśli
dotychczasowy --generate-noop-impl or --generuj-drukuj-impl opcja jest określona,
generowane są następujące dodatkowe przykładowe pliki implementacyjne: nazwa-pimpl.hxx
(plik nagłówkowy implementacji parsera) i nazwa-pimpl.cxx (implementacja parsera
Plik źródłowy). Jeśli --generuj-sterownik-testowy opcja jest określona, ​​dodatkowa
nazwa-sterownik.cxx generowany jest plik sterownika testowego.

pomoc Wydrukuj informacje o użytkowaniu i wyjdź. Używać

xsdcxx pomoc komenda

w celu uzyskania pomocy dotyczącej konkretnych poleceń.

wersja
Wydrukuj wersję i wyjdź.

OPCJE


Specyficzne dla polecenia Opcje, jeśli istnieje, powinno pojawić się po odpowiednim komenda.

pospolity Opcje
--std wersja
Określ standard C++, z którym powinien być zgodny wygenerowany kod. Prawidłowe wartości
jest c++98 (domyślnie) i c++11.

Standard C++ wpływa na różne omówione aspekty generowanego kodu
bardziej szczegółowo w różnych dokumentacjach specyficznych dla mapowania. Ogólnie rzecz biorąc, gdy C++ 11 jest
wybrana, wygenerowany kod opiera się na semantyce i zastosowaniach przenoszenia std::unique_ptr
zamiast przestarzałego std::auto_ptr.

Po wybraniu trybu C++ 11 zwykle nie trzeba wykonywać żadnych dodatkowych kroków
inne niż włączenie C++ 11 w kompilatorze C++, jeśli jest to wymagane. Kompilator XSDCXX to zrobi
automatycznie doda niezbędne definicje makr do wygenerowanych plików nagłówkowych
przełączy bibliotekę wykonawczą XSDCXX zawierającą tylko nagłówek (libxsd) do trybu C++ 11.
Jeśli jednak dołączysz którykolwiek z nagłówków środowiska wykonawczego XSDCXX bezpośrednio do pliku
aplikacji (zwykle dołączasz po prostu wygenerowane nagłówki), będziesz potrzebować
zdefiniować XSD_CXX11 makro dla całego projektu.

--typ-znakowy rodzaj
Wygeneruj kod, używając podanego znaku rodzaj zamiast domyślnego zwęglać. Ważny
wartości są zwęglać i wchar_t.

--kodowanie znaków enc
Określ kodowanie znaków, które powinno zostać użyte w wygenerowanym kodzie. Ważny
wartości dla zwęglać typ znaku to utf8 (Domyślne) iso8859-1, lp (Xerces-C++
lokalna strona kodowa) i zwyczaj. Jeśli przejdziesz zwyczaj jako wartość, której będziesz potrzebować
aby na początku dołączyć nagłówek implementacji transkodera do kodowania
wygenerowanych plików nagłówkowych (zobacz --hxx-prolog opcja).

Dla wchar_t typ znaku, jedyną prawidłową wartością jest samochód i kodowanie jest
automatycznie wybierany pomiędzy UTF-16 i UTF-32/UCS-4, w zależności od wchar_t
rozmiar typu.

--katalog-wyjściowy reż
Zapisz wygenerowane pliki do reż zamiast bieżącego katalogu.

--generuj-inline
Generuj proste funkcje inline. Ta opcja powoduje utworzenie pliku wbudowanego.

--generate-xml-schema
Wygeneruj plik nagłówkowy C++ tak, jakby kompilowany schemat definiował schemat XML
przestrzeń nazw. W przypadku mapowania C++/Tree wynikowy plik będzie zawierał definicje
dla wszystkich wbudowanych typów schematu XML. W przypadku mapowania C++/Parser wynikowy plik
będzie zawierać definicje wszystkich szkieletów i implementacji parsera
odpowiadające typom wbudowanym XML Schema.

Plik schematu dostarczony kompilatorowi nie musi istnieć i służy jedynie do wyprowadzania
nazwa wynikowego pliku nagłówkowego. Użyj --extern-xml-schema opcja do
dołącz ten plik do wygenerowanych plików dla innych schematów.

--extern-xml-schema filet
Dołącz plik nagłówkowy pochodzący z filet zamiast generować schemat XML
Wbudowane mapowanie przestrzeni nazw. Dostarczony plik nie musi istnieć i jest tylko przyzwyczajony
wyprowadź nazwę dołączonego pliku nagłówkowego. Użyj --generate-xml-schema opcja
aby wygenerować ten plik nagłówkowy.

--mapa przestrzeni nazw xns=cns
Mapuj przestrzeń nazw schematu XML xns do przestrzeni nazw C++ cns. Powtórz tę opcję, aby określić
mapowanie dla więcej niż jednej przestrzeni nazw XML Schema. Na przykład następująca opcja:

--mapa przestrzeni nazw http://example.com/foo/bar=foo::pasek

Zmapuje http://example.com/foo/bar Przestrzeń nazw schematu XML do foo::bar C + +
przestrzeń nazw.

--przestrzeń nazw-regex regex
Dodaj regex do listy wyrażeń regularnych używanych do tłumaczenia przestrzeni nazw XML Schema
nazwy na nazwy przestrzeni nazw C++. regex jest wyrażeniem regularnym podobnym do Perla w formularzu
/wzorzec/wymiana/. Zamiast tego jako ogranicznika można użyć dowolnego znaku /.
Ucieczka znaku ogranicznika w wzorzec or wymiana nie jest wspierany.

Wszystkie wyrażenia regularne są umieszczane na stosie z ostatnim określonym
wyrażenie rozważane jako pierwsze. Stosowane jest pierwsze pomyślne dopasowanie. Regularny
wyrażenia są stosowane do ciągu znaków w formularzu

filename przestrzeń nazw

Na przykład, jeśli masz plik cześć.xsd z przestrzenią nazw http://example.com/hello i
biegasz xsd w tym pliku, wówczas dany ciąg będzie miał postać:

cześć.xsd. http://example.com/hello

W przypadku wbudowanej przestrzeni nazw XML Schema ciąg znaków ma postać:

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

Poniższe trzy kroki są wykonywane dla każdego wyrażenia regularnego aż do dopasowania
jest znalezione:

1. Wyrażenie jest stosowane i jeśli wynik jest pusty, następuje następne wyrażenie
uważane.

2. Wszystko / są zastąpione przez ::.

3. Sprawdzamy, czy wynik jest poprawną nazwą zakresu C++ (np. foo::bar). Jeśli to
test zakończy się pomyślnie, wynik zostanie użyty jako nazwa przestrzeni nazw C++.

Jako przykład poniższe wyrażenie odwzorowuje przestrzenie nazw schematu XML w formularzu
http://example.com/foo/bar do przestrzeni nazw C++ w formularzu foo::bar:

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

Zobacz także sekcję CYTOWANIE REGEX I SHELL poniżej.

--namespace-regex-śledzenie
Prześledź proces stosowania wyrażeń regularnych określonych za pomocą --przestrzeń nazw-
regex opcja. Użyj tej opcji, aby dowiedzieć się, dlaczego wyrażenia regularne nie działają
czego się po nich spodziewałeś.

--zarezerwowana nazwa n[=r]
Dodaj nazwę n do listy nazw, które nie powinny być używane jako identyfikatory. Imię
może opcjonalnie nastąpić = i nazwę zastępczą r należy to wykorzystać
Zamiast. Wszystkie słowa kluczowe C++ znajdują się już na tej liście.

--uwzględnij-w nawiasach
W wygenerowanym pliku użyj nawiasów ostrych (<>) zamiast cudzysłowów ("") #zawierać dyrektyw.

--include-przedrostek prefiks
Dodaj prefiks wygenerować #zawierać ścieżki dyrektywne.

Na przykład, jeśli w schemacie znajdował się następujący element importu

<importuj przestrzeń nazw="..." schemaLocation="base.xsd"/>

i skompilowałem ten fragment za pomocą --include-przedrostek schematy/, następnie uwzględnij
dyrektywa w wygenerowanym kodzie będzie wyglądać następująco:

#zawierać „schematy/baza.hxx”

--include-regex regex
Dodaj regex do listy wyrażeń regularnych używanych do transformacji #zawierać Dyrektywy
ścieżki regex jest wyrażeniem regularnym podobnym do Perla w formularzu /wzorzec/wymiana/.
Zamiast tego jako ogranicznika można użyć dowolnego znaku /. Ucieczka od ogranicznika
znak wzorzec or wymiana nie jest wspierany.

Wszystkie wyrażenia regularne są umieszczane na stosie z ostatnim określonym
wyrażenie rozważane jako pierwsze. Stosowane jest pierwsze pomyślne dopasowanie.

Przykładowo poniższe wyrażenie przekształca ścieżki w formularzu
schematy/foo/bar do ścieżek w formularzu wygenerowano/foo/bar:

%schematów/(.+)% wygenerowanych/1% $

Zobacz także sekcję CYTOWANIE REGEX I SHELL poniżej.

--include-regex-śledzenie
Prześledź proces stosowania wyrażeń regularnych określonych za pomocą --włączać-
regex opcja. Użyj tej opcji, aby dowiedzieć się, dlaczego wyrażenia regularne nie działają
czego się po nich spodziewałeś.

--przedrostek-strażnik prefiks
Dodaj prefiks do wygenerowanych zabezpieczeń włączenia nagłówka. Przedrostek jest przekształcany na górny
wielkość liter i znaki niedozwolone w nazwie makra preprocesora są zastępowane przez
podkreśla. Jeżeli ta opcja nie jest określona, ​​wówczas część wejścia zawiera katalog
plik schematu jest używany jako przedrostek.

--hxx-sufiks przyrostek
Skorzystaj z dostarczonego przyrostek zamiast domyślnego .hxx skonstruować nazwę
plik nagłówkowy. Należy pamiętać, że ten przyrostek jest również używany do konstruowania nazw plików nagłówkowych
odpowiadające dołączonym/importowanym schematom.

--ixx-sufiks przyrostek
Skorzystaj z dostarczonego przyrostek zamiast domyślnego .ixx skonstruować nazwę
plik wbudowany.

--cxx-sufiks przyrostek
Skorzystaj z dostarczonego przyrostek zamiast domyślnego .cxx skonstruować nazwę
Plik źródłowy.

--fwd-sufiks przyrostek
Skorzystaj z dostarczonego przyrostek zamiast domyślnego -fwd.hxx skonstruować nazwę
plik deklaracji forward.

--hxx-regex regex
Użyj podanego wyrażenia, aby skonstruować nazwę pliku nagłówkowego. regex jest
Wyrażenie regularne podobne do Perla w formularzu /wzorzec/wymiana/. Zwróć uwagę, że this
wyrażenie jest również używane do konstruowania nazw plików nagłówkowych odpowiadających
dołączone/zaimportowane schematy. Zobacz także sekcję CYTOWANIE REGEX I SHELL poniżej.

--ixx-regex regex
Użyj podanego wyrażenia, aby skonstruować nazwę pliku wbudowanego. regex jest
Wyrażenie regularne podobne do Perla w formularzu /wzorzec/wymiana/. Zobacz także REGEX
ORAZ CYTOWANIE SHELL poniżej.

--cxx-regex regex
Użyj podanego wyrażenia, aby skonstruować nazwę pliku źródłowego. regex jest
Wyrażenie regularne podobne do Perla w formularzu /wzorzec/wymiana/. Zobacz także REGEX
ORAZ CYTOWANIE SHELL poniżej.

--fwd-regex regex
Użyj podanego wyrażenia, aby skonstruować nazwę pliku deklaracji forward.
regex jest wyrażeniem regularnym podobnym do Perla w formularzu /wzorzec/wymiana/. Zobacz też
sekcja CYTOWANIE REGEX I SHELL poniżej.

--hxx-prolog XNUMX
wstawka XNUMX na początku pliku nagłówkowego.

--ixx-prolog XNUMX
wstawka XNUMX na początku pliku inline.

--cxx-prolog XNUMX
wstawka XNUMX na początku pliku źródłowego.

--fwd-prolog XNUMX
wstawka XNUMX na początku pliku deklaracji forward.

--prolog XNUMX
wstawka XNUMX na początku każdego wygenerowanego pliku, dla którego nie ma pliku-
konkretny prolog.

--hxx-epilog XNUMX
wstawka XNUMX na końcu pliku nagłówkowego.

--ixx-epilog XNUMX
wstawka XNUMX na końcu pliku inline.

--cxx-epilog XNUMX
wstawka XNUMX na końcu pliku źródłowego.

--fwd-epilog XNUMX
wstawka XNUMX na końcu pliku deklaracji forward.

--epilog XNUMX
wstawka XNUMX na końcu każdego wygenerowanego pliku, dla którego nie ma przypisanego pliku
epilog.

--hxx-plik-prologu filet
Wstaw treść filet na początku pliku nagłówkowego.

--ixx-plik-prologu filet
Wstaw treść filet na początku pliku inline.

--cxx-plik-prologu filet
Wstaw treść filet na początku pliku źródłowego.

--fwd-plik-prologu filet
Wstaw treść filet na początku pliku deklaracji forward.

--plik-prologu filet
Wstaw treść filet na początku każdego wygenerowanego pliku, dla którego
nie ma pliku prologu specyficznego dla pliku.

--hxx-plik-epilogu filet
Wstaw treść filet na końcu pliku nagłówkowego.

--ixx-plik-epilogu filet
Wstaw treść filet na końcu pliku inline.

--cxx-epilog-plik filet
Wstaw treść filet na końcu pliku źródłowego.

--fwd-plik-epilogu filet
Wstaw treść filet na końcu pliku deklaracji forward.

--epilog-plik filet
Wstaw treść filet na końcu każdego wygenerowanego pliku, dla którego istnieje
brak pliku epilogu specyficznego dla pliku.

--symbol eksportu symbol
wstawka symbol w miejscach, w których znajdują się instrukcje sterujące eksportem/importem DLL
(__declspec(dllexport/dllimport)) są konieczne.

--export-xml-schemat
Eksportuj/importuj typy w przestrzeni nazw XML Schema przy użyciu dostarczonego symbolu eksportu
z --symbol eksportu opcja. XSD_NO_EXPORT można użyć makra, aby to pominąć
kod podczas kompilacji C++, co może być przydatne, jeśli chcesz użyć tego samego
wygenerowany kod na wielu platformach.

--eksportuj-mapy
Eksportuj mapy obsługi polimorfizmu z biblioteki DLL Win32, w której znajduje się wygenerowany kod
umieszczony. Jest to konieczne, gdy hierarchia typów jest podzielona na kilka bibliotek DLL
ponieważ w przeciwnym razie każda biblioteka DLL będzie miała swój własny zestaw map. W tej sytuacji
wygenerowany kod dla biblioteki DLL, która zawiera typy podstawowe i/lub grupę podstawień
head należy skompilować z tą opcją i wygenerowanym kodem dla wszystkich innych bibliotek DLL
należy skompilować z --importuj-mapy. Ta opcja jest ważna tylko razem z
--generuj-polimorficzny, XSD_NO_EXPORT makro można wykorzystać do pominięcia tego kodu
podczas kompilacji C++, co może być przydatne, jeśli chcesz użyć tego samego
wygenerowany kod na wielu platformach.

--importuj-mapy
Zaimportuj mapy obsługi polimorfizmu do biblioteki DLL Win32 lub pliku wykonywalnego, do którego to nastąpi
wygenerowany kod jest powiązany. Zobacz --eksportuj-mapy szczegółowe informacje można znaleźć w dokumentacji opcji.
Ta opcja jest ważna tylko razem z --generuj-polimorficzny, XSD_NO_EXPORT
makro można wykorzystać do pominięcia tego kodu podczas kompilacji C++, co może być przydatne, jeśli
chcesz używać tego samego wygenerowanego kodu na wielu platformach.

--generuj-dep
Generuj swój robić informacje o zależnościach. Ta opcja powoduje utworzenie pliku .d
plik zawierający zależności wygenerowanych plików od głównego pliku schematu jako
a także wszystkie pliki schematu, które zawiera/importuje, przechodnio. Ten
plik zależności jest następnie zwykle dołączany do pliku main makefile do wdrożenia
automatyczne śledzenie zależności.

Należy również pamiętać, że automatyczne generowanie zależności nie jest obsługiwane w trybie plik na-
tryb pisania (--plik według typu). W tym przypadku tworzone są wszystkie wygenerowane pliki
za pomocą jednego wywołania kompilatora i zależą od wszystkich schematów. W rezultacie tak jest
łatwiej jest ustalić taką zależność ręcznie, być może za pomocą metody
--lista-plików* opcje.

--generate-dep-only
Generuj swój robić tylko informacje o zależnościach.

--dep-fałszywy
Generuj fałszywe cele dla dołączonych/importowanych plików schematu, powodując zależność każdego z nich
na niczym. Takie fikcyjne zasady działają robić błędy spowodowane usunięciem
schema bez aktualizacji pliku zależności w celu dopasowania.

--dep-cel cel
Zmień cel reguły zależności. Domyślnie zawiera wszystkie wygenerowane pliki
Pliki C++, a także sam plik zależności, bez żadnych przedrostków katalogów. Jeśli
potrzebujesz wielu celów, możesz je określić jako pojedynczy, spacjami
oddzielony argument lub możesz powtórzyć tę opcję wiele razy.

--dep-przyrostek przyrostek
Skorzystaj z dostarczonego przyrostek zamiast domyślnego .d skonstruować nazwę
plik zależności.

--dep-regex regex
Użyj podanego wyrażenia, aby skonstruować nazwę pliku zależności. regex is
wyrażenie regularne podobne do Perla w formularzu /wzorzec/wymiana/. Zobacz także
Sekcja CYTOWANIE REGEX I SHELL poniżej.

--ostrzeżenie o wyłączeniu ostrzec
Wyłącz ostrzeżenie o drukowaniu za pomocą identyfikatora ostrzec. Jeśli cała kolekcja jest wówczas określony dla identyfikatora ostrzeżenia
wszystkie ostrzeżenia są wyłączone.

--opcje-plik filet
Przeczytaj dodatkowe opcje od filet. Każda opcja powinna pojawić się w osobnej linii
opcjonalnie następuje spacja i wartość opcji. Puste linie i linie zaczynające się
w # są ignorowane. Wartości opcji można ująć w znak podwójny (") albo pojedynczy (')
cudzysłowy, aby zachować początkowe i końcowe białe znaki, a także określić puste
wartości. Jeśli sama wartość zawiera cudzysłów końcowy lub wiodący, należy ją ująć w znak an
dodatkowa para cudzysłowów, np '"X"'. Cytaty bez początku i końca są
interpretowane jako część wartości opcji.

Semantyka udostępniania opcji w pliku jest równoznaczna z zapewnianiem tego samego
zestaw opcji w tej samej kolejności w wierszu poleceń w miejscu, w którym znajduje się plik
--opcje-plik określono opcję, z tą różnicą, że jest to ucieczka powłoki i cytowanie
nie wymagane. Możesz powtórzyć tę opcję, aby określić więcej niż jeden plik opcji.

--show-sloc
Pokaż liczbę wygenerowanych fizycznych linii źródłowych kodu (SLOC).

--limit-sloc num
Sprawdź, czy liczba wygenerowanych fizycznych linii kodu źródłowego (SLOC) nie jest taka sama
przekraczać num.

--licencja-własnościowa
Wskaż, że wygenerowany kod jest objęty licencją zastrzeżoną, a nie
GPL.

--literały-niestandardowe filet
Załaduj niestandardowy ciąg XML do mapowań literałów C++ z filet. Taki mechanizm może być
przydatne, jeśli używasz niestandardowego kodowania znaków i niektórych ciągów w pliku
schematy, na przykład nazwy elementów/atrybutów lub wartości wyliczeń, zawierają nie-
Znaki ASCII. W takim przypadku będziesz musiał zapewnić niestandardowe mapowanie do C++
literały dla takich ciągów. Format tego pliku jest określony w pliku na zamówienie
literały.xsd Plik schematu XML, który można znaleźć w katalogu dokumentacji.

--zachowaj-anonimowy
Zachowaj typy anonimowe. Domyślnie typy anonimowe są automatycznie nazywane
nazwy pochodzące od otaczających elementów/atrybutów. Ponieważ zaimplementowano mapowania
przez ten kompilator wymaga nazwania wszystkich typów, ta opcja jest użyteczna tylko wtedy, gdy ty
chcesz się upewnić, że Twoje schematy nie mają typów anonimowych.

--pokaż-anonimowy
Pokaż elementy i atrybuty typu anonimowego. Ta opcja tylko sprawia
sens razem z --zachowaj-anonimowy opcja.

--anonymous-regex regex
Dodaj regex do listy wyrażeń regularnych używanych do wyprowadzania nazw anonimowych
typy z otaczających atrybutów/elementów. regex jest regularnością podobną do Perla
wyrażenie w formie /wzorzec/wymiana/. Dowolny znak może zostać użyty jako
ogranicznik zamiast /. Ucieczka znaku ogranicznika w wzorzec or
wymiana nie jest wspierany.

Wszystkie wyrażenia regularne są umieszczane na stosie z ostatnim określonym
wyrażenie rozważane jako pierwsze. Stosowane jest pierwsze pomyślne dopasowanie. Regularny
wyrażenia są stosowane do ciągu znaków w formularzu

filename przestrzeń nazw xścieżka

Na przykład:

cześć.xsd http://example.com/hello element

cześć.xsd http://example.com/hello typ/element

Na przykład poniższe wyrażenie powoduje, że wszystkie nazwy pochodne zaczynają się od
wielkie litery. Może to być przydatne, gdy konwencja nazewnictwa wymaga typu
nazwy zaczynające się z dużej litery:

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

Zobacz także sekcję CYTOWANIE REGEX I SHELL poniżej.

--anonymous-regex-śledzenie
Prześledź proces stosowania wyrażeń regularnych określonych za pomocą --anonimowy-
regex opcja. Użyj tej opcji, aby dowiedzieć się, dlaczego wyrażenia regularne nie działają
czego się po nich spodziewałeś.

--Mapa lokalizacji ol=nl
Zamapuj oryginalną lokalizację schematu ol który jest określony w schemacie XML, zawiera lub
zaimportuj elementy do nowej lokalizacji schematu nl. Powtórz tę opcję, aby zmapować więcej niż jedno
lokalizacja schematu. Na przykład poniższa opcja odwzorowuje plik
http://example.com/foo.xsd Adres URL do foo.xsd plik lokalny.

--Mapa lokalizacji http://example.com/foo.xsd=foo.xsd

--lokalizacja-regex regex
Dodaj regex do listy wyrażeń regularnych używanych do mapowania lokalizacji schematów
określone w schemacie XML obejmują lub importują elementy. regex jest podobny do Perla
wyrażenie regularne w formularzu /wzorzec/wymiana/. Można użyć dowolnego znaku
ogranicznik zamiast /. Ucieczka znaku ogranicznika w wzorzec or
wymiana nie jest wspierany. Wszystkie wyrażenia regularne są umieszczane na stosie
z ostatnim określonym wyrażeniem rozpatrywanym jako pierwsze. Pierwszy mecz, który się udał
Jest używane.

Na przykład poniższe wyrażenie odwzorowuje lokalizacje adresów URL w formularzu
http://example.com/foo/bar.xsd do plików lokalnych w formularzu bar.xsd:

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

Zobacz także sekcję CYTOWANIE REGEX I SHELL poniżej.

--lokalizacja-regex-trace
Prześledź proces stosowania wyrażeń regularnych określonych za pomocą --Lokalizacja-
regex opcja. Użyj tej opcji, aby dowiedzieć się, dlaczego wyrażenia regularne nie działają
czego się po nich spodziewałeś.

--plik według typu
Wygeneruj osobny zestaw plików C++ dla każdego typu zdefiniowanego w schemacie XML. Notatka
że w tym trybie wystarczy skompilować schemat(y) główny i kod będzie gotowy
generowane dla wszystkich uwzględnionych i zaimportowanych schematów. Ten tryb kompilacji jest przede wszystkim
przydatne, gdy niektórych schematów nie można skompilować osobno lub mają one charakter cykliczny
zależności, które obejmują dziedziczenie typów. Inne opcje związane z tym trybem
należą: --type-file-regex, --schemat-plik-regex, --plik typu fat, --lista-plików.

--type-file-regex regex
Dodaj regex do listy wyrażeń regularnych używanych do tłumaczenia nazw typów na plik
nazwy, kiedy --plik według typu opcja jest określona. regex jest regularnością podobną do Perla
wyrażenie w formie /wzorzec/wymiana/. Dowolny znak może zostać użyty jako
ogranicznik zamiast /. Ucieczka znaku ogranicznika w wzorzec or
wymiana nie jest wspierany. Wszystkie wyrażenia regularne są umieszczane na stosie
z ostatnim określonym wyrażeniem rozpatrywanym jako pierwsze. Pierwszy mecz, który się udał
Jest używane. Wyrażenia regularne są stosowane do ciągu znaków w formularzu

przestrzeń nazw Wpisz imię

Na przykład następujący typ map wyrażeń bla który jest zdefiniowany w
http://example.com/bar przestrzeni nazw na nazwę pliku bar-foo:

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

Zobacz także sekcję CYTOWANIE REGEX I SHELL poniżej.

--type-file-regex-śledzenie
Prześledź proces stosowania wyrażeń regularnych określonych za pomocą --typ-plik-
regex opcja. Użyj tej opcji, aby dowiedzieć się, dlaczego wyrażenia regularne nie działają
czego się po nich spodziewałeś.

--schemat-plik-regex regex
Dodaj regex do listy wyrażeń regularnych używanych do tłumaczenia nazw plików schematów
kiedy --plik według typu opcja jest określona. regex jest regularnością podobną do Perla
wyrażenie w formie /wzorzec/wymiana/. Dowolny znak może zostać użyty jako
ogranicznik zamiast /. Ucieczka znaku ogranicznika w wzorzec or
wymiana nie jest wspierany. Wszystkie wyrażenia regularne są umieszczane na stosie
z ostatnim określonym wyrażeniem rozpatrywanym jako pierwsze. Pierwszy mecz, który się udał
Jest używane. Wyrażenia regularne są stosowane do bezwzględnej ścieżki systemu plików a
schema, a wynik, w tym część katalogu, jeśli istnieje, jest używany do wyprowadzenia
dotychczasowy #zawierać ścieżki dyrektyw, a także wygenerowane ścieżki plików C++. Ta opcja,
oraz --type-file-regex są przede wszystkim przydatne do umieszczania wygenerowanych plików
podkatalogów lub w celu rozwiązania konfliktów nazw plików.

Na przykład poniższe wyrażenie odwzorowuje pliki schematu w formacie foo/1.0.0/
podkatalog plików w bla/ podkatalog. W rezultacie #zawierać
ścieżki dyrektyw dla takich schematów będą znajdować się w pliku foo/schemat.hxx formularz i
wygenerowane pliki C++ zostaną umieszczone w pliku bla/ podkatalog:

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

Zobacz także sekcję CYTOWANIE REGEX I SHELL poniżej.

--schema-file-regex-śledzenie
Prześledź proces stosowania wyrażeń regularnych określonych za pomocą --schemat-plik-
regex opcja. Użyj tej opcji, aby dowiedzieć się, dlaczego wyrażenia regularne nie działają
czego się po nich spodziewałeś.

--plik typu fat
Wygeneruj kod odpowiadający elementom globalnym do plików typów zamiast schematu
pliki, gdy --type-file-regex opcja jest określona. Ta opcja jest przede wszystkim
przydatne, gdy próbujesz zminimalizować ilość kodu obiektowego powiązanego z plikiem
wykonywalny poprzez spakowanie skompilowanego wygenerowanego kodu do biblioteki statycznej (archiwum).

--lista-plików filet
Zapisz listę wygenerowanych plików C++ do filet. Ta opcja jest przydatna przede wszystkim w
tryb kompilacji według typu pliku (--plik według typu), aby utworzyć listę wygenerowanych plików C++
pliki, na przykład jako fragment pliku makefile.

--prolog listy plików XNUMX
wstawka XNUMX na początku listy plików. Dla wygody wszystkie wystąpienia
dotychczasowy \n sekwencja znaków w XNUMX są zastępowane nowymi liniami. Ta opcja może np
na przykład można użyć do przypisania wygenerowanej listy plików do zmiennej makefile.

--epilog-listy-plików XNUMX
wstawka XNUMX na końcu listy plików. Dla wygody wszystkie wystąpienia
\n sekwencja znaków w XNUMX są zastępowane nowymi liniami.

--lista-plików-delim XNUMX
Ogranicz nazwy plików zapisane na liście plików za pomocą XNUMX zamiast nowych linii. Jak
wygoda, wszystkie wystąpienia \n sekwencja znaków w XNUMX są zastąpione przez
nowe linie.

drzewo cxx komenda Opcje
--generuj-polimorficzny
Generuj kod uwzględniający polimorfizm. Określ tę opcję, jeśli używasz podstawienia
grupy lub xsi: typ. Użyj --typ polimorficzny or --typ-polimorficzny-wszystko opcja do
określ, które hierarchie typów są polimorficzne.

--typ polimorficzny rodzaj
Wskaż, że rodzaj jest korzeniem hierarchii typów polimorficznych. Kompilator może
często automatycznie określa, które typy są polimorficzne, na podstawie podstawienia
deklaracje grupowe. Jeśli jednak nie używasz tej opcji, może być konieczne skorzystanie z niej
grupy podstawieniowe lub jeśli grupy podstawieniowe są zdefiniowane w innym schemacie. Ty
należy określić tę opcję podczas kompilowania każdego pliku schematu, do którego się odwołuje rodzaj.
Połączenia rodzaj argument jest nazwą typu schematu XML, która może być opcjonalnie kwalifikowana
przestrzeń nazw w przestrzeń nazw#Nazwa forma.

--typ-polimorficzny-wszystko
Wskaż, że wszystkie typy powinny być traktowane jako polimorficzne.

--płyta-polimorficzna num
Określ polimorficzną tablicę mapy, na której powinien zostać zarejestrowany wygenerowany kod. Ten
Funkcjonalność jest przede wszystkim przydatna do segregowania wielu schematów definiujących
te same typy polimorficzne.

--typ zamówiony rodzaj
Wskaż kolejność elementów rodzaj jest znaczące. Przykładem może być kompleks
type z nieograniczonym wyborem jako model treści, w którym obowiązuje kolejność elementów w formacie XML
semantyka specyficzna dla aplikacji. Dla uporządkowanych typów kompilator generuje specjalny
element członkowski danych kontenera i odpowiedni zestaw akcesoriów i modyfikatorów
używany do przechwytywania kolejności elementów i, w przypadku treści mieszanych, tekstu.

Połączenia rodzaj argument jest nazwą typu schematu XML, która może być opcjonalnie kwalifikowana
przestrzeń nazw w przestrzeń nazw#Nazwa formularz. Pamiętaj również, że będziesz musiał określić
tę opcję podczas kompilowania każdego pliku schematu, który ma inne uporządkowane typy
od tego typu.

--pochodzące z typu uporządkowanego
Automatycznie traktuj typy wywodzące się z uporządkowanych zasad jako również uporządkowane. To jest
przydatne przede wszystkim, jeśli chcesz mieć możliwość iteracji po całej treści
za pomocą kontenera kolejności treści.

--typ zamówiony-mieszany
Automatycznie traktuj złożone typy z mieszaną zawartością zgodnie z zamówieniem.

--ordered-type-all
Wskaż, że kolejność elementów we wszystkich typach jest istotna.

--kontener-zamówień rodzaj
Określ niestandardowy szablon klasy, który powinien być używany jako kontener dla treści
kolejność w uporządkowanych typach zamiast domyślnych std::wektor. Zobaczyć --typ zamówiony dla
więcej informacji na temat zamawianego rodzaju. Ta opcja jest przydatna przede wszystkim, jeśli zajdzie taka potrzeba
wykonywać bardziej złożone wyszukiwania w kontenerze kolejności treści, na przykład według elementu
ID. W tym przypadku wygodniejszy może być kontener taki jak Boost multiindex. Notatka
że jeśli używasz niestandardowego kontenera, najprawdopodobniej będziesz musiał również dołączyć plik
odpowiednie nagłówki za pomocą --hxx-prolog* opcje.

--generuj-serializację
Generuj funkcje serializacyjne. Funkcje serializacji konwertują model obiektowy
powrót do XML-a.

--generuj-ostream
Generuj operatory wstawiania ostream (operator<) dla wygenerowanych typów. To pozwala
jeden do łatwego wydrukowania fragmentu lub całego modelu obiektowego w celu debugowania lub logowania.

--generuj-doxygen
Generuj komentarze do dokumentacji odpowiednie do ekstrakcji przez Doxygen
systemu dokumentacji. Dokumentacja z adnotacji jest dodawana do komentarzy jeśli
obecny na schemacie.

--generuj-porównanie
Generuj operatory porównania (operator== i operatorze!=) dla typów złożonych.
Porównanie przeprowadzane jest według prętów.

--generuj-domyślny-ctor
Generuj konstruktory domyślne nawet dla typów, które mają wymagane elementy członkowskie. Wymagany
elementy instancji zbudowanej przy użyciu takiego konstruktora nie są inicjowane i
dostęp do nich powoduje niezdefiniowane zachowanie.

--generuj-z-aktora-bazowego
Generuj konstruktory, które oczekują wystąpienia typu podstawowego, po którym następuje all
wymagani członkowie.

--supress-przypisanie
Pomiń generowanie operatorów przypisania kopii dla typów złożonych. Jeśli to
zostanie podana opcja, zadeklarowane zostaną operatory przypisania kopiowania dla takich typów
prywatny i pozostawiony bez realizacji.

--generuj-odłącz
Wygeneruj funkcje odłączania dla wymaganych elementów i atrybutów. Odłącz funkcje
dla liczności opcjonalnych i sekwencyjnych zapewniają odpowiednie kontenery.
Funkcje te pozwalają na przykład przesuwać poddrzewa w modelu obiektowym
w obrębie tego samego drzewa lub pomiędzy różnymi drzewami.

--generuj symbol wieloznaczny
Generuj akcesoria i modyfikatory, a także kod parsujący i serializacyjny dla XML
Symbole wieloznaczne schematu (każdy i dowolnyAtrybut). Treść XML dopasowana za pomocą symboli wieloznacznych to
prezentowane jako fragmenty DOM. Pamiętaj, że musisz zainicjować środowisko wykonawcze Xerces-C++
jeśli korzystasz z tej opcji.

--generuj-dowolny-typ
Wyodrębnij i przechowuj zawartość schematu XML dowolnyTyp wpisz jako fragment DOM. Notatka
że musisz zainicjować środowisko wykonawcze Xerces-C++, jeśli używasz tej opcji.

--generuj-wstawianie os
Wygeneruj operatory wstawiania strumienia reprezentacji danych dla os strumień wyjściowy
typ. Powtórz tę opcję, aby określić więcej niż jeden typ strumienia. Strumień ACE CDR
(ACE_CDR wyjścia) i RPC XDR są rozpoznawane przez kompilator i niezbędne
#zawierać dyrektywy są generowane automatycznie. W przypadku niestandardowych typów strumieni użyj opcji
--hxx-prolog* możliwość złożenia niezbędnych oświadczeń.

--generuj-ekstrakcję is
Wygeneruj konstruktory ekstrakcji strumienia reprezentacji danych dla is strumień wejściowy
typ. Powtórz tę opcję, aby określić więcej niż jeden typ strumienia. Strumień ACE CDR
(ACE_CDR wejścia) i RPC XDR są rozpoznawane przez kompilator i niezbędne
#zawierać dyrektywy są generowane automatycznie. W przypadku niestandardowych typów strumieni użyj opcji
--hxx-prolog* możliwość złożenia niezbędnych oświadczeń.

--generuj-do przodu
Wygeneruj osobny plik nagłówkowy z deklaracjami forward dla typów
wygenerowane.

--pomiń parsowanie
Pomiń generowanie funkcji analizujących i konstruktorów. Użyj tej opcji
aby zmniejszyć rozmiar wygenerowanego kodu, gdy parsowanie z XML nie jest potrzebne.

--generuj typ elementu
Generuj typy zamiast funkcji analizowania i serializacji dla elementów głównych.
Jest to przede wszystkim przydatne do rozróżnienia modeli obiektów o tym samym typie głównym, ale
z różnymi elementami korzeniowymi.

--generuj mapę elementów
Wygeneruj mapę elementów głównych, która umożliwia jednolite analizowanie i serializację
wiele elementów głównych. Ta opcja jest ważna tylko razem z --generuj-element-
rodzaj.

--generuj inteligencję
Generuj obejścia błędów funkcji IntelliSense w programie Visual Studio 2005 (8.0). Kiedy to
opcja jest używana, wynikowy kod jest nieco bardziej szczegółowy. IntelliSense w
Visual Studio 2008 (9.0) i nowsze wersje nie wymagają tych obejść. Wsparcie dla
Funkcja IntelliSense w programie Visual Studio 2003 (7.1) została ulepszona dzięki tej opcji, ale nadal jest
niekompletny.

--pomiń-domyślne-atrybuty
Pomiń atrybuty o wartościach domyślnych i stałych w serializowanych dokumentach XML.

--nazewnictwo typów styl
Określ konwencję nazewnictwa typów, która powinna być używana w wygenerowanym kodzie. Ważny
style są knr (Domyślne) ucc, Jawa. Zobacz sekcję KONWENCJA NAZWANIA poniżej
po więcej informacji.

--nazewnictwo funkcji styl
Określ konwencję nazewnictwa funkcji, która powinna być używana w wygenerowanym kodzie.
Prawidłowe style są knr (Domyślne) lcc, Jawa. Zobacz sekcję KONWENCJA NAZWANIA
poniżej, aby uzyskać więcej informacji.

--wpisz wyrażenie regularne regex
Dodaj regex do listy wyrażeń regularnych używanych do tłumaczenia typu schematu XML
nazwy na nazwy typu C++. Aby uzyskać więcej informacji, zobacz sekcję KONWENCJA NAZWANIA poniżej
informacje.

--akcesor-regex regex
Dodaj regex do listy wyrażeń regularnych używanych do tłumaczenia nazw schematów XML
elementy/atrybuty nazw funkcji akcesoryjnych C++. Zobacz KONWENCJĘ NAZYWANIA
sekcja poniżej, aby uzyskać więcej informacji.

--one-akcesor-regex regex
Dodaj regex do listy wyrażeń regularnych używanych do tłumaczenia nazw schematów XML
elementy/atrybuty o liczności jeden do nazw funkcji akcesorowych C++. Zobacz
KONWENCJA NAZWANIA poniżej, aby uzyskać więcej informacji.

--opt-akcesor-regex regex
Dodaj regex do listy wyrażeń regularnych używanych do tłumaczenia nazw schematów XML
elementy/atrybuty z licznością opcjonalną dla nazw funkcji akcesorowych C++. Widzieć
więcej informacji znajdziesz w sekcji KONWENCJA NAZWANIA poniżej.

--seq-akcesor-regex regex
Dodaj regex do listy wyrażeń regularnych używanych do tłumaczenia nazw schematów XML
elementy/atrybuty z sekwencją liczności do nazw funkcji akcesorowych C++. Widzieć
więcej informacji znajdziesz w sekcji KONWENCJA NAZWANIA poniżej.

--modyfikator-regex regex
Dodaj regex do listy wyrażeń regularnych używanych do tłumaczenia nazw schematów XML
elementy/atrybuty do nazw funkcji modyfikatorów C++. Zobacz KONWENCJĘ NAZYWANIA
sekcja poniżej, aby uzyskać więcej informacji.

--jeden-modyfikator-regex regex
Dodaj regex do listy wyrażeń regularnych używanych do tłumaczenia nazw schematów XML
elementy/atrybuty o liczności jeden do nazw funkcji modyfikatorów C++. Zobacz
KONWENCJA NAZWANIA poniżej, aby uzyskać więcej informacji.

--opt-modifier-regex regex
Dodaj regex do listy wyrażeń regularnych używanych do tłumaczenia nazw schematów XML
elementy/atrybuty z licznością opcjonalną dla nazw funkcji modyfikatorów C++. Widzieć
więcej informacji znajdziesz w sekcji KONWENCJA NAZWANIA poniżej.

--seq-modyfikator-regex regex
Dodaj regex do listy wyrażeń regularnych używanych do tłumaczenia nazw schematów XML
elementy/atrybuty z sekwencją liczności do nazw funkcji modyfikujących C++. Widzieć
więcej informacji znajdziesz w sekcji KONWENCJA NAZWANIA poniżej.

--parser-regex regex
Dodaj regex do listy wyrażeń regularnych używanych do tłumaczenia elementu schematu XML
nazwy do nazw funkcji analizujących C++. Zobacz sekcję KONWENCJA NAZWANIA poniżej
więcej informacji.

--serializer-regex regex
Dodaj regex do listy wyrażeń regularnych używanych do tłumaczenia elementu schematu XML
nazwy na nazwy funkcji serializacji C++. Zobacz sekcję KONWENCJA NAZWANIA poniżej
po więcej informacji.

--const-regex regex
Dodaj regex do listy wyrażeń regularnych używanych do tłumaczenia danych pochodzących ze schematu XML
nazw na nazwy stałe C++. Aby uzyskać więcej informacji, zobacz sekcję KONWENCJA NAZWANIA poniżej
informacje.

--enumerator-regex regex
Dodaj regex do listy wyrażeń regularnych używanych do tłumaczenia schematu XML
wartości wyliczeniowe na nazwy modułów wyliczających C++. Zobacz sekcję KONWENCJA NAZWANIA poniżej
po więcej informacji.

--wyrażenie regularne typu elementu regex
Dodaj regex do listy wyrażeń regularnych używanych do tłumaczenia elementu schematu XML
nazwy na nazwy typów elementów C++. Aby uzyskać więcej informacji, zobacz sekcję KONWENCJA NAZWANIA poniżej
informacje.

--name-regex-śledzenie
Prześledź proces stosowania wyrażeń regularnych określonych nazwą
opcje transformacji. Użyj tej opcji, aby dowiedzieć się, dlaczego wyrażenia regularne
nie rób tego, czego od nich oczekiwałeś.

--najpierw element-główny
Traktuj tylko pierwszy element globalny jako katalog główny dokumentu. Domyślnie wszystko globalne
elementy są uważane za korzenie dokumentu.

--element-główny-ostatni
Traktuj tylko ostatni element globalny jako katalog główny dokumentu. Domyślnie wszystko globalne
elementy są uważane za korzenie dokumentu.

--element-główny-wszystko
Traktuj wszystkie elementy globalne jako korzenie dokumentu. Jest to zachowanie domyślne. Przez
jawnie określając tę ​​opcję, możesz pominąć ostrzeżenie, które zostanie wydane, jeśli
zdefiniowany jest więcej niż jeden element globalny.

--element-główny-brak
Nie traktuj żadnych elementów globalnych jako korzeni dokumentu. Domyślnie wszystkie elementy globalne
są uważane za korzenie dokumentów.

--element-główny element
Tylko leczyć element jako katalog główny dokumentu. Powtórz tę opcję, aby określić więcej niż jedną
element główny.

--typ niestandardowy mapa
Użyj niestandardowego typu C++ zamiast wygenerowanej klasy. The mapa argument jest w
Nasz formularz Nazwa[=rodzaj[/baza]], gdzie Nazwa jest nazwą typu zdefiniowaną w schemacie XML i
rodzaj to nazwa typu C++, której należy użyć zamiast tego. Jeśli rodzaj nie jest obecny lub
pusty, zakłada się, że typ niestandardowy ma tę samą nazwę i jest zdefiniowany w pliku
tę samą przestrzeń nazw, jaką miałaby wygenerowana klasa. Jeśli baza jest określony wtedy
wygenerowana klasa jest nadal generowana, ale pod tą nazwą.

--regex typu niestandardowego regex
Użyj niestandardowych typów C++ zamiast wygenerowanych klas. The regex argument jest w
Nasz formularz /poklepać po imieniu/[typ-sub/[sub-podstawowy/]], gdzie poklepać po imieniu to wzór wyrażenia regularnego, który to zrobi
być dopasowane do nazw typów zdefiniowanych w schemacie XML i typ-sub jest typem C++
podstawienie nazwy, które powinno zostać użyte zamiast tego. Jeśli typ-sub nie jest obecny lub jest
podstawienie skutkuje pustym ciągiem, wówczas zakłada się, że typ niestandardowy ma
taką samą nazwę i być zdefiniowane w tej samej przestrzeni nazw, jaką miałaby wygenerowana klasa.
If sub-podstawowy jest obecny, a jego podstawienie skutkuje niepustym ciągiem znaków
wygenerowana klasa jest nadal generowana, ale z wynikiem tego podstawienia
nazwa. Wzorzec i podstawienia są w formacie wyrażenia regularnego Perla. Widzieć
także sekcję REGEX I SHELL CYTOWANIE poniżej.

--Części num
Podziel wygenerowany kod źródłowy na num Części. Jest to przydatne przy tłumaczeniu dużych,
schematy monolityczne i kompilator C++ nie jest w stanie skompilować wynikowego źródła
kodu na raz (zwykle z powodu braku pamięci).

--przyrostek-części przyrostek
Zastosowanie przyrostek zamiast domyślnego '-', aby oddzielić nazwę pliku od części
liczba.

parser cxx komenda Opcje
--mapa typu plik mapy
Przeczytaj informacje o mapowaniu typu XML Scheme do C++ plik mapy. Powtórz tę opcję, aby
określ kilka map typów. Mapy typów są rozpatrywane w kolejności występowania i
używane jest pierwsze dopasowanie. Domyślnie mapowane są wszystkie typy zdefiniowane przez użytkownika unieważnić. Zobacz
Wpisz mapę poniżej, aby uzyskać więcej informacji.

--xml-parser parser
Zastosowanie parser jako podstawowy parser XML. Prawidłowe wartości to xerces dla Xerces-C++
(domyślnie) i expat dla ekspatriantów.

--generuj-walidację
Wygeneruj kod weryfikacyjny. Zapewnia to kod weryfikacyjny („idealny parser”)
dokumenty instancji są zgodne ze schematem. Kod weryfikacyjny jest generowany domyślnie
gdy wybrany bazowy parser XML nie sprawdza poprawności (expat).

--supress-validation
Pomiń generowanie kodu weryfikacyjnego. Walidacja jest domyślnie pomijana
gdy wybrany bazowy parser XML sprawdza poprawność (xerces).

--generuj-polimorficzny
Generuj kod uwzględniający polimorfizm. Określ tę opcję, jeśli używasz podstawienia
grupy lub xsi: typ.

--generate-noop-impl
Wygeneruj przykładową implementację analizatora składni, która nic nie robi (brak operacji). The
przykładową implementację można następnie wypełnić kodem specyficznym dla aplikacji. Na
plik wejściowy w formularzu imię.xsd ta opcja wyzwala generację dwóch
dodatkowe pliki C++ w postaci: nazwa-pimpl.hxx (nagłówek implementacji parsera
plik) i nazwa-pimpl.cxx (plik źródłowy implementacji parsera).

--generuj-drukuj-impl
Wygeneruj przykładową implementację analizatora składni, która drukuje dane XML na STDOUT. Na
plik wejściowy w formularzu imię.xsd ta opcja wyzwala generację dwóch
dodatkowe pliki C++ w postaci: nazwa-pimpl.hxx (nagłówek implementacji parsera
plik) i nazwa-pimpl.cxx (plik źródłowy implementacji parsera).

--generuj-sterownik-testowy
Wygeneruj sterownik testowy dla przykładowej implementacji analizatora składni. Dla pliku wejściowego w formacie
formularz imię.xsd ta opcja wyzwala generowanie dodatkowego pliku C++ w
formularz nazwa-sterownik.cxx.

--wymuś nadpisanie
Wymuś nadpisanie istniejących plików sterownika implementacyjnego i testowego. Użyj tego
opcję tylko wtedy, gdy nie masz nic przeciwko utracie zmian dokonanych w próbce
pliki sterownika implementacyjnego lub testowego.

--najpierw element-główny
Wskaż, że pierwszym elementem globalnym jest katalog główny dokumentu. Ta informacja jest
użyte do wygenerowania sterownika testowego dla przykładowej implementacji.

--element-główny-ostatni
Wskaż, że ostatnim elementem globalnym jest katalog główny dokumentu. Ta informacja jest
użyte do wygenerowania sterownika testowego dla przykładowej implementacji.

--element-główny element
Wskaż, że element jest korzeniem dokumentu. Informacje te służą do generowania
sterownik testowy dla przykładowej implementacji.

--skel-typ-sufiks przyrostek
Skorzystaj z dostarczonego przyrostek zamiast domyślnego _pskel konstruować nazwy
wygenerowane szkielety parsera.

--skel-sufiks-pliku przyrostek
Skorzystaj z dostarczonego przyrostek zamiast domyślnego -pskel konstruować nazwy
wygenerowane pliki szkieletu analizatora składni.

--sufiks typu-impl przyrostek
Skorzystaj z dostarczonego przyrostek zamiast domyślnego _pimpl konstruować nazwy
implementacje parsera dla wbudowanych typów schematów XML oraz przykładowy parser
wdrożenia.

--impl-sufiks-pliku przyrostek
Skorzystaj z dostarczonego przyrostek zamiast domyślnego -pimpl konstruować nazwy
wygenerowane przykładowe pliki implementacji parsera.

NAZWA KONWENCJA


Kompilator może zostać poinstruowany, aby używał określonej konwencji nazewnictwa w generowanym pliku
kod. Za pomocą opcji można wybrać wiele powszechnie stosowanych konwencji --nazewnictwo typów i
--nazewnictwo funkcji opcje. Niestandardową konwencję nazewnictwa można osiągnąć za pomocą --typ-
regex, --akcesor-regex, --one-akcesor-regex, --opt-akcesor-regex, --seq-akcesor-regex,
--modyfikator-regex, --jeden-modyfikator-regex, --opt-modifier-regex, --seq-modyfikator-regex,
--parser-regex, --serializer-regex, --const-regex, --enumerator-regex, --typ-elementu-
regex opcje.

Połączenia --nazewnictwo typów opcja określa konwencję, która powinna być używana do nazewnictwa C++
typy. Możliwe wartości tej opcji to knr (Domyślne) ucc, Jawa, knr wartość
(skrót od K&R) oznacza standardową konwencję nazewnictwa pisaną małymi literami z podkreśleniem
używany jako ogranicznik słów, na przykład: foo, foo_bar. The ucc (oznacza górnego wielbłąda-
przypadku) i Jawa wartości a synonimy dla tej samej konwencji nazewnictwa, w której znajduje się pierwsza litera of
każde słowo w nazwie jest pisane wielką literą, na przykład: Foo, FooBar.

Podobnie, --nazewnictwo funkcji opcja określa konwencję, której należy użyć
nazewnictwo funkcji C++. Możliwe wartości tej opcji to knr (Domyślne) lcc, Jawa.
Połączenia knr wartość (skrót od K&R) oznacza standardową konwencję nazewnictwa pisaną małymi literami
podkreślenie używane jako separator słów, na przykład: foo(), foo_bar(). The lcc wartość
(skrót od małej litery wielbłąda) oznacza konwencję nazewnictwa, w której pierwsza litera każdego z nich
słowo oprócz pierwszego jest pisane wielką literą, na przykład: foo(), fooBar(). The Jawa nazywania
konwencja jest podobna do tej pisanej małymi literami wielbłąda, z tą różnicą, że są to funkcje akcesorów
poprzedzone get, funkcje modyfikujące są poprzedzone set, funkcje analizujące są
poprzedzone parse, a funkcje serializacyjne są poprzedzone serialize, na przykład:
getFoo(), setFooBar(), parseRoot(), serializeRoot().

Należy pamiętać, że konwencje nazewnictwa określone w --nazewnictwo typów i --nazewnictwo funkcji
Opcje wykonują jedynie ograniczone transformacje nazw pochodzących ze schematu w pliku
forma nazw typów, atrybutów i elementów. Innymi słowy, aby uzyskać spójne wyniki,
Twoje schematy powinny być zgodne z podobną konwencją nazewnictwa, jak ta, którą chciałbyś mieć
w wygenerowanym kodzie. Alternatywnie możesz skorzystać z --*-wyrażenie regularne opcje (omówione poniżej)
aby wykonać dalsze przekształcenia na nazwach pochodzących ze schematu.

Połączenia --wpisz wyrażenie regularne, --akcesor-regex, --one-akcesor-regex, --opt-akcesor-regex, --sekwencja-
akcesor-regex, --modyfikator-regex, --jeden-modyfikator-regex, --opt-modifier-regex, --sekwencja-
modyfikator-regex, --parser-regex, --serializer-regex, --const-regex, --enumerator-regex,
--wyrażenie regularne typu elementu Opcje umożliwiają określenie dodatkowych wyrażeń regularnych dla każdej nazwy
kategoria oprócz predefiniowanego zestawu, który jest dodawany w zależności od --nazewnictwo typów
i --nazewnictwo funkcji opcje. Wyrażenia dostarczane z --*-wyrażenie regularne Opcje
są oceniane przed jakimikolwiek predefiniowanymi wyrażeniami. Umożliwia to selektywne nadpisywanie
niektóre lub wszystkie z predefiniowanych przekształceń. Tak jest podczas debugowania własnych wyrażeń
często przydatne, aby zobaczyć, które wyrażenia pasują do jakich nazw. The --name-regex-śledzenie opcja
pozwala prześledzić proces stosowania wyrażeń regularnych do nazw.

Wartość dla --*-wyrażenie regularne opcje powinny być wyrażeniem regularnym podobnym do Perla w formularzu
/wzorzec/wymiana/. Zamiast tego jako ogranicznika można użyć dowolnego znaku /. Ucieczka
znaku ogranicznika w wzorzec or wymiana nie jest wspierany. Wszystko regularnie
wyrażenia dla każdej kategorii są wypychane do stosu specyficznego dla kategorii wraz z ostatnim
określone wyrażenie rozpatrywane jako pierwsze. Stosowane jest pierwsze pomyślne dopasowanie. Dla
--one-akcesor-regex (akcesory z kardynalnością jeden), --opt-akcesor-regex (akcesoria
z opcjonalną licznością) i --seq-akcesor-regex (akcesory z sekwencją kardynalności)
kategorie --akcesor-regex wyrażenia są używane jako rezerwowe. Dla --jeden-
modyfikator-regex, --opt-modifier-regex, --seq-modyfikator-regex kategorie --modyfikator-
regex wyrażenia są używane jako rezerwowe. Dla --wyrażenie regularne typu elementu kategoria
--wpisz wyrażenie regularne wyrażenia są używane jako rezerwa.

Wyrażenia nazw typów (--wpisz wyrażenie regularne) są oceniane na podstawie ciągu nazw zawierającego
następujący format:

[przestrzeń nazw ]Nazwa[,Nazwa][,Nazwa][,Nazwa]

Wyrażenia nazw typów elementów (--wyrażenie regularne typu elementu), skuteczne tylko wtedy, gdy
--generuj typ elementu określono opcję, są oceniane na podstawie ciągu nazw zawierającego
następujący format:

przestrzeń nazw Nazwa

W formacie nazwy typu przestrzeń nazw część, po której następuje spacja, występuje tylko w przypadku znaków globalnych
wpisz nazwy. W przypadku typów globalnych i elementów zdefiniowanych w schematach bez docelowej przestrzeni nazw,
dotychczasowy przestrzeń nazw część jest pusta, ale miejsce jest nadal obecne. W formacie nazwy typu po
początkowa Nazwa komponent, maksymalnie trzy dodatkowe Nazwa mogą występować składniki,
Oddzielone przecinkami. Na przykład:

http://example.com/hello rodzaj

bla

foo, iterator

foo, stała, iterator

Poniższy zestaw predefiniowanych wyrażeń regularnych służy do przekształcania nazw typów, gdy
wybrano konwencję nazewnictwa pisaną wielkimi literami:

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

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

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

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

Wyrażenia akcesora i modyfikatora (--*akcesor-regex i --*modyfikator-regex) są
oceniane na ciągu nazwy, który ma następujący format:

Nazwa[,Nazwa][,Nazwa]

Po wstępnym Nazwa komponent, maksymalnie dwa dodatkowe Nazwa mogą występować składniki,
Oddzielone przecinkami. Na przykład:

bla

dom, dokument

foo, wartość domyślna, wartość

Poniższy zestaw predefiniowanych wyrażeń regularnych służy do przekształcania nazw akcesorów
kiedy Jawa wybrano konwencję nazewnictwa:

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

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

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

W przypadku kategorii analizatora składni, serializatora i modułu wyliczającego odpowiednia wartość zwykła
wyrażenia są oceniane na podstawie lokalnych nazw elementów i wartości wyliczeniowych,
odpowiednio. Na przykład używane jest następujące predefiniowane wyrażenie regularne
przekształcaj nazwy funkcji analizowania, gdy Jawa wybrano konwencję nazewnictwa:

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

Kategoria const służy do tworzenia stałych nazw C++ dla elementu/symbolu wieloznacznego/tekstu
identyfikatory treści w uporządkowanych typach.

Zobacz także sekcję CYTOWANIE REGEX I SHELL poniżej.

TYP MAP


Pliki map typów są używane w C++/Parser do definiowania mapowania pomiędzy schematem XML i C++
typy. Kompilator używa tych informacji do określenia typów zwracanych funkcji post_*
funkcje w szkieletach parsera odpowiadające typom schematu XML oraz typom argumentów
dla wywołań zwrotnych odpowiadających elementom i atrybutom tych typów.

Kompilator posiada zestaw predefiniowanych reguł mapowania, które odwzorowują wbudowane typy schematów XML
odpowiednie typy C++ (omówione poniżej) i wszystkie inne typy unieważnić. Dostarczając własne
type maps, możesz zastąpić te predefiniowane reguły. Format pliku mapy typu to
przedstawione poniżej:

przestrzeń nazw przestrzeń nazw schematu [ przestrzeń nazw cxx ]
{
( zawierać Nazwa pliku; )*
([ rodzaj ] typ schematu typ cxx-ret [ typ cxx-arg ]; )*
}

Obie przestrzeń nazw schematu i typ schematu są wzorami wyrażeń regularnych while przestrzeń nazw cxx, cxx-ret-
rodzaj, typ cxx-arg są podstawieniami wzorców wyrażeń regularnych. Wszystkie nazwy mogą być opcjonalne
ujęte w „ ”, na przykład w celu uwzględnienia białych znaków.

przestrzeń nazw schematu określa przestrzeń nazw XML Schema. Opcjonalny przestrzeń nazw cxx jest przedrostkiem
każda nazwa typu C++ w tej deklaracji przestrzeni nazw. typ cxx-ret jest nazwą typu C++
jest używany jako typ zwracany dla post_* Funkcje. Opcjonalny typ cxx-arg jest argumentem
type dla funkcji wywołania zwrotnego odpowiadających elementom i atrybutom tego typu. Jeśli cxx-
typ arg nie jest określony, domyślnie typ cxx-ret if typ cxx-ret kończy się * or &
(to znaczy jest wskaźnikiem lub referencją) i const typ cxx-ret& Inaczej. Nazwa pliku is
nazwę pliku w formacie „ ” lub < > i jest dodawana z rozszerzeniem #zawierać dyrektywa do
wygenerowany kod.

Połączenia # znak rozpoczyna komentarz kończący się nową linią lub końcem pliku. Aby określić
nazwa zawierająca # załącz go w „”. Na przykład:

przestrzeń nazw http://www.example.com/xmlns/my my
{
dołącz „my.hxx”;

# Przekazuj jabłka według wartości.
#
jabłko jabłko;

# Przekazuj pomarańcze jako wskazówki.
#
pomarańczowy pomarańczowy_t*;
}

W powyższym przykładzie dla http://www.example.com/xmlns/my#Pomarańczowy Typ schematu XML,
mój::orange_t* Typ C++ będzie używany zarówno jako typ zwracany, jak i jako argument.

W jednym pliku można określić kilka deklaracji przestrzeni nazw. Przestrzeń nazw
deklarację można również całkowicie pominąć w przypadku typów map w schemacie bez przestrzeni nazw.
Na przykład:

dołącz „my.hxx”;
jabłko jabłko;

przestrzeń nazw http://www.example.com/xmlns/my
{
pomarańczowy "const orange_t*";
}

Kompilator ma wiele predefiniowanych reguł mapowania, które można przedstawić jako
następujące pliki map. Wbudowane typy schematu XML oparte na ciągach są mapowane na oba
std::string or std::wstring w zależności od typu znaku wybranego za pomocą --typ-znakowy
opcja (zwęglać domyślnie).

przestrzeń nazw http://www.w3.org/2001/XMLSchema
{
wartość logiczna bool bool;

bajt „znak ze znakiem” „znak ze znakiem”;
unsignedByte „unsigned char” „unsigned char”;

krótki krótki krótki;
unsignedShort „krótki znak bez znaku” „krótki znak bez znaku”;

int int int;
unsignedInt "int bez znaku" "int bez znaku";

długi „długi, długi” „długi, długi”;
unsignedLong „bez znaku, długo, długo” „bez znaku, długo, długo”;

liczba całkowita „długie długie” „długie długie”;

ujemnaInteger „długie długie” „długie długie”;
nonPositiveInteger „długie długie” „długie długie”;

dodatnia liczba całkowita „bez znaku, długa, długa” „bez znaku, długa, długa”;
nonNegativeInteger „długie bez znaku” „długie bez znaku”;

pływak pływak pływak;
podwójne podwójne podwójne;
dziesiętny podwójny podwójny;

ciąg std::string;
znormalizowanyString std::string;
token std::string;
Nazwa std::string;
NMTOKEN std::string;
NCName std::string;
Identyfikator std::string;
IDREF std::string;
język std::string;
dowolnyURI std::string;

NMTOKENS xml_schema::string_sequence;
IDREFSxml_schema::string_sequence;

QNazwaxml_schemat::qname;

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

data schemat_xml::data;
dateTime xml_schema::date_time;
czas trwania xml_schema::duration;
gDay xml_schema::gday;
gMonth xml_schema::gmiesiąc;
gMiesiącDzień xml_schema::gmiesiąc_dzień;
gRok xml_schema::grok;
gYearMonth xml_schema::gyear_month;
czas xml_schema::time;
}

Ostatnia predefiniowana reguła odwzorowuje wszystko, co nie zostało zamapowane przez poprzednie reguły unieważnić:

przestrzeń nazw.*
{
.* pustka pustka;
}

Kiedy udostępniasz własne mapy typów z rozszerzeniem --mapa typu opcji, są one oceniane w pierwszej kolejności.
Umożliwia to selektywne zastępowanie predefiniowanych reguł.

REGEX ROLNICZE SHELL CYTOWANIE


Często zdarza się, że podczas wprowadzania argumentu wyrażenia regularnego w wierszu poleceń powłoki
konieczne jest użycie cudzysłowu (załączenie argumentu w „ ” lub „”), aby zapobiec
Shell przed interpretacją niektórych znaków, na przykład spacji jako separatorów argumentów i
$ jako zmienne rozszerzenia.

Niestety trudno jest to osiągnąć w sposób przenośny pomiędzy powłokami POSIX,
takie jak te, które można znaleźć w systemach GNU/Linux i UNIX oraz w powłoce systemu Windows. Na przykład, jeśli użyjesz „ ”
za cytowanie otrzymasz błędny wynik w powłokach POSIX, jeśli twoje wyrażenie zawiera $.
Standardowym sposobem radzenia sobie z tym w systemach POSIX jest użycie zamiast tego „ ”.
Niestety powłoka systemu Windows nie usuwa „” z argumentów, gdy są one przekazywane
Aplikacje. W rezultacie może być konieczne użycie „” dla POSIX i „” dla Windows ($ nie jest
traktowane jako znak specjalny w systemie Windows).

Alternatywnie możesz zapisać opcje wyrażeń regularnych w pliku, po jednej opcji w wierszu,
i użyj tego pliku z --opcje-plik opcja. Dzięki takiemu podejściu nie musisz tego robić
martw się o cytowanie powłoki.

DIAGNOSTYKA


Jeśli plik wejściowy nie jest prawidłową definicją schematu XML W3C, xsdcxx wyda diagnostykę
wiadomości do STDERR i wyjdź z niezerowym kodem wyjścia.

Użyj xsdcxx online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

Komendy systemu Linux

Ad