InggrisPerancisSpanyol

Ad


favorit OnWorks

xsdcxx - Online di Cloud

Jalankan xsdcxx di penyedia hosting gratis OnWorks melalui Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

Ini adalah perintah xsdcxx yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa stasiun kerja online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

PROGRAM:

NAMA


xsdcxx - Skema XML W3C ke Kompilator C++

RINGKASAN


xsdcxx Command [ Pilihan ] fillet [ fillet ...]
xsdcxx membantu [ Command ]
xsdcxx versi

DESKRIPSI


xsdcxx menghasilkan pemetaan C++ khusus kosakata, diketik secara statis dari W3C XML Schema
definisi. Pemetaan tertentu untuk menghasilkan dipilih oleh a Command. Setiap pemetaan memiliki
jumlah khusus pemetaan Pilihan yang akan muncul, jika ada, setelah Command. Memasukkan
file harus berupa definisi Skema XML W3C. Kumpulan yang tepat dari file yang dihasilkan tergantung
pada pemetaan dan opsi yang dipilih.

PERINTAH


cxx-pohon
Hasilkan pemetaan C++/Tree. Untuk setiap file input dalam formulir nama.xsd itu
file C++ berikut dihasilkan: nama.hxx (file tajuk), nama.ixx (berkas sebaris,
dihasilkan hanya jika --menghasilkan-inline opsi ditentukan), nama.cxx (Sumber
file), dan nama-fwd.hxx (file deklarasi maju, dihasilkan hanya jika
--menghasilkan-maju opsi ditentukan).

cxx-parser
Hasilkan pemetaan C++/Parser. Untuk setiap file input dalam formulir nama.xsd itu
file C++ berikut dihasilkan: nama-pskel.hxx (file header kerangka parser),
nama-pskel.ixx (file sebaris kerangka parser, dibuat hanya jika --menghasilkan-
inline opsi ditentukan), dan nama-pskel.cxx (file sumber kerangka parser). Jika
itu --menghasilkan-noop-impl or --menghasilkan-cetak-impl opsi ditentukan,
berikut file implementasi sampel tambahan yang dihasilkan: nama-pimpl.hxx
(file header implementasi parser) dan nama-pimpl.cxx (implementasi pengurai
sumber data). jika --menghasilkan-penguji-driver opsi ditentukan, tambahan
nama-driver.cxx file driver tes dihasilkan.

membantu Cetak informasi penggunaan dan keluar. Menggunakan

xsdcxx membantu Command

untuk bantuan khusus perintah.

versi
Versi cetak dan keluar.

PILIHAN


Khusus perintah Pilihan, jika ada, akan muncul setelah yang sesuai Command.

umum Pilihan
--std versi
Tentukan standar C++ yang harus dipatuhi oleh kode yang dihasilkan. Nilai yang valid
adalah c++98 (default) dan c++11.

Standar C++ mempengaruhi berbagai aspek dari kode yang dihasilkan yang dibahas
secara lebih rinci dalam berbagai dokumentasi khusus pemetaan. Secara keseluruhan, ketika C++11 adalah
dipilih, kode yang dihasilkan bergantung pada semantik dan penggunaan gerakan std::unique_ptr
bukannya usang std::auto_ptr.

Saat mode C++11 dipilih, Anda biasanya tidak perlu melakukan langkah tambahan apa pun
selain mengaktifkan C++ 11 di kompiler C++ Anda, jika diperlukan. Kompiler XSDCXX akan
secara otomatis menambahkan definisi makro yang diperlukan ke file header yang dihasilkan yang
akan mengganti pustaka runtime XSDCXX khusus header (libxsd) ke mode C++11.
Namun, jika Anda menyertakan salah satu header runtime XSDCXX langsung di
aplikasi (biasanya Anda hanya menyertakan header yang dihasilkan), maka Anda perlu
untuk mendefinisikan XSD_CXX11 makro untuk seluruh proyek Anda.

--tipe-char mengetik
Hasilkan kode menggunakan karakter yang disediakan mengetik alih-alih default tangki. Sah
nilai adalah tangki dan wchar_t.

--pengkodean karakter enc
Tentukan pengkodean karakter yang harus digunakan dalam kode yang dihasilkan. Sah
nilai untuk tangki tipe karakter adalah utf8 (Default), iso8859-1, lcp (Xerces-C++
halaman kode lokal), dan adat. Jika kamu lulus adat sebagai nilainya maka Anda akan membutuhkan
untuk menyertakan tajuk implementasi transcoder untuk penyandian Anda di awal
dari file header yang dihasilkan (lihat --hxx-prolog pilihan).

Untuk wchar_t tipe karakter satu-satunya nilai yang valid adalah mobil dan pengkodeannya adalah
dipilih secara otomatis antara UTF-16 dan UTF-32/UCS-4, tergantung pada wchar_t
ukuran tipe.

--keluaran-dir dir
Tulis file yang dihasilkan ke dir alih-alih direktori saat ini.

--menghasilkan-inline
Hasilkan fungsi sederhana sebaris. Opsi ini memicu pembuatan file inline.

--generate-xml-skema
Hasilkan file header C++ seolah-olah skema yang dikompilasi mendefinisikan Skema XML
ruang nama. Untuk pemetaan C++/Tree, file yang dihasilkan akan berisi definisi
untuk semua tipe bawaan Skema XML. Untuk pemetaan C++/Parser, file yang dihasilkan
akan berisi definisi untuk semua kerangka parser dan implementasi
sesuai dengan tipe bawaan XML Schema.

File skema yang disediakan untuk kompiler tidak perlu ada dan hanya digunakan untuk menurunkan
nama file header yang dihasilkan. Menggunakan --extern-xml-skema pilihan untuk
sertakan file ini dalam file yang dihasilkan untuk skema lain.

--extern-xml-skema fillet
Sertakan file header yang berasal dari fillet alih-alih menghasilkan Skema XML
pemetaan namespace sebaris. File yang disediakan tidak perlu ada dan hanya digunakan untuk
dapatkan nama file header yang disertakan. Menggunakan --generate-xml-skema Option
untuk menghasilkan file header ini.

--namespace-peta xns=cns
Ruang nama Skema XML Peta xns ke ruang nama C++ cns. Ulangi opsi ini untuk menentukan
pemetaan untuk lebih dari satu namespace Skema XML. Misalnya, opsi berikut:

--namespace-peta http://example.com/foo/bar=foo::batang

Akan memetakan http://example.com/foo/bar Namespace Skema XML ke foo::bar C + +
ruang nama.

--namespace-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk menerjemahkan namespace Skema XML
nama ke nama namespace C++. regex adalah ekspresi reguler seperti Perl dalam bentuk
/belt hold/penggantian/. Karakter apa pun dapat digunakan sebagai pembatas, bukan /.
Melarikan diri dari karakter pembatas di belt hold or penggantian Tidak didukung

Semua ekspresi reguler didorong ke dalam tumpukan dengan yang terakhir ditentukan
ekspresi dipertimbangkan terlebih dahulu. Pertandingan pertama yang berhasil digunakan. Reguler
ekspresi diterapkan ke string dalam bentuk

nama file namespace

Misalnya, jika Anda memiliki file halo.xsd dengan namespace http://example.com/hello dan
kamu lari xsd pada file ini, maka string yang dimaksud adalah:

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

Untuk namespace Skema XML bawaan, stringnya adalah:

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

Tiga langkah berikut dilakukan untuk setiap ekspresi reguler hingga pertandingan:
ditemukan:

1. Ekspresi diterapkan dan jika hasilnya kosong, ekspresi berikutnya adalah
dipertimbangkan.

2. Semua / diganti dengan ::.

3. Hasilnya diverifikasi menjadi nama cakupan C++ yang valid (mis. foo::bar). Jika ini
tes berhasil, hasilnya digunakan sebagai nama namespace C++.

Sebagai contoh, ekspresi berikut memetakan ruang nama Skema XML dalam bentuk:
http://example.com/foo/bar ke ruang nama C++ dalam bentuk foo::bar:

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

Lihat juga bagian REGEX AND SHELL QUOTING di bawah ini.

--namespace-regex-jejak
Lacak proses penerapan ekspresi reguler yang ditentukan dengan --ruang nama-
regex pilihan. Gunakan opsi ini untuk mencari tahu mengapa ekspresi reguler Anda tidak berfungsi
apa yang Anda harapkan mereka lakukan.

--nama-reservasi n[=r]
Tambahkan nama n ke daftar nama yang tidak boleh digunakan sebagai pengenal. Nama
opsional dapat diikuti oleh = dan nama pengganti r yang harus digunakan
sebagai gantinya. Semua kata kunci C++ sudah ada dalam daftar ini.

--termasuk-dengan-kurung
Gunakan tanda kurung sudut (<>) alih-alih tanda kutip ("") di generate #include arahan.

--termasuk-awalan awalan
Add awalan untuk menghasilkan #include jalur direktif.

Misalnya, jika Anda memiliki elemen impor berikut dalam skema Anda

<impor ruang nama="..." schemaLocation="base.xsd"/>

dan kompilasi fragmen ini dengan --termasuk-awalan skema/, maka termasuk
direktif dalam kode yang dihasilkan adalah:

#include "skema/base.hxx"

--termasuk-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk mengubah #include Direktif
jalan. regex adalah ekspresi reguler seperti Perl dalam bentuk /belt hold/penggantian/.
Karakter apa pun dapat digunakan sebagai pembatas, bukan /. Melarikan diri dari pembatas
karakter dalam belt hold or penggantian Tidak didukung

Semua ekspresi reguler didorong ke dalam tumpukan dengan yang terakhir ditentukan
ekspresi dipertimbangkan terlebih dahulu. Pertandingan pertama yang berhasil digunakan.

Sebagai contoh, ekspresi berikut mengubah jalur dalam bentuk
skema/foo/bar ke jalur dalam bentuk dihasilkan/foo/bar:

%skema/(.+)%dihasilkan/$1%

Lihat juga bagian REGEX AND SHELL QUOTING di bawah ini.

--termasuk-regex-trace
Lacak proses penerapan ekspresi reguler yang ditentukan dengan --termasuk-
regex pilihan. Gunakan opsi ini untuk mencari tahu mengapa ekspresi reguler Anda tidak berfungsi
apa yang Anda harapkan mereka lakukan.

--awalan-penjaga awalan
Add awalan ke pelindung inklusi header yang dihasilkan. Awalan diubah menjadi atas
kasus dan karakter yang ilegal dalam nama makro preprosesor diganti dengan
menggarisbawahi. Jika opsi ini tidak ditentukan maka bagian direktori dari input
file skema digunakan sebagai awalan.

--hxx-akhiran akhiran
Gunakan yang disediakan akhiran alih-alih default .hxx untuk membangun nama
berkas kepala. Perhatikan bahwa sufiks ini juga digunakan untuk membuat nama file header
sesuai dengan skema yang disertakan/diimpor.

--ixx-akhiran akhiran
Gunakan yang disediakan akhiran alih-alih default .ixx untuk membangun nama
berkas sebaris.

--cxx-akhiran akhiran
Gunakan yang disediakan akhiran alih-alih default .cxx untuk membangun nama
sumber data.

--fwd-akhiran akhiran
Gunakan yang disediakan akhiran alih-alih default -fwd.hxx untuk membangun nama
file deklarasi maju.

--hxx-regex regex
Gunakan ekspresi yang disediakan untuk membuat nama file header. regex adalah
Ekspresi reguler seperti Perl dalam bentuk /belt hold/penggantian/. Perhatikan bahwa ini
ekspresi juga digunakan untuk membuat nama file header yang sesuai dengan
skema yang disertakan/diimpor. Lihat juga bagian REGEX AND SHELL QUOTING di bawah ini.

--ixx-regex regex
Gunakan ekspresi yang disediakan untuk membuat nama file sebaris. regex adalah
Ekspresi reguler seperti Perl dalam bentuk /belt hold/penggantian/. Lihat juga REGEX
DAN KUTIPAN SHELL di bawah ini.

--cxx-regex regex
Gunakan ekspresi yang disediakan untuk menyusun nama file sumber. regex adalah
Ekspresi reguler seperti Perl dalam bentuk /belt hold/penggantian/. Lihat juga REGEX
DAN KUTIPAN SHELL di bawah ini.

--fwd-regex regex
Gunakan ekspresi yang disediakan untuk menyusun nama file deklarasi penerusan.
regex adalah ekspresi reguler seperti Perl dalam bentuk /belt hold/penggantian/. Lihat juga
bagian REGEX AND SHELL QUOTING di bawah ini.

--hxx-prolog teks
Menyisipkan teks di awal file header.

--ixx-prolog teks
Menyisipkan teks di awal file sebaris.

--cxx-prolog teks
Menyisipkan teks di awal file sumber.

--fwd-prolog teks
Menyisipkan teks di awal file deklarasi maju.

--prolog teks
Menyisipkan teks di awal setiap file yang dihasilkan yang tidak ada file-
prolog tertentu.

--hxx-epilog teks
Menyisipkan teks di akhir file header.

--ixx-epilog teks
Menyisipkan teks di akhir file sebaris.

--cxx-epilog teks
Menyisipkan teks di akhir file sumber.

--fwd-epilog teks
Menyisipkan teks di akhir file deklarasi maju.

--Epilog teks
Menyisipkan teks di akhir setiap file yang dihasilkan yang tidak memiliki file khusus
Epilog.

--hxx-prolog-file fillet
Masukkan konten fillet di awal file header.

--ixx-prolog-file fillet
Masukkan konten fillet di awal file sebaris.

--cxx-prolog-file fillet
Masukkan konten fillet di awal file sumber.

--fwd-prolog-file fillet
Masukkan konten fillet di awal file deklarasi maju.

--prolog-file fillet
Masukkan konten fillet di awal setiap file yang dihasilkan yang
tidak ada file prolog khusus file.

--hxx-epilog-file fillet
Masukkan konten fillet di akhir file header.

--ixx-epilog-file fillet
Masukkan konten fillet di akhir file sebaris.

--cxx-epilog-file fillet
Masukkan konten fillet di akhir file sumber.

--fwd-epilog-file fillet
Masukkan konten fillet di akhir file deklarasi maju.

--epilog-file fillet
Masukkan konten fillet di akhir setiap file yang dihasilkan yang ada
tidak ada file epilog khusus file.

--ekspor-simbol simbol
Menyisipkan simbol di tempat-tempat di mana pernyataan kontrol ekspor/impor DLL
(__declspec(dllexport/dllimport)) diperlukan.

--ekspor-xml-skema
Jenis ekspor/impor dalam namespace Skema XML menggunakan simbol ekspor yang disediakan
pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka. --ekspor-simbol pilihan. Itu XSD_NO_EKSPOR makro dapat digunakan untuk menghilangkan ini
kode selama kompilasi C++, yang mungkin berguna jika Anda ingin menggunakan yang sama
kode yang dihasilkan di berbagai platform.

--ekspor-peta
Ekspor peta dukungan polimorfisme dari Win32 DLL tempat kode yang dihasilkan ini berada
ditempatkan. Ini diperlukan ketika hierarki tipe Anda dibagi menjadi beberapa DLL
karena jika tidak, setiap DLL akan memiliki kumpulan petanya sendiri. Dalam situasi ini
kode yang dihasilkan untuk DLL yang berisi tipe dasar dan/atau grup substitusi
kepala harus dikompilasi dengan opsi ini dan kode yang dihasilkan untuk semua DLL lainnya
harus dikompilasi dengan --import-peta. Opsi ini hanya berlaku bersama dengan
--generate-polimorfik. itu XSD_NO_EKSPOR makro dapat digunakan untuk menghilangkan kode ini
selama kompilasi C++, yang mungkin berguna jika Anda ingin menggunakan yang sama
kode yang dihasilkan di berbagai platform.

--import-peta
Impor peta dukungan polimorfisme ke Win32 DLL atau yang dapat dieksekusi di mana ini
kode yang dihasilkan ditautkan. Lihat --ekspor-peta dokumentasi opsi untuk detailnya.
Opsi ini hanya berlaku bersama dengan --generate-polimorfik. itu XSD_NO_EKSPOR
makro dapat digunakan untuk menghilangkan kode ini selama kompilasi C++, yang mungkin berguna jika
Anda ingin menggunakan kode yang dihasilkan yang sama di berbagai platform.

--menghasilkan-dep
Menghasilkan membuat informasi ketergantungan. Opsi ini memicu pembuatan .d
file yang berisi dependensi file yang dihasilkan pada file skema utama sebagai
serta semua file skema yang disertakan/diimpor, secara transitif. Ini
file dependensi kemudian biasanya dimasukkan ke dalam main makefile untuk mengimplementasikan
pelacakan ketergantungan otomatis.

Perhatikan juga bahwa pembuatan ketergantungan otomatis tidak didukung dalam file-per-
modus jenis (--file-per-jenis). Dalam hal ini, semua file yang dihasilkan diproduksi
dengan permintaan kompiler tunggal dan bergantung pada semua skema. Akibatnya adalah
lebih mudah untuk membangun ketergantungan seperti itu secara manual, mungkin dengan bantuan
--daftar-file* Pilihan.

--hasilkan-dep-saja
Menghasilkan membuat informasi ketergantungan saja.

--dep-palsu
Hasilkan target palsu untuk file skema yang disertakan/diimpor, yang menyebabkan masing-masing target bergantung
pada apa-apa. Aturan dummy seperti itu berhasil membuat kesalahan yang disebabkan oleh penghapusan
file skema tanpa juga memperbarui file ketergantungan agar sesuai.

--dep-target target
Ubah target aturan ketergantungan. Secara default berisi semua yang dihasilkan
File C++ serta file dependensi itu sendiri, tanpa awalan direktori apa pun. Jika
Anda memerlukan beberapa target, maka Anda dapat menentukannya sebagai satu, spasi-
argumen terpisah atau Anda dapat mengulangi opsi ini beberapa kali.

--dep-akhiran akhiran
Gunakan yang disediakan akhiran alih-alih default .d untuk membangun nama
berkas ketergantungan.

--dep-regex regex
Gunakan ekspresi yang disediakan untuk membuat nama file dependensi. regex is
ekspresi reguler seperti Perl dalam bentuk /belt hold/penggantian/. Lihat juga
REGEX DAN KUTIPAN SHELL di bawah ini.

--nonaktifkan-peringatan memperingatkan
Nonaktifkan peringatan pencetakan dengan id memperingatkan. Jika semua ditentukan untuk id peringatan kemudian
semua peringatan dinonaktifkan.

--opsi-file fillet
Baca opsi tambahan dari fillet. Setiap opsi akan muncul di baris terpisah
opsional diikuti oleh spasi dan nilai opsi. Garis kosong dan garis mulai
dengan # diabaikan. Nilai opsi dapat diapit dua kali (") atau tunggal (')
tanda kutip untuk mempertahankan spasi putih awal dan akhir serta untuk menentukan kosong
nilai-nilai. Jika nilai itu sendiri berisi tanda kutip akhir atau awalan, sertakan dengan
sepasang kutipan tambahan, misalnya '"x"'. Kutipan non-leading dan non-trailing adalah
ditafsirkan sebagai bagian dari nilai opsi.

Semantik menyediakan opsi dalam file setara dengan menyediakan yang sama
serangkaian opsi dalam urutan yang sama pada baris perintah pada titik di mana
--opsi-file opsi ditentukan kecuali bahwa shell melarikan diri dan mengutip adalah
tidak dibutuhkan. Anda dapat mengulangi opsi ini untuk menentukan lebih dari satu file opsi.

--tunjukkan-sloc
Tampilkan jumlah baris kode sumber fisik (SLOC) yang dihasilkan.

--sloc-batas num
Periksa apakah jumlah baris kode sumber fisik (SLOC) yang dihasilkan tidak
melebihi num.

--lisensi-kepemilikan
Tunjukkan bahwa kode yang dihasilkan dilisensikan di bawah lisensi kepemilikan alih-alih
GPL.

--custom-literal fillet
Muat string XML khusus ke pemetaan literal C++ dari fillet. Mekanisme ini dapat
berguna jika Anda menggunakan pengkodean karakter khusus dan beberapa string di . Anda
skema, misalnya nama elemen/atribut atau nilai enumerasi, mengandung non-
karakter ASCII. Dalam hal ini Anda perlu memberikan pemetaan khusus ke C++
literal untuk string tersebut. Format file ini ditentukan dalam custom-
literal.xsd File Skema XML yang dapat ditemukan di direktori dokumentasi.

--melestarikan-anonim
Pertahankan jenis anonim. Secara default, jenis anonim secara otomatis dinamai dengan
nama yang berasal dari elemen/atribut yang menyertainya. Karena pemetaan dilaksanakan
oleh kompiler ini mengharuskan semua jenis diberi nama, opsi ini hanya berguna jika Anda
ingin memastikan skema Anda tidak memiliki tipe anonim.

--show-anonim
Tampilkan elemen dan atribut yang bertipe anonim. Pilihan ini hanya membuat
rasa bersama dengan --melestarikan-anonim .

--anonim-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk mendapatkan nama untuk anonim
jenis dari atribut/elemen terlampir. regex adalah reguler seperti Perl
ekspresi dalam bentuk /belt hold/penggantian/. Karakter apa pun dapat digunakan sebagai
pembatas bukannya /. Melarikan diri dari karakter pembatas di belt hold or
penggantian Tidak didukung

Semua ekspresi reguler didorong ke dalam tumpukan dengan yang terakhir ditentukan
ekspresi dipertimbangkan terlebih dahulu. Pertandingan pertama yang berhasil digunakan. Reguler
ekspresi diterapkan ke string dalam bentuk

nama file namespace xpath

Misalnya:

halo.xsd http://example.com/hello elemen

halo.xsd http://example.com/hello jenis/elemen

Sebagai contoh, ekspresi berikut membuat semua nama turunan dimulai dengan
huruf kapital. Ini bisa berguna ketika konvensi penamaan Anda membutuhkan tipe
nama yang dimulai dengan huruf kapital:

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

Lihat juga bagian REGEX AND SHELL QUOTING di bawah ini.

--anonim-regex-trace
Lacak proses penerapan ekspresi reguler yang ditentukan dengan --anonim-
regex pilihan. Gunakan opsi ini untuk mencari tahu mengapa ekspresi reguler Anda tidak berfungsi
apa yang Anda harapkan mereka lakukan.

--peta Lokasi ol=nl
Petakan lokasi skema asli ol yang ditentukan dalam Skema XML termasuk atau
impor elemen ke lokasi skema baru nl. Ulangi opsi ini untuk memetakan lebih dari satu
lokasi skema. Misalnya, opsi berikut memetakan:
http://example.com/foo.xsd URL ke foo.xsd berkas lokal.

--peta Lokasi http://example.com/foo.xsd=foo.xsd

--lokasi-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk memetakan lokasi skema yang
ditentukan dalam Skema XML termasuk atau elemen impor. regex adalah seperti Perl
ekspresi reguler dalam bentuk /belt hold/penggantian/. Karakter apa pun dapat digunakan sebagai
pembatas bukannya /. Melarikan diri dari karakter pembatas di belt hold or
penggantian tidak didukung. Semua ekspresi reguler didorong ke dalam tumpukan
dengan ekspresi yang ditentukan terakhir dianggap pertama. Pertandingan pertama yang berhasil
digunakan.

Misalnya, ekspresi berikut memetakan lokasi URL dalam bentuk
http://example.com/foo/bar.xsd ke file lokal dalam bentuk bar.xsd:

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

Lihat juga bagian REGEX AND SHELL QUOTING di bawah ini.

--lokasi-regex-trace
Lacak proses penerapan ekspresi reguler yang ditentukan dengan --lokasi-
regex pilihan. Gunakan opsi ini untuk mencari tahu mengapa ekspresi reguler Anda tidak berfungsi
apa yang Anda harapkan mereka lakukan.

--file-per-jenis
Hasilkan kumpulan file C++ terpisah untuk setiap jenis yang ditentukan dalam Skema XML. Catatan
bahwa dalam mode ini Anda hanya perlu mengkompilasi skema root dan kodenya akan menjadi
dihasilkan untuk semua skema yang disertakan dan diimpor. Mode kompilasi ini terutama
berguna ketika beberapa skema Anda tidak dapat dikompilasi secara terpisah atau memiliki siklus
dependensi yang melibatkan pewarisan tipe. Opsi lain yang terkait dengan mode ini
adalah: --tipe-file-regex, --skema-file-regex, --file tipe-lemak, dan --daftar-file.

--tipe-file-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk menerjemahkan nama tipe ke file
nama ketika --file-per-jenis opsi ditentukan. regex adalah reguler seperti Perl
ekspresi dalam bentuk /belt hold/penggantian/. Karakter apa pun dapat digunakan sebagai
pembatas bukannya /. Melarikan diri dari karakter pembatas di belt hold or
penggantian tidak didukung. Semua ekspresi reguler didorong ke dalam tumpukan
dengan ekspresi yang ditentukan terakhir dianggap pertama. Pertandingan pertama yang berhasil
digunakan. Ekspresi reguler diterapkan ke string dalam bentuk

namespace ketik nama

Misalnya, tipe peta ekspresi berikut: foo yang didefinisikan dalam
http://example.com/bar namespace ke nama file bar-foo:

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

Lihat juga bagian REGEX AND SHELL QUOTING di bawah ini.

--type-file-regex-trace
Lacak proses penerapan ekspresi reguler yang ditentukan dengan --tipe-file-
regex pilihan. Gunakan opsi ini untuk mencari tahu mengapa ekspresi reguler Anda tidak berfungsi
apa yang Anda harapkan mereka lakukan.

--skema-file-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk menerjemahkan nama file skema
ketika --file-per-jenis opsi ditentukan. regex adalah reguler seperti Perl
ekspresi dalam bentuk /belt hold/penggantian/. Karakter apa pun dapat digunakan sebagai
pembatas bukannya /. Melarikan diri dari karakter pembatas di belt hold or
penggantian tidak didukung. Semua ekspresi reguler didorong ke dalam tumpukan
dengan ekspresi yang ditentukan terakhir dianggap pertama. Pertandingan pertama yang berhasil
digunakan. Ekspresi Reguler diterapkan ke jalur sistem file absolut dari a
file skema dan hasilnya, termasuk bagian direktori, jika ada, digunakan untuk menurunkan
itu #include jalur direktif serta jalur file C++ yang dihasilkan. Pilihan ini,
bersama dengan --tipe-file-regex terutama berguna untuk menempatkan file yang dihasilkan ke dalam
subdirektori atau untuk menyelesaikan konflik nama file.

Misalnya, ekspresi berikut memetakan file skema di: foo/1.0.0/
subdirektori ke file di foo/ subdirektori. Akibatnya, #include
jalur direktif untuk skema tersebut akan berada di foo/schema.hxx bentuk dan
file C++ yang dihasilkan akan ditempatkan ke dalam foo/ subdirektori:

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

Lihat juga bagian REGEX AND SHELL QUOTING di bawah ini.

--file skema-regex-trace
Lacak proses penerapan ekspresi reguler yang ditentukan dengan --skema-file-
regex pilihan. Gunakan opsi ini untuk mencari tahu mengapa ekspresi reguler Anda tidak berfungsi
apa yang Anda harapkan mereka lakukan.

--file tipe-lemak
Hasilkan kode yang sesuai dengan elemen global menjadi file tipe alih-alih skema
file ketika --tipe-file-regex opsi ditentukan. Opsi ini terutama
berguna ketika mencoba meminimalkan jumlah kode objek yang ditautkan ke suatu
dapat dieksekusi dengan mengemas kode yang dihasilkan yang dikompilasi ke dalam perpustakaan statis (arsip).

--daftar-file fillet
Tulis daftar file C++ yang dihasilkan ke fillet. Opsi ini terutama berguna dalam
mode kompilasi file-per-jenis (--file-per-jenis) untuk membuat daftar C++ . yang dihasilkan
file, misalnya, sebagai fragmen makefile.

--file-daftar-prolog teks
Menyisipkan teks di awal daftar file. Sebagai kenyamanan, semua kemunculan
itu \n urutan karakter dalam teks diganti dengan baris baru. Opsi ini dapat, untuk
contoh, digunakan untuk menetapkan daftar file yang dihasilkan ke variabel makefile.

--file-daftar-epilog teks
Menyisipkan teks di akhir daftar file. Untuk kenyamanan, semua kejadian dari
\n urutan karakter dalam teks diganti dengan baris baru.

--file-daftar-delim teks
Batasi nama file yang ditulis ke daftar file dengan teks bukannya baris baru. Sebagai
kenyamanan, semua kejadian dari \n urutan karakter dalam teks diganti dengan
baris baru.

cxx-pohon Command Pilihan
--generate-polimorfik
Hasilkan kode sadar polimorfisme. Tentukan opsi ini jika Anda menggunakan substitusi
kelompok atau xsi: ketik. Menggunakan --tipe polimorfik or --polimorfik-tipe-semua pilihan untuk
tentukan tipe hierarki mana yang polimorfik.

--tipe polimorfik mengetik
Tunjukkan bahwa mengetik adalah akar dari hierarki tipe polimorfik. Kompiler dapat
sering secara otomatis menentukan tipe mana yang polimorfik berdasarkan substitusi
deklarasi kelompok. Namun, Anda mungkin perlu menggunakan opsi ini jika Anda tidak menggunakan
kelompok substitusi atau jika kelompok substitusi didefinisikan dalam skema lain. Anda
perlu menentukan opsi ini saat mengkompilasi setiap file skema yang direferensikan mengetik.
Grafik mengetik argumen adalah nama tipe Skema XML yang dapat dikualifikasikan secara opsional dengan
ruang nama di namespace#nama bentuk.

--polimorfik-tipe-semua
Tunjukkan bahwa semua jenis harus diperlakukan sebagai polimorfik.

--polimorfik-piring num
Tentukan pelat peta polimorfik tempat kode yang dihasilkan harus didaftarkan. Ini
Fungsionalitas ini terutama berguna untuk memisahkan beberapa skema yang mendefinisikan
jenis polimorfik yang sama.

--tipe yang dipesan mengetik
Tunjukkan bahwa urutan elemen dalam mengetik signifikan. Contohnya adalah kompleks
ketik dengan pilihan tak terbatas sebagai model konten di mana urutan elemen dalam XML memiliki
semantik khusus aplikasi. Untuk tipe yang dipesan, kompiler menghasilkan khusus
anggota data wadah dan satu set pengakses dan pengubah yang sesuai yang
digunakan untuk menangkap urutan elemen dan, untuk konten campuran, teks.

Grafik mengetik argumen adalah nama tipe Skema XML yang dapat dikualifikasikan secara opsional dengan
ruang nama di namespace#nama membentuk. Perhatikan juga bahwa Anda perlu menentukan
opsi ini saat mengkompilasi setiap file skema yang memiliki tipe terurut lainnya yang diturunkan
dari jenis ini.

--urutan-jenis-turunan
Secara otomatis memperlakukan jenis yang berasal dari basis yang dipesan seperti yang juga dipesan. Ini adalah
terutama berguna jika Anda ingin dapat mengulangi konten lengkap
menggunakan wadah pesanan konten.

--dipesan-tipe-campuran
Perlakukan tipe kompleks secara otomatis dengan konten campuran sesuai pesanan.

--dipesan-tipe-semua
Tunjukkan bahwa urutan elemen pada semua tipe adalah signifikan.

--pesan-wadah mengetik
Tentukan templat kelas khusus yang harus digunakan sebagai wadah untuk konten
pesan dalam jenis yang dipesan alih-alih default std::vektor. Lihat --tipe yang dipesan untuk
informasi lebih lanjut tentang jenis yang dipesan. Opsi ini terutama berguna jika Anda perlu
melakukan pencarian yang lebih kompleks dalam wadah pesanan konten, misalnya berdasarkan elemen
Indo. Dalam hal ini, wadah seperti Boost multi-indeks mungkin lebih nyaman. Catatan
bahwa jika menggunakan wadah khusus, kemungkinan besar Anda juga harus menyertakan
tajuk yang relevan menggunakan --hxx-prolog* Pilihan.

--menghasilkan-serialisasi
Menghasilkan fungsi serialisasi. Fungsi serialisasi mengubah model objek
kembali ke XML.

--menghasilkan-ostream
Menghasilkan operator penyisipan ostream (operator<) untuk jenis yang dihasilkan. Ini memungkinkan
satu untuk dengan mudah mencetak fragmen atau seluruh model objek untuk debugging atau logging.

--menghasilkan-doksigen
Hasilkan komentar dokumentasi yang cocok untuk ekstraksi oleh Doxygen
sistem dokumentasi. Dokumentasi dari anotasi ditambahkan ke komentar jika
hadir dalam skema.

--hasil-perbandingan
Menghasilkan operator perbandingan (operator== dan operator!=) untuk tipe kompleks.
Perbandingan dilakukan berdasarkan anggota.

--menghasilkan-default-ctor
Hasilkan konstruktor default bahkan untuk tipe yang memiliki anggota yang diperlukan. Yg dibutuhkan
anggota instance yang dibangun menggunakan konstruktor seperti itu tidak diinisialisasi dan
mengaksesnya menghasilkan perilaku yang tidak terdefinisi.

--menghasilkan-dari-basis-ctor
Hasilkan konstruktor yang mengharapkan turunan dari tipe dasar diikuti oleh semua
anggota yang dibutuhkan.

--menekan-tugas
Menekan pembuatan operator penugasan salinan untuk tipe kompleks. Jika ini
opsi ditentukan, operator penugasan salinan untuk tipe tersebut dideklarasikan
swasta dan dibiarkan tidak dilaksanakan.

--hasilkan-lepaskan
Hasilkan fungsi detach untuk elemen dan atribut yang diperlukan. Lepaskan fungsi
untuk kardinalitas opsional dan urutan disediakan oleh wadah masing-masing.
Fungsi-fungsi ini, misalnya, memungkinkan Anda untuk memindahkan sub-pohon dalam model objek
baik di dalam pohon yang sama atau di antara pohon yang berbeda.

--menghasilkan-kartu pengganti
Hasilkan pengakses dan pengubah serta penguraian dan kode serialisasi untuk XML
Skema wildcard (Apa pun dan setiapAtribut). Konten XML yang cocok dengan wildcard adalah
disajikan sebagai fragmen DOM. Perhatikan bahwa Anda perlu menginisialisasi runtime Xerces-C++
jika Anda menggunakan opsi ini.

--menghasilkan-jenis apa pun
Ekstrak dan simpan konten Skema XML jenis apa saja ketik sebagai fragmen DOM. Catatan
bahwa Anda perlu menginisialisasi runtime Xerces-C++ jika Anda menggunakan opsi ini.

--generate-insersi os
Menghasilkan operator penyisipan aliran representasi data untuk os aliran keluaran
Tipe. Ulangi opsi ini untuk menentukan lebih dari satu jenis aliran. Aliran ACE CDR
(ACE_KeluaranCDR) dan RPC XDR dikenali oleh kompiler dan diperlukan
#include arahan dibuat secara otomatis. Untuk jenis aliran khusus, gunakan
--hxx-prolog* pilihan untuk memberikan deklarasi yang diperlukan.

--hasil-ekstraksi is
Hasilkan konstruktor ekstraksi aliran representasi data untuk is aliran masukan
Tipe. Ulangi opsi ini untuk menentukan lebih dari satu jenis aliran. Aliran ACE CDR
(ACE_MasukanCDR) dan RPC XDR dikenali oleh kompiler dan diperlukan
#include arahan dibuat secara otomatis. Untuk jenis aliran khusus, gunakan
--hxx-prolog* pilihan untuk memberikan deklarasi yang diperlukan.

--menghasilkan-maju
Hasilkan file header terpisah dengan deklarasi penerusan untuk tipe yang sedang
dihasilkan.

--menekan-parsing
Menekan pembuatan fungsi parsing dan konstruktor. Gunakan opsi ini
untuk mengurangi ukuran kode yang dihasilkan saat parsing dari XML tidak diperlukan.

--menghasilkan-tipe-elemen
Hasilkan tipe alih-alih fungsi parsing dan serialisasi untuk elemen root.
Ini terutama berguna untuk membedakan model objek dengan tipe root yang sama tetapi
dengan elemen akar yang berbeda.

--menghasilkan-elemen-peta
Hasilkan peta elemen root yang memungkinkan penguraian dan serialisasi seragam
beberapa elemen akar. Opsi ini hanya berlaku bersama dengan --hasil-elemen-
mengetik.

--menghasilkan-intellisense
Hasilkan solusi untuk bug IntelliSense di Visual Studio 2005 (8.0). Kapan ini
opsi digunakan, kode yang dihasilkan sedikit lebih bertele-tele. IntelliSense dalam
Visual Studio 2008 (9.0) dan yang lebih baru tidak memerlukan solusi ini. Mendukung
IntelliSense di Visual Studio 2003 (7.1) ditingkatkan dengan opsi ini tetapi masih
tidak lengkap.

--menghilangkan-default-atribut
Hilangkan atribut dengan nilai default dan tetap dari dokumen XML serial.

--penamaan tipe gaya
Tentukan konvensi penamaan tipe yang harus digunakan dalam kode yang dihasilkan. Sah
gaya adalah knr (Default), ucc, dan Jawa. Lihat bagian KONVENSI PENAMBAHAN di bawah ini
for more information.

--penamaan-fungsi gaya
Tentukan konvensi penamaan fungsi yang harus digunakan dalam kode yang dihasilkan.
Gaya yang valid adalah knr (Default), lcc, dan Jawa. Lihat bagian KONVENSI NAMA
di bawah ini untuk informasi lebih lanjut.

--tipe-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk menerjemahkan tipe Skema XML
nama ke nama tipe C++. Lihat bagian KONVENSI PENAMBAHAN di bawah ini untuk lebih lanjut
informasi.

--aksesor-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk menerjemahkan nama Skema XML dari
elemen/atribut ke nama fungsi pengakses C++. Lihat KONVENSI NAMA
bagian di bawah ini untuk informasi lebih lanjut.

--satu-aksesor-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk menerjemahkan nama Skema XML dari
elemen/atribut dengan kardinalitas satu ke nama fungsi pengakses C++. Lihat
KONVENSI PENAMBANGAN di bawah ini untuk informasi lebih lanjut.

--opt-aksesor-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk menerjemahkan nama Skema XML dari
elemen/atribut dengan kardinalitas opsional untuk nama fungsi pengakses C++. Lihat
bagian KONVENSI NAMA di bawah ini untuk informasi lebih lanjut.

--seq-aksesor-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk menerjemahkan nama Skema XML dari
elemen/atribut dengan urutan kardinalitas ke nama fungsi pengakses C++. Lihat
bagian KONVENSI NAMA di bawah ini untuk informasi lebih lanjut.

--pengubah-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk menerjemahkan nama Skema XML dari
elemen/atribut untuk nama fungsi pengubah C++. Lihat KONVENSI NAMA
bagian di bawah ini untuk informasi lebih lanjut.

--satu-pengubah-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk menerjemahkan nama Skema XML dari
elemen/atribut dengan kardinalitas satu ke nama fungsi pengubah C++. Lihat
KONVENSI PENAMBANGAN di bawah ini untuk informasi lebih lanjut.

--opt-pengubah-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk menerjemahkan nama Skema XML dari
elemen/atribut dengan kardinalitas opsional untuk nama fungsi pengubah C++. Lihat
bagian KONVENSI NAMA di bawah ini untuk informasi lebih lanjut.

--seq-pengubah-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk menerjemahkan nama Skema XML dari
elemen/atribut dengan urutan kardinalitas ke nama fungsi pengubah C++. Lihat
bagian KONVENSI NAMA di bawah ini untuk informasi lebih lanjut.

--parser-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk menerjemahkan elemen Skema XML
nama ke nama fungsi parsing C++. Lihat bagian KONVENSI PENAMBAHAN di bawah ini untuk
Informasi lebih lanjut

--serialisasi-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk menerjemahkan elemen Skema XML
nama ke nama fungsi serialisasi C++. Lihat bagian KONVENSI PENAMBAHAN di bawah ini
for more information.

--const-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk menerjemahkan XML Schema-derived
nama ke nama konstanta C++. Lihat bagian KONVENSI PENAMBAHAN di bawah ini untuk lebih lanjut
informasi.

--enumerator-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk menerjemahkan Skema XML
nilai enumerasi ke nama enumerator C++. Lihat bagian KONVENSI PENAMBAHAN di bawah ini
for more information.

--elemen-type-regex regex
Add regex ke daftar ekspresi reguler yang digunakan untuk menerjemahkan elemen Skema XML
nama ke nama tipe elemen C++. Lihat bagian KONVENSI PENAMBAHAN di bawah ini untuk lebih lanjut
informasi.

--nama-regex-trace
Lacak proses penerapan ekspresi reguler yang ditentukan dengan nama
pilihan transformasi. Gunakan opsi ini untuk mencari tahu mengapa ekspresi reguler Anda
tidak melakukan apa yang Anda harapkan mereka lakukan.

--root-element-pertama
Perlakukan hanya elemen global pertama sebagai root dokumen. Secara default semua global
elemen dianggap sebagai akar dokumen.

--root-elemen-terakhir
Perlakukan hanya elemen global terakhir sebagai root dokumen. Secara default semua global
elemen dianggap sebagai akar dokumen.

--root-element-semua
Perlakukan semua elemen global sebagai akar dokumen. Ini adalah perilaku default. Oleh
secara eksplisit menentukan opsi ini, Anda dapat menekan peringatan yang dikeluarkan jika
lebih dari satu elemen global didefinisikan.

--root-elemen-tidak ada
Jangan perlakukan elemen global apa pun sebagai akar dokumen. Secara default semua elemen global
dianggap sebagai akar dokumen.

--root-elemen elemen
Perlakukan saja elemen sebagai akar dokumen. Ulangi opsi ini untuk menentukan lebih dari satu
elemen akar.

--tipe khusus peta
Gunakan tipe C++ khusus alih-alih kelas yang dihasilkan. NS peta argumen ada di
bentuk nama[=mengetik[/mendasarkan]], di mana nama adalah nama tipe seperti yang didefinisikan dalam Skema XML dan
mengetik adalah nama tipe C++ yang harus digunakan sebagai gantinya. Jika mengetik tidak hadir atau
kosong maka jenis kustom diasumsikan memiliki nama yang sama dan didefinisikan dalam
namespace yang sama dengan kelas yang dihasilkan. Jika mendasarkan ditentukan maka
kelas yang dihasilkan masih dihasilkan tetapi dengan nama itu.

--tipe-kustom-regex regex
Gunakan tipe C++ khusus alih-alih kelas yang dihasilkan. NS regex argumen ada di
bentuk /nama-pat/[tipe-sub/[basis-sub/]], di mana nama-pat adalah pola regex yang akan
dicocokkan dengan nama tipe seperti yang didefinisikan dalam Skema XML dan tipe-sub adalah tipe C++
penggantian nama yang seharusnya digunakan. Jika tipe-sub tidak hadir atau
substitusi menghasilkan string kosong maka tipe kustom diasumsikan memiliki
nama yang sama dan didefinisikan dalam namespace yang sama dengan kelas yang dihasilkan.
If basis-sub hadir dan substitusinya menghasilkan string yang tidak kosong maka
kelas yang dihasilkan masih dihasilkan tetapi dengan hasil substitusi ini sebagai
nama. Pola dan substitusi dalam format ekspresi reguler Perl. Lihat
juga bagian REGEX AND SHELL QUOTING di bawah ini.

--bagian num
Pisahkan kode sumber yang dihasilkan menjadi num bagian. Ini berguna saat menerjemahkan besar,
skema monolitik dan kompiler C++ tidak dapat mengkompilasi sumber yang dihasilkan
kode sekaligus (biasanya karena memori tidak mencukupi).

--bagian-akhiran akhiran
penggunaan akhiran alih-alih default '-' untuk memisahkan nama file dari bagian
nomor.

cxx-parser Command Pilihan
--type-peta berkas peta
Baca XML Schema ke informasi pemetaan tipe C++ dari berkas peta. Ulangi opsi ini untuk
menentukan beberapa jenis peta. Jenis peta dipertimbangkan dalam urutan penampilan dan
pertandingan pertama digunakan. Secara default semua tipe yang ditentukan pengguna dipetakan ke membatalkan. Lihat
TYPE MAP di bawah ini untuk informasi lebih lanjut.

--xml-pengurai pengurai
penggunaan pengurai sebagai parser XML yang mendasarinya. Nilai yang valid adalah xerces untuk Xerces-C++
(default) dan expat untuk Ekspatriat.

--generate-validasi
Buat kode validasi. Kode validasi ("parser sempurna") memastikan bahwa
dokumen contoh sesuai dengan skema. Kode validasi dihasilkan secara default
ketika parser XML dasar yang dipilih tidak memvalidasi (expat).

--suppress-validasi
Menekan pembuatan kode validasi. Validasi ditekan secara default
ketika parser XML dasar yang dipilih sedang memvalidasi (xerces).

--generate-polimorfik
Hasilkan kode sadar polimorfisme. Tentukan opsi ini jika Anda menggunakan substitusi
kelompok atau xsi: ketik.

--menghasilkan-noop-impl
Hasilkan implementasi parser sampel yang tidak melakukan apa-apa (tanpa operasi). NS
contoh implementasi kemudian dapat diisi dengan kode khusus aplikasi. Untuk sebuah
masukan file dalam bentuk nama.xsd opsi ini memicu generasi dua
tambahan file C++ berupa: nama-pimpl.hxx (tajuk implementasi parser
file) dan nama-pimpl.cxx (file sumber implementasi parser).

--menghasilkan-cetak-impl
Buat implementasi parser sampel yang mencetak data XML ke STDOUT. Untuk sebuah
masukan file dalam bentuk nama.xsd opsi ini memicu generasi dua
tambahan file C++ berupa: nama-pimpl.hxx (tajuk implementasi parser
file) dan nama-pimpl.cxx (file sumber implementasi parser).

--menghasilkan-penguji-driver
Hasilkan driver uji untuk implementasi parser sampel. Untuk file masukan di
formulir nama.xsd opsi ini memicu pembuatan file C++ tambahan di
formulir nama-driver.cxx.

--paksa-timpa
Timpa paksa dari implementasi yang ada dan file driver uji. Gunakan ini
pilihan hanya jika Anda tidak keberatan kehilangan perubahan yang telah Anda buat dalam sampel
implementasi atau uji file driver.

--root-element-pertama
Tunjukkan bahwa elemen global pertama adalah root dokumen. Informasi ini adalah
digunakan untuk menghasilkan test driver untuk implementasi sampel.

--root-elemen-terakhir
Tunjukkan bahwa elemen global terakhir adalah root dokumen. Informasi ini adalah
digunakan untuk menghasilkan test driver untuk implementasi sampel.

--root-elemen elemen
Tunjukkan bahwa elemen adalah akar dokumen. Informasi ini digunakan untuk menghasilkan
test driver untuk implementasi sampel.

--skel-tipe-akhiran akhiran
Gunakan yang disediakan akhiran alih-alih default _pskel untuk membangun nama-nama
kerangka parser yang dihasilkan.

--skel-file-akhiran akhiran
Gunakan yang disediakan akhiran alih-alih default -pskel untuk membangun nama-nama
file kerangka parser yang dihasilkan.

--impl-tipe-akhiran akhiran
Gunakan yang disediakan akhiran alih-alih default _jerawat untuk membangun nama-nama
implementasi parser untuk tipe XML Schema bawaan serta parser sampel
implementasi.

--impl-file-akhiran akhiran
Gunakan yang disediakan akhiran alih-alih default -jerawat untuk membangun nama-nama
file implementasi parser sampel yang dihasilkan.

PENAMBAHAN KONVENSI


Kompiler dapat diinstruksikan untuk menggunakan konvensi penamaan tertentu dalam file yang dihasilkan
kode. Sejumlah konvensi yang banyak digunakan dapat dipilih menggunakan --penamaan tipe dan
--penamaan-fungsi pilihan. Sebuah konvensi penamaan kustom dapat dicapai dengan menggunakan --Tipe-
regex, --aksesor-regex, --satu-aksesor-regex, --opt-aksesor-regex, --seq-aksesor-regex,
--pengubah-regex, --satu-pengubah-regex, --opt-pengubah-regex, --seq-pengubah-regex,
--parser-regex, --serialisasi-regex, --const-regex, --enumerator-regex, dan --tipe-elemen-
regex Pilihan.

Grafik --penamaan tipe opsi menentukan konvensi yang harus digunakan untuk penamaan C++
jenis. Nilai yang mungkin untuk opsi ini adalah knr (Default), ucc, dan Jawa. itu knr nilai
(singkatan dari K&R) menandakan standar, konvensi penamaan huruf kecil dengan garis bawah
digunakan sebagai pembatas kata, misalnya: foo, foo_bar. NS ucc (singkatan dari unta atas-
kasus) dan Jawa nilai sinonim untuk konvensi penamaan yang sama di mana huruf pertama dari
setiap kata dalam nama dikapitalisasi, misalnya: Foo, FooBar.

Demikian pula, --penamaan-fungsi opsi menentukan konvensi yang harus digunakan untuk
penamaan fungsi C++. Nilai yang mungkin untuk opsi ini adalah knr (Default), lcc, dan Jawa.
Grafik knr value (singkatan dari K&R) menandakan standar, konvensi penamaan huruf kecil dengan
garis bawah digunakan sebagai pembatas kata, misalnya: foo(), foo_bar(). NS lcc nilai
(singkatan dari huruf kecil-unta) menandakan konvensi penamaan di mana huruf pertama masing-masing
kata kecuali yang pertama dikapitalisasi, misalnya: foo(), fooBar(). NS Jawa penamaan
konvensi mirip dengan huruf kecil-unta kecuali bahwa fungsi pengakses adalah
diawali dengan get, fungsi pengubah diawali dengan set, fungsi parsing adalah
diawali dengan parse, dan fungsi serialisasi diawali dengan serialisasi, misalnya:
getFoo(), setFooBar(), parseRoot(), serializeRoot().

Perhatikan bahwa konvensi penamaan yang ditentukan dengan --penamaan tipe dan --penamaan-fungsi
opsi hanya melakukan transformasi terbatas pada nama yang berasal dari skema di
bentuk tipe, atribut, dan nama elemen. Dengan kata lain, untuk mendapatkan hasil yang konsisten,
skema Anda harus mengikuti konvensi penamaan yang serupa dengan yang Anda inginkan
dalam kode yang dihasilkan. Sebagai alternatif, Anda dapat menggunakan --*-regex pilihan (dibahas di bawah)
untuk melakukan transformasi lebih lanjut pada nama-nama yang berasal dari skema.

Grafik --tipe-regex, --aksesor-regex, --satu-aksesor-regex, --opt-aksesor-regex, --seq-
accessor-regex, --pengubah-regex, --satu-pengubah-regex, --opt-pengubah-regex, --seq-
pengubah-regex, --parser-regex, --serialisasi-regex, --const-regex, --enumerator-regex, dan
--elemen-type-regex opsi memungkinkan Anda untuk menentukan ekspresi reguler ekstra untuk setiap nama
kategori selain set yang telah ditentukan sebelumnya yang ditambahkan tergantung pada --penamaan tipe
dan --penamaan-fungsi pilihan. Ekspresi yang disediakan dengan --*-regex Pilihan
dievaluasi sebelum ekspresi yang telah ditentukan. Ini memungkinkan Anda untuk menimpa secara selektif
beberapa atau semua transformasi yang telah ditentukan. Saat men-debug ekspresi Anda sendiri, itu adalah
sering berguna untuk melihat ekspresi mana yang cocok dengan nama mana. NS --nama-regex-trace Option
memungkinkan Anda melacak proses penerapan ekspresi reguler ke nama.

Nilai untuk --*-regex opsi harus berupa ekspresi reguler seperti Perl dalam formulir
/belt hold/penggantian/. Karakter apa pun dapat digunakan sebagai pembatas, bukan /. melarikan diri
dari karakter pembatas di belt hold or penggantian tidak didukung. Semua biasa
ekspresi untuk setiap kategori didorong ke dalam tumpukan khusus kategori dengan yang terakhir
ekspresi tertentu dipertimbangkan terlebih dahulu. Pertandingan pertama yang berhasil digunakan. Untuk
--satu-aksesor-regex (aksesor dengan kardinalitas satu), --opt-aksesor-regex (aksesor
dengan kardinalitas opsional), dan --seq-aksesor-regex (aksesor dengan urutan kardinalitas)
kategori itu --aksesor-regex ekspresi digunakan sebagai fallback. Untuk --satu-
pengubah-regex, --opt-pengubah-regex, dan --seq-pengubah-regex kategori itu --pengubah-
regex ekspresi digunakan sebagai fallback. Untuk --elemen-type-regex kategorikan
--tipe-regex ekspresi digunakan sebagai fallback.

Ekspresi nama tipe (--tipe-regex) dievaluasi pada string nama yang memiliki
format berikut:

[namespace ]nama[,nama][,nama][,nama]

Ekspresi nama tipe elemen (--elemen-type-regex), efektif hanya jika
--menghasilkan-tipe-elemen opsi ditentukan, dievaluasi pada string nama yang memiliki
format berikut:

namespace nama

Dalam format nama tipe namespace bagian yang diikuti spasi hanya ada untuk global
ketik nama. Untuk tipe dan elemen global yang ditentukan dalam skema tanpa namespace target,
itu namespace bagian kosong tetapi ruang masih ada. Dalam format nama tipe setelah
awal nama komponen, hingga tiga tambahan nama komponen dapat hadir
dipisahkan dengan koma. Sebagai contoh:

http://example.com/hello mengetik

foo

foo, iterator

foo, const, iterator

Kumpulan ekspresi reguler standar berikut digunakan untuk mengubah nama tipe ketika:
konvensi penamaan huruf besar unta dipilih:

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

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

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

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

Ekspresi pengakses dan pengubah (--*aksesor-regex dan --*pengubah-regex) adalah
dievaluasi pada string nama yang memiliki format berikut:

nama[,nama][,nama]

Setelah inisial nama komponen, hingga dua tambahan nama komponen dapat hadir
dipisahkan dengan koma. Sebagai contoh:

foo

dom, dokumen

foo, default, nilai

Kumpulan ekspresi reguler yang telah ditentukan berikut ini digunakan untuk mengubah nama pengakses:
ketika Jawa konvensi penamaan dipilih:

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

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

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

Untuk kategori parser, serializer, dan enumerator, regular yang sesuai
ekspresi dievaluasi pada nama lokal elemen dan nilai enumerasi,
masing-masing. Misalnya, ekspresi reguler yang telah ditentukan berikut ini digunakan untuk
ubah nama fungsi penguraian ketika Jawa konvensi penamaan dipilih:

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

Kategori const digunakan untuk membuat nama konstanta C++ untuk elemen/wildcard/teks
id konten dalam jenis yang dipesan.

Lihat juga bagian REGEX AND SHELL QUOTING di bawah ini.

JENIS MAP


Jenis file peta digunakan dalam C++/Parser untuk mendefinisikan pemetaan antara Skema XML dan C++
jenis. Kompilator menggunakan informasi ini untuk menentukan jenis pengembalian Pos_*
fungsi dalam kerangka parser yang sesuai dengan tipe Skema XML serta tipe argumen
untuk panggilan balik yang sesuai dengan elemen dan atribut jenis ini.

Kompiler memiliki seperangkat aturan pemetaan yang telah ditentukan sebelumnya yang memetakan tipe Skema XML bawaan ke
tipe C++ yang sesuai (dibahas di bawah) dan semua tipe lainnya untuk membatalkan. Dengan menyediakan Anda sendiri
ketik peta Anda dapat mengganti aturan yang telah ditentukan ini. Format file peta jenis adalah
disajikan di bawah ini:

namespace skema-namespace [ cxx-namespace ]
{
( memasukkan nama file; )*
([ mengetik ] tipe skema cxx-ret-type [ tipe cxx-arg ]; )*
}

Kedua skema-namespace dan tipe skema adalah pola regex sementara cxx-namespace, cxx-ret-
mengetik, dan tipe cxx-arg adalah substitusi pola regex. Semua nama bisa opsional
diapit dalam " ", misalnya, untuk menyertakan spasi putih.

skema-namespace menentukan namespace Skema XML. Opsional cxx-namespace diawali dengan
setiap nama tipe C++ dalam deklarasi namespace ini. cxx-ret-type adalah nama tipe C++ yang
digunakan sebagai tipe pengembalian untuk Pos_* fungsi. Opsional tipe cxx-arg adalah argumen
ketik untuk fungsi panggilan balik yang sesuai dengan elemen dan atribut jenis ini. Jika cxx-
tipe-arg tidak ditentukan, defaultnya adalah cxx-ret-type if cxx-ret-type berakhir dengan * or &
(yaitu, itu adalah penunjuk atau referensi) dan const cxx-ret-type& jika tidak. nama file is
nama file baik dalam format " " atau < > dan ditambahkan dengan #include arahan ke
kode yang dihasilkan.

Grafik # karakter memulai komentar yang diakhiri dengan baris atau akhir file baru. Untuk menentukan
nama yang mengandung # sertakan dalam " ". Sebagai contoh:

namespace http://www.example.com/xmlns/my my
{
termasuk "my.hxx";

# Lulus apel berdasarkan nilai.
#
apel apel;

# Berikan jeruk sebagai petunjuk.
#
oranye oranye_t*;
}

Pada contoh di atas, untuk http://www.example.com/xmlns/my#jeruk Jenis Skema XML,
saya::orange_t* Tipe C++ akan digunakan sebagai tipe pengembalian dan argumen.

Beberapa deklarasi namespace dapat ditentukan dalam satu file. ruang nama
deklarasi juga dapat sepenuhnya dihilangkan untuk memetakan tipe dalam skema tanpa namespace.
Misalnya:

termasuk "my.hxx";
apel apel;

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

Kompiler memiliki sejumlah aturan pemetaan yang telah ditentukan sebelumnya yang dapat disajikan sebagai
file peta berikut. Tipe bawaan XML Schema berbasis string dipetakan ke
std::string or std::wstring tergantung pada tipe karakter yang dipilih dengan --tipe-char
pilihan (tangki secara default).

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

byte "char bertanda" "char bertanda";
unsignedByte "char yang tidak ditandatangani" "char yang tidak ditandatangani";

pendek pendek pendek;
unsignedShort "unsigned short" "unsigned short";

int int;
unsignedInt "unsigned int" "unsigned int";

panjang "panjang panjang" "panjang panjang";
unsignedLong "unsigned long long" "unsigned long long";

integer "panjang panjang" "panjang panjang";

negativeInteger "panjang panjang" "panjang panjang";
nonPositiveInteger "panjang panjang" "panjang panjang";

positiveInteger "unsigned long long" "unsigned long long";
nonNegativeInteger "unsigned long long" "unsigned long long";

mengapung mengapung mengapung;
ganda ganda ganda;
desimal ganda ganda;

tali std::tali;
normalisasiString std::string;
tanda std::string;
Nama std::string;
NMTOKEN std::string;
NCNama std::string;
ID std::string;
IDREF std::string;
bahasa std::string;
anyURI std::string;

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

QNama xml_schema::qname;

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

tanggal xml_schema::tanggal;
dateTime xml_schema::date_time;
durasi xml_schema::durasi;
gDay xml_schema::gday;
gBulan xml_schema::gbulan;
gBulanHari xml_schema::gbulan_hari;
gTahun xml_schema::gyear;
gTahunBulan xml_schema::gtahun_bulan;
waktu xml_schema::waktu;
}

Aturan terakhir yang telah ditentukan sebelumnya memetakan apa pun yang tidak dipetakan oleh aturan sebelumnya ke membatalkan:

ruang nama .*
{
.* batal batal;
}

Saat Anda memberikan peta jenis Anda sendiri dengan --type-peta pilihan, mereka dievaluasi terlebih dahulu.
Ini memungkinkan Anda untuk mengesampingkan aturan yang telah ditentukan secara selektif.

REGEX DAN SHELL KUTIPAN


Saat memasukkan argumen ekspresi reguler di baris perintah shell, seringkali
perlu menggunakan kutipan (menyertakan argumen di " " atau ' ') untuk mencegah
shell dari menafsirkan karakter tertentu, misalnya, spasi sebagai pemisah argumen dan
$ sebagai ekspansi variabel.

Sayangnya sulit untuk mencapai ini dengan cara yang portabel di seluruh shell POSIX,
seperti yang ditemukan di GNU/Linux dan UNIX, dan shell Windows. Misalnya, jika Anda menggunakan " "
untuk mengutip Anda akan mendapatkan hasil yang salah dengan shell POSIX jika ekspresi Anda berisi $.
Cara standar untuk menangani ini pada sistem POSIX adalah dengan menggunakan ' ' sebagai gantinya.
Sayangnya, shell Windows tidak menghapus '' dari argumen saat diteruskan ke
aplikasi. Akibatnya Anda mungkin harus menggunakan ' ' untuk POSIX dan " " untuk Windows ($ tidak
diperlakukan sebagai karakter khusus pada Windows).

Atau, Anda dapat menyimpan opsi ekspresi reguler ke dalam file, satu opsi per baris,
dan gunakan file ini dengan --opsi-file pilihan. Dengan pendekatan ini Anda tidak perlu
khawatir tentang kutipan shell.

DIAGNOSTIK


Jika file input bukan definisi Skema XML W3C yang valid, xsdcxx akan mengeluarkan diagnostik
pesan ke STDERR dan keluar dengan kode keluar bukan nol.

Gunakan xsdcxx online menggunakan layanan onworks.net


Server & Workstation Gratis

Unduh aplikasi Windows & Linux

Perintah Linux

Ad