İngilizceFransızcaİspanyolca

Ad


OnWorks favicon'u

xsdcxx - Bulutta Çevrimiçi

Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden OnWorks ücretsiz barındırma sağlayıcısında xsdcxx çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen xsdcxx komutudur.

Program:

ADI


xsdcxx - C++ Derleyicisine W3C XML Şeması

SİNOPSİS


xsdcxx komuta [ seçenekleri ] dosya [ dosya ...]
xsdcxx yardım et [ komuta ]
xsdcxx versiyon

TANIM


xsdcxx W3C XML Şemasından kelime dağarcığına özgü, statik olarak yazılmış C++ eşlemesi oluşturur
tanımlar. Üretilecek özel haritalama, bir komuta. Her haritalamanın bir
eşlemeye özgü sayısı seçenekleri varsa, bundan sonra görünmelidir. komuta. Giriş
dosyalar W3C XML Şeması tanımları olmalıdır. Oluşturulan dosyaların tam kümesi,
seçilen eşleme ve seçeneklerde.

KOMUTLAR


cxx ağacı
C++/Ağaç eşlemesini oluşturun. Formdaki her girdi dosyası için ad.xsd the
aşağıdaki C++ dosyaları oluşturulur: ad.hxx (başlık dosyası), isim.ixx (satır içi dosya,
yalnızca oluşturulursa -- satır içi oluştur seçeneği belirtilir), ad.cxx (Kaynak
dosya) ve isim-fwd.hxx (yalnızca aşağıdaki durumlarda oluşturulan ileri bildirim dosyası
--generate-ileri seçeneği belirtilir).

cxx ayrıştırıcı
C++/Ayrıştırıcı eşlemesini oluşturun. Formdaki her girdi dosyası için ad.xsd the
aşağıdaki C++ dosyaları oluşturulur: isim-pskel.hxx (ayrıştırıcı iskelet başlık dosyası),
isim-pskel.ixx (ayrıştırıcı iskelet satır içi dosyası, yalnızca --oluşturmak-
inline seçenek belirtilir) ve isim-pskel.cxx (ayrıştırıcı iskelet kaynak dosyası). Eğer
the --generate-noop-impl or --generate-print-impl seçeneği belirtilirse,
aşağıdaki ek örnek uygulama dosyaları oluşturulur: isim-pimpl.hxx
(ayrıştırıcı uygulama başlık dosyası) ve isim-pimpl.cxx (ayrıştırıcı uygulaması
Kaynak dosyası). Eğer --generate-test sürücüsü seçeneği belirtilirse, ek
isim-sürücü.cxx test sürücüsü dosyası oluşturulur.

yardım et Kullanım bilgilerini yazdırın ve çıkın. Kullanmak

xsdcxx yardım et komuta

komuta özel yardım için.

versiyon
Sürümü yazdırın ve çıkın.

SEÇENEKLER


Komuta özel seçenekleri, varsa, karşılık gelenden sonra görünmelidir komuta.

ortak seçenekleri
--std versiyon
Oluşturulan kodun uyması gereken C++ standardını belirtin. Geçerli değerler
vardır c++98 (varsayılan) ve c++11.

C++ standardı, üretilen kodun tartışılan çeşitli yönlerini etkiler.
çeşitli haritalamaya özgü belgelerde daha ayrıntılı olarak. Genel olarak, C++ 11 olduğunda
seçildiğinde, oluşturulan kod hareket semantiğine dayanır ve kullanır standart::benzersiz_ptr
kullanımdan kaldırılmış yerine standart::auto_ptr.

C++11 modu seçildiğinde normalde herhangi bir ekstra adım gerçekleştirmeniz gerekmez.
gerekirse, C++ derleyicinizde C++ 11'i etkinleştirmek dışında. XSDCXX derleyicisi
gerekli makro tanımlarını otomatik olarak oluşturulan başlık dosyalarına ekleyin.
yalnızca başlık XSDCXX çalışma zamanı kitaplığını değiştirir (libxsd) C++11 moduna.
Ancak, XSDCXX çalışma zamanı başlıklarından herhangi birini doğrudan
uygulama (normalde yalnızca oluşturulan başlıkları eklersiniz), o zaman ihtiyacınız olacak
tanımlamak için XSD_CXX11 tüm projeniz için makro.

--char tipi tip
Sağlanan karakteri kullanarak kod oluşturun tip varsayılan yerine tank. Geçerli
değerler tank ve wchar_t'den.

--char kodlaması enc
Oluşturulan kodda kullanılması gereken karakter kodlamasını belirtin. Geçerli
değerleri tank karakter türü utf8 (Varsayılan) iso8859-1, lcp (Xerces-C++
yerel kod sayfası) ve görenek. eğer geçersen görenek değer olarak o zaman ihtiyacınız olacak
başlangıçta kodlamanız için kod dönüştürücü uygulama başlığını eklemek için
oluşturulan başlık dosyalarının (bkz. --hxx-prolog seçenek).

Için wchar_t'den karakter türü tek geçerli değerdir Oto ve kodlama
bağlı olarak UTF-16 ve UTF-32/UCS-4 arasında otomatik olarak seçilir. wchar_t'den
tip boyutu.

--çıktı-dir dir
Oluşturulan dosyaları şuraya yaz: dir geçerli dizin yerine.

-- satır içi oluştur
Satır içi basit işlevler oluşturun. Bu seçenek, satır içi dosyanın oluşturulmasını tetikler.

--generate-xml-şeması
Derlenmekte olan şema XML Şemasını tanımlıyormuş gibi bir C++ başlık dosyası oluşturun
ad alanı. C++/Ağaç eşlemesi için, ortaya çıkan dosya tanımları içerecektir.
tüm XML Şeması yerleşik türleri için. C++/Ayrıştırıcı eşlemesi için elde edilen dosya
tüm ayrıştırıcı iskeletleri ve uygulamaları için tanımları içerecektir
XML Şeması yerleşik türlerine karşılık gelir.

Derleyiciye sağlanan şema dosyasının mevcut olması gerekmez ve yalnızca türetme için kullanılır.
ortaya çıkan başlık dosyasının adı. Kullan --extern-xml-şeması için seçenek
bu dosyayı diğer şemalar için oluşturulan dosyalara dahil edin.

--extern-xml-şeması dosya
Şundan türetilen bir başlık dosyası ekleyin dosya XML Şemasını oluşturmak yerine
ad alanı eşlemesi satır içi. Sağlanan dosyanın mevcut olması gerekmez ve yalnızca
dahil edilen başlık dosyasının adını türet. Kullan --generate-xml-şeması seçenek
Bu başlık dosyasını oluşturmak için.

--namespace-haritası xns=cns
Eşleme XML Şeması ad alanı xns C++ ad alanına cns. belirtmek için bu seçeneği tekrarlayın.
birden fazla XML Şeması ad alanı için eşleme. Örneğin, aşağıdaki seçenek:

--namespace-haritası http://example.com/foo/bar=foo::çubuk

haritasını çıkaracak http://example.com/foo/bar XML Şeması ad alanı foo::bar C + +
ad.

--namespace-regex regex
Ekle regex XML Şeması ad alanını çevirmek için kullanılan normal ifadeler listesine
adları C++ ad alanı adlarına. regex şeklinde bir Perl benzeri düzenli ifadedir
/model/değiştirme/. Bunun yerine herhangi bir karakter sınırlayıcı olarak kullanılabilir. /.
içinde sınırlayıcı karakterden kaçış model or değiştirme desteklenmiyor.

Tüm normal ifadeler, en son belirtilenlerle bir yığına itilir.
ifadesi ilk olarak kabul edilir. Başarılı olan ilk eşleşme kullanılır. Düzenli
ifadeler, formdaki bir dizeye uygulanır

Dosya ad

Örneğin, dosyanız varsa merhaba.xsd ad alanı ile http://example.com/hello ve
sen koş xsd bu dosyada, söz konusu dize şöyle olacaktır:

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

Yerleşik XML Şeması ad alanı için dize:

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

Eşleşene kadar her normal ifade için aşağıdaki üç adım gerçekleştirilir:
bulunan:

1. İfade uygulanır ve sonuç boşsa bir sonraki ifade
düşündü.

2. Herşey / ile değiştirildi ::.

3. Sonuç, geçerli bir C++ kapsam adı olarak doğrulanır (örn. foo::bar). Eğer bu
test başarılı olursa, sonuç bir C++ ad alanı adı olarak kullanılır.

Örnek olarak, aşağıdaki ifade, formdaki XML Şeması ad alanlarını eşler.
http://example.com/foo/bar formdaki C++ ad alanlarına foo::bar:

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

Ayrıca aşağıdaki REGEX VE SHELL QUOTING bölümüne bakın.

--namespace-regex-izleme
ile belirtilen normal ifadeleri uygulama sürecini takip edin. --ad alanı-
regex seçenek. Normal ifadelerinizin neden işe yaramadığını öğrenmek için bu seçeneği kullanın.
ne yapmalarını bekliyordun.

--ayrılmış-isim n[=r]
ad ekle n tanımlayıcı olarak kullanılmaması gereken isimler listesine. İsim
isteğe bağlı olarak takip edilebilir = ve yedek isim r bu kullanılmalı
Bunun yerine. Tüm C++ anahtar sözcükleri bu listede zaten var.

--parantez içinde-include
Oluşturulan metinlerde tırnak işaretleri ("") yerine açılı ayraçlar (<>) kullanın #Dahil etmek direktifler.

--include-önek önek
Ekle önek oluşturulan #Dahil etmek yönerge yolları.

Örneğin, şemanızda aşağıdaki içe aktarma öğesi varsa

<içe aktar ad alanı="..." schemaLocation="base.xsd"/>

ve bu parçayı derledi --include-önek şemalar/, ardından dahil
oluşturulan koddaki yönerge şöyle olacaktır:

#Dahil etmek "şemalar/base.hxx"

--include-regex regex
Ekle regex dönüştürmek için kullanılan normal ifadeler listesine #Dahil etmek Direktifler
yolları. regex şeklinde bir Perl benzeri düzenli ifadedir /model/değiştirme/.
Bunun yerine herhangi bir karakter sınırlayıcı olarak kullanılabilir. /. Sınırlayıcıdan kaçış
karakter model or değiştirme desteklenmiyor.

Tüm normal ifadeler, en son belirtilenlerle bir yığına itilir.
ifadesi ilk olarak kabul edilir. Başarılı olan ilk eşleşme kullanılır.

Örnek olarak, aşağıdaki ifade, formdaki yolları dönüştürür
şemalar/foo/bar formdaki yollara oluşturulan/foo/bar:

%şemalar/(.+)%oluşturuldu/$1%

Ayrıca aşağıdaki REGEX VE SHELL QUOTING bölümüne bakın.

--include-regex-trace
ile belirtilen normal ifadeleri uygulama sürecini takip edin. --Dahil etmek-
regex seçenek. Normal ifadelerinizin neden işe yaramadığını öğrenmek için bu seçeneği kullanın.
ne yapmalarını bekliyordun.

--guard-ön eki önek
Ekle önek oluşturulan başlık ekleme korumalarına. Önek yukarıya dönüştürülür
bir önişlemci makro adında geçersiz olan büyük/küçük harf ve karakterler ile değiştirilir
alt çizgi. Bu seçenek belirtilmemişse, girişin dizin kısmı
şema dosyası önek olarak kullanılır.

--hxx-soneki sonek
Sağlananları kullanın sonek varsayılan yerine .hxx adını inşa etmek için
başlık dosyası. Bu son ekin başlık dosyalarının adlarını oluşturmak için de kullanıldığını unutmayın.
dahil edilen/içe aktarılan şemalara karşılık gelir.

--ixx-soneki sonek
Sağlananları kullanın sonek varsayılan yerine .ixx adını inşa etmek için
satır içi dosya.

--cxx-soneki sonek
Sağlananları kullanın sonek varsayılan yerine .cxx adını inşa etmek için
Kaynak dosyası.

--fwd-soneki sonek
Sağlananları kullanın sonek varsayılan yerine -fwd.hxx adını inşa etmek
ileri bildirim dosyası.

--hxx-regex regex
Başlık dosyasının adını oluşturmak için sağlanan ifadeyi kullanın. regex bir
Formda Perl benzeri düzenli ifade /model/değiştirme/. Bunu unutmayın
ifade ayrıca, ilgili başlık dosyalarının adlarını oluşturmak için kullanılır.
dahil edilen/içe aktarılan şemalar. Ayrıca aşağıdaki REGEX VE SHELL QUOTING bölümüne bakın.

--ixx-regex regex
Satır içi dosyanın adını oluşturmak için sağlanan ifadeyi kullanın. regex bir
Formda Perl benzeri düzenli ifade /model/değiştirme/. REGEX'e de bakın
VE SHELL QIOTING bölümü aşağıdadır.

--cxx-regex regex
Kaynak dosyanın adını oluşturmak için sağlanan ifadeyi kullanın. regex bir
Formda Perl benzeri düzenli ifade /model/değiştirme/. REGEX'e de bakın
VE SHELL QIOTING bölümü aşağıdadır.

--fwd-regex regex
İleri bildirim dosyasının adını oluşturmak için sağlanan ifadeyi kullanın.
regex şeklinde bir Perl benzeri düzenli ifadedir /model/değiştirme/. Ayrıca bakınız
Aşağıdaki REGEX VE SHELL ALIŞVERİŞ bölümü.

--hxx-prolog metin
Ekle metin başlık dosyasının başında.

--ixx-prolog metin
Ekle metin satır içi dosyanın başında.

--cxx-prolog metin
Ekle metin kaynak dosyanın başında.

--fwd-prolog metin
Ekle metin ileriye dönük beyan dosyasının başında.

--prolog metin
Ekle metin dosyası olmayan, oluşturulan her dosyanın başında
özel önsöz.

--hxx-sonsöz metin
Ekle metin başlık dosyasının sonunda.

--ixx-sonsöz metin
Ekle metin satır içi dosyanın sonunda.

--cxx-sonsöz metin
Ekle metin kaynak dosyanın sonunda.

--fwd-sonsöz metin
Ekle metin ileri bildirim dosyasının sonunda.

--sonsöz metin
Ekle metin dosyaya özgü olmayan her oluşturulan dosyanın sonunda
sonsöz.

--hxx-prologue-dosyası dosya
İçeriğini girin dosya başlık dosyasının başında.

--ixx-prologue-dosyası dosya
İçeriğini girin dosya satır içi dosyanın başında.

--cxx-prologue-dosyası dosya
İçeriğini girin dosya kaynak dosyanın başında.

--fwd-prologue-dosyası dosya
İçeriğini girin dosya ileriye dönük beyan dosyasının başında.

--prologue-dosyası dosya
İçeriğini girin dosya için oluşturulan her dosyanın başında
dosyaya özel bir giriş dosyası yok.

--hxx-sonsöz-dosyası dosya
İçeriğini girin dosya başlık dosyasının sonunda.

--ixx-epilog-dosyası dosya
İçeriğini girin dosya satır içi dosyanın sonunda.

--cxx-epilog-dosyası dosya
İçeriğini girin dosya kaynak dosyanın sonunda.

--fwd-sonsöz-dosyası dosya
İçeriğini girin dosya ileri bildirim dosyasının sonunda.

--epilog-dosyası dosya
İçeriğini girin dosya için oluşturulan her dosyanın sonunda
dosyaya özel epilog dosyası yok.

--ihracat-sembol sembol
Ekle sembol DLL dışa aktarma/içe aktarma kontrol ifadelerinin olduğu yerlerde
(__declspec(dllexport/dllimport)) gereklidir.

--export-xml-şeması
Sağlanan dışa aktarma sembolünü kullanarak XML Şeması ad alanındaki türleri dışa aktarma/içe aktarma
ile --ihracat-sembol seçeneği. XSD_NO_EXPORT makro bunu atlamak için kullanılabilir
C++ derlemesi sırasında aynı kodu kullanmak isterseniz yararlı olabilecek kod
birden fazla platformda oluşturulan kod.

--export-haritaları
Bu oluşturulan kodun içine bir Win32 DLL dosyasından polimorfizm desteği eşlemelerini dışa aktarın.
yerleştirildi. Bu, tür hiyerarşiniz birkaç DLL'ye bölündüğünde gereklidir.
aksi takdirde her DLL kendi harita setine sahip olacaktır. Bu durumda
temel türleri ve/veya ikame grubunu içeren DLL için oluşturulan kod
kafalar bu seçenekle ve diğer tüm DLL'ler için oluşturulan kodla derlenmelidir.
ile derlenmelidir --import-haritalar. Bu seçenek yalnızca şunlarla birlikte geçerlidir:
--generate-polimorfik. XSD_NO_EXPORT makro bu kodu atlamak için kullanılabilir
C++ derlemesi sırasında, aynısını kullanmak isterseniz yararlı olabilir
birden fazla platformda oluşturulan kod.

--import-haritalar
Polimorfizm destek eşlemelerini bir Win32 DLL dosyasına veya bu DLL dosyasının yürütüldüğü yürütülebilir dosyaya içe aktarın.
oluşturulan kod bağlanır. Bkz. --export-haritaları ayrıntılar için seçenek belgeleri.
Bu seçenekler yalnızca şunlarla birlikte geçerlidir: --generate-polimorfik. XSD_NO_EXPORT
makrosu, C++ derlemesi sırasında bu kodu atlamak için kullanılabilir;
aynı oluşturulan kodu birden çok platformda kullanmak istiyorsunuz.

--generate-dep
Oluşturmak yapmak bağımlılık bilgisi. Bu seçenek, aşağıdakilerin oluşturulmasını tetikler. .d
ana şema dosyasında oluşturulan dosyaların bağımlılıklarını içeren dosya
geçişli olarak içerdiği/içe aktardığı tüm şema dosyalarının yanı sıra. Bu
bağımlılık dosyası daha sonra normalde ana dosyaya dahil edilir makefile uygulamak
otomatik bağımlılık izleme.

Ayrıca, dosya başına otomatik bağımlılık oluşturmanın desteklenmediğini unutmayın.
tip modu (--dosya başına tür). Bu durumda, oluşturulan tüm dosyalar üretilir
tek bir derleyici çağrısı ile ve tüm şemalara bağlıdır. Sonuç olarak,
böyle bir bağımlılığı manuel olarak kurmak daha kolay, belki de
--dosya listesi* seçenekleri.

--yalnızca-dep-oluştur
Oluşturmak yapmak sadece bağımlılık bilgisi.

--dep-sahte
Dahil edilen/içe aktarılan şema dosyaları için sahte hedefler oluşturun ve her birinin
hiçbir şeyde. Böyle kukla kurallar işe yarıyor yapmak kaldırılmasından kaynaklanan hatalar
Bağımlılık dosyasını da eşleşecek şekilde güncellemeden şema dosyaları.

--dep-hedef hedef
Bağımlılık kuralının hedefini değiştirin. Varsayılan olarak, oluşturulan tüm öğeleri içerir.
C++ dosyalarının yanı sıra herhangi bir dizin öneki olmadan bağımlılık dosyasının kendisi. Eğer
birden fazla hedefe ihtiyacınız varsa, bunları tek bir boşluk olarak belirleyebilirsiniz.
ayrılmış argüman veya bu seçeneği birden çok kez tekrarlayabilirsiniz.

--dep-soneki sonek
Sağlananları kullanın sonek varsayılan yerine .d adını inşa etmek için
bağımlılık dosyası

--dep-regex regex
Bağımlılık dosyasının adını oluşturmak için sağlanan ifadeyi kullanın. regex is
formda Perl benzeri bir düzenli ifade /model/değiştirme/. Ayrıca bakınız
Aşağıdaki REGEX VE SHELL TEKLİF bölümü.

--devre dışı-uyarı uyarmak
Kimlikle yazdırma uyarısını devre dışı bırak uyarmak. Eğer herşey uyarı kimliği için belirtilirse
tüm uyarılar devre dışı bırakılır.

--seçenekler-dosyası dosya
Ek seçenekleri şuradan okuyun: dosya. Her seçenek ayrı bir satırda görünmelidir
isteğe bağlı olarak boşluk ve bir seçenek değeri gelir. Boş satırlar ve başlayan satırlar
ile # göz ardı edilir. Seçenek değerleri çift (") veya yalnız (')
Baştaki ve sondaki boşlukları korumak ve boş belirtmek için tırnak işaretleri
değerler. Değerin kendisi sondaki veya önde gelen tırnak işaretleri içeriyorsa, onu bir
örneğin ekstra tırnak çifti '"x"'. Başsız ve sonda olmayan alıntılar
opsiyon değerinin bir parçası olarak yorumlanır.

Bir dosyada seçenekler sağlamanın anlamı, aynı seçenekleri sağlamaya eşdeğerdir.
olduğu noktada komut satırında aynı sırada seçenekler kümesi
--seçenekler-dosyası kabuk kaçması ve alıntı yapılması dışında seçenek belirtilir.
gerekli değil. Birden fazla seçenek dosyası belirtmek için bu seçeneği tekrarlayabilirsiniz.

--show-sloc
Oluşturulan fiziksel kaynak kod satırlarının (SLOC) sayısını gösterin.

--sloc-sınırı num
Oluşturulan fiziksel kaynak kod satırlarının (SLOC) sayısının,
aşmak num.

--özel-lisans
Oluşturulan kodun, bunun yerine tescilli bir lisans altında lisanslandığını belirtin.
GPL.

--özel-literaller dosya
C++ değişmez eşlemelerine özel XML dizesi yükleyin dosya. Bu mekanizma olabilir
özel bir karakter kodlaması ve dosyanızdaki bazı dizeleri kullanıyorsanız kullanışlıdır.
şemalar, örneğin eleman/öznitelik adları veya numaralandırma değerleri,
ASCII karakterleri. Bu durumda, C++ için özel bir eşleme sağlamanız gerekecektir.
bu tür dizeler için değişmez değerler. Bu dosyanın formatı şurada belirtilmiştir: özel-
değişmezler.xsd Belgeler dizininde bulunabilen XML Şema dosyası.

--koru-anonim
Anonim türleri koruyun. Varsayılan olarak anonim türler otomatik olarak şu şekilde adlandırılır:
çevreleyen öğelerden/niteliklerden türetilen isimler. Çünkü eşlemeler uygulandı
bu derleyici tarafından tüm türlerin adlandırılması gerekir, bu seçenek yalnızca
şemalarınızın anonim türleri olmadığından emin olmak istersiniz.

--göster-anonim
Anonim türdeki öğeleri ve nitelikleri gösterin. Bu seçenek yalnızca
ile birlikte anlam --koru-anonim seçeneği.

--anonim-normal ifade regex
Ekle regex anonim için ad türetmek için kullanılan düzenli ifadeler listesine
çevreleyen niteliklerden/öğelerden türler. regex Perl benzeri bir düzenlidir
formdaki ifade /model/değiştirme/. Herhangi bir karakter olarak kullanılabilir
sınırlayıcı yerine /. içinde sınırlayıcı karakterden kaçış model or
değiştirme desteklenmiyor.

Tüm normal ifadeler, en son belirtilenlerle bir yığına itilir.
ifadesi ilk olarak kabul edilir. Başarılı olan ilk eşleşme kullanılır. Düzenli
ifadeler, formdaki bir dizeye uygulanır

Dosya ad xpath

Örneğin:

merhaba.xsd http://example.com/hello eleman

merhaba.xsd http://example.com/hello tip/eleman

Örnek olarak, aşağıdaki ifade tüm türetilmiş isimlerin ile başlamasını sağlar.
büyük harfler. Bu, adlandırma kuralınız tür gerektirdiğinde yararlı olabilir
büyük harflerle başlayan isimler:

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

Ayrıca aşağıdaki REGEX VE SHELL QUOTING bölümüne bakın.

--anonim-regex-trace
ile belirtilen normal ifadeleri uygulama sürecini takip edin. --anonim-
regex seçenek. Normal ifadelerinizin neden işe yaramadığını öğrenmek için bu seçeneği kullanın.
ne yapmalarını bekliyordun.

--konum haritası ol=nl
Orijinal şema konumunu eşleyin ol XML Şemasında belirtilen dahil veya
öğeleri yeni şema konumuna içe aktar nl. Birden fazla eşlemek için bu seçeneği tekrarlayın
şema konumu. Örneğin, aşağıdaki seçenek,
http://example.com/foo.xsd URL'si foo.xsd yerel dosya.

--konum haritası http://example.com/foo.xsd=foo.xsd

--konum-normal ifade regex
Ekle regex olan şema konumlarını eşlemek için kullanılan normal ifadeler listesine
XML Şemasında belirtilen öğeleri içerir veya içeri aktarır. regex Perl benzeridir
formda düzenli ifade /model/değiştirme/. Herhangi bir karakter olarak kullanılabilir
yerine sınırlayıcı /. içinde sınırlayıcı karakterden kaçış model or
değiştirme desteklenmiyor. Tüm normal ifadeler bir yığına itilir
ilk olarak kabul edilen son belirtilen ifade ile. Başarılı olan ilk maç
kullanıldı.

Örneğin, aşağıdaki ifade, formdaki URL konumlarını eşler.
http://example.com/foo/bar.xsd formdaki yerel dosyalara bar.xsd:

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

Ayrıca aşağıdaki REGEX VE SHELL QUOTING bölümüne bakın.

--konum-regex-izleme
ile belirtilen normal ifadeleri uygulama sürecini takip edin. --yer-
regex seçenek. Normal ifadelerinizin neden işe yaramadığını öğrenmek için bu seçeneği kullanın.
ne yapmalarını bekliyordun.

--dosya başına tür
XML Şemasında tanımlanan her tür için ayrı bir C++ dosyası kümesi oluşturun. Not
bu modda sadece kök şema(lar)ı derlemeniz yeterlidir ve kod
dahil edilen ve içe aktarılan tüm şemalar için oluşturulur. Bu derleme modu öncelikle
bazı şemalarınız ayrı ayrı derlenemediğinde veya döngüsel özelliklere sahip olmadığında kullanışlıdır.
tür mirasını içeren bağımlılıklar. Bu modla ilgili diğer seçenekler
şunlardır: --type-file-regex, --şema-dosya-regex, --fat tipi dosya, ve --dosya listesi.

--type-file-regex regex
Ekle regex tür adlarını dosyaya çevirmek için kullanılan normal ifadeler listesine
isimleri ne zaman --dosya başına tür seçeneği belirtilir. regex Perl benzeri bir düzenlidir
formdaki ifade /model/değiştirme/. Herhangi bir karakter olarak kullanılabilir
sınırlayıcı yerine /. içinde sınırlayıcı karakterden kaçış model or
değiştirme desteklenmiyor. Tüm normal ifadeler bir yığına itilir
ilk olarak kabul edilen son belirtilen ifade ile. Başarılı olan ilk maç
kullanıldı. Normal ifadeler, formdaki bir dizeye uygulanır

ad tür adı

Örneğin, aşağıdaki ifade haritaları türü foo içinde tanımlanan
http://example.com/bar dosya adına ad alanı bar foo:

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

Ayrıca aşağıdaki REGEX VE SHELL QUOTING bölümüne bakın.

--type-file-regex-trace
ile belirtilen normal ifadeleri uygulama sürecini takip edin. --tip-dosya-
regex seçenek. Normal ifadelerinizin neden işe yaramadığını öğrenmek için bu seçeneği kullanın.
ne yapmalarını bekliyordun.

--şema-dosya-regex regex
Ekle regex şema dosyası adlarını çevirmek için kullanılan normal ifadeler listesine
zaman --dosya başına tür seçeneği belirtilir. regex Perl benzeri bir düzenlidir
formdaki ifade /model/değiştirme/. Herhangi bir karakter olarak kullanılabilir
sınırlayıcı yerine /. içinde sınırlayıcı karakterden kaçış model or
değiştirme desteklenmiyor. Tüm normal ifadeler bir yığına itilir
ilk olarak kabul edilen son belirtilen ifade ile. Başarılı olan ilk maç
kullanıldı. Normal İfadeler, bir dosyanın mutlak dosya sistemi yoluna uygulanır.
şema dosyası ve varsa dizin bölümü de dahil olmak üzere sonuç türetmek için kullanılır.
the #Dahil etmek yönerge yolları ve ayrıca oluşturulan C++ dosya yolları. Bu seçenek,
ile birlikte --type-file-regex öncelikle oluşturulan dosyaları yerleştirmek için kullanışlıdır.
alt dizinler veya dosya adı çakışmalarını çözmek için.

Örneğin, aşağıdaki ifade şema dosyalarını şurada eşler: foo/1.0.0/
içindeki dosyalara alt dizin foo/ alt dizin. Sonuç olarak, #Dahil etmek
bu tür şemalar için yönerge yolları foo/schema.hxx form ve
oluşturulan C++ dosyaları foo/ alt dizin:

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

Ayrıca aşağıdaki REGEX VE SHELL QUOTING bölümüne bakın.

--schema-file-regex-trace
ile belirtilen normal ifadeleri uygulama sürecini takip edin. --şema dosyası-
regex seçenek. Normal ifadelerinizin neden işe yaramadığını öğrenmek için bu seçeneği kullanın.
ne yapmalarını bekliyordun.

--fat tipi dosya
Genel öğelere karşılık gelen kodu şema yerine tür dosyalarına oluşturun
dosyalar ne zaman --type-file-regex seçeneği belirtilir. Bu seçenek öncelikle
bağlantılı nesne kodunun miktarını en aza indirmeye çalışırken kullanışlıdır.
derlenmiş oluşturulan kodu statik (arşiv) bir kitaplığa paketleyerek yürütülebilir.

--dosya listesi dosya
Oluşturulan C++ dosyalarının bir listesini şu adrese yazın: dosya. Bu seçenek öncelikle şu durumlarda kullanışlıdır:
tür başına dosya derleme modu (--dosya başına tür) oluşturulan C++ listesini oluşturmak için
dosyalar, örneğin bir makefile parçası olarak.

--dosya-listesi-giriş bölümü metin
Ekle metin dosya listesinin başında. Bir kolaylık olarak, tüm oluşumlar
the \n karakter dizisi metin yeni hatlar ile değiştirilir. Bu seçenek,
örneğin, oluşturulan dosya listesini bir makefile değişkenine atamak için kullanılabilir.

--file-list-sonsöz metin
Ekle metin dosya listesinin sonunda. Bir kolaylık olarak, tüm oluşumlar
\n karakter dizisi metin yeni hatlar ile değiştirilir.

--file-list-selim metin
Dosya listesine yazılan dosya adlarını şununla sınırlayın: metin yeni hatlar yerine Olarak
kolaylık, tüm oluşumlar \n karakter dizisi metin ile değiştirildi
yeni satırlar.

cxx ağacı komuta seçenekleri
--generate-polimorfik
Polimorfizm farkında kod oluşturun. İkame kullanıyorsanız bu seçeneği belirtin
gruplar veya xsi:tür. Kullan --polimorfik-tip or --polimorfik-türü-hepsi için seçenek
hangi tür hiyerarşilerinin polimorfik olduğunu belirtin.

--polimorfik-tip tip
Onu belirt tip bir polimorfik tür hiyerarşisinin köküdür. derleyici
genellikle ikameye dayalı olarak hangi türlerin polimorfik olduğunu otomatik olarak belirler
grup açıklamaları Ancak, kullanmıyorsanız bu seçeneği kullanmanız gerekebilir.
ikame grupları veya ikame grupları başka bir şemada tanımlanmışsa. Sen
başvuruda bulunan her şema dosyasını derlerken bu seçeneği belirtmeniz gerekir. tip.
The tip argüman, isteğe bağlı olarak nitelenebilen bir XML Şeması türü adıdır.
içinde bir ad alanı ad#isim Form.

--polimorfik-türü-hepsi
Tüm türlerin polimorfik olarak ele alınması gerektiğini belirtin.

--polimorfik-plaka num
Oluşturulan kodun kaydetmesi gereken polimorfik harita plakasını belirtin. Bu
işlevsellik, öncelikle, aşağıdakileri tanımlayan birden çok şemayı ayırmak için yararlıdır.
aynı polimorfik tipler.

--sıralı-tür tip
Bu öğe sırasını belirtin tip önemlidir. Bir örnek bir karmaşık olurdu
XML'deki öğe sırasının sahip olduğu bir içerik modeli olarak sınırsız seçenekli yazın
uygulamaya özel anlambilim. Sıralı türler için derleyici özel bir
kapsayıcı veri üyesi ve karşılık gelen bir dizi erişimci ve değiştirici
öğelerin sırasını ve karışık içerik için metnin sırasını yakalamak için kullanılır.

The tip argüman, isteğe bağlı olarak nitelenebilen bir XML Şeması türü adıdır.
içinde bir ad alanı ad#isim form. belirtmeniz gerekeceğini de unutmayın.
türetilmiş diğer sıralı türlere sahip her şema dosyasını derlerken bu seçenek
bu türden.

--sıralı-tür-türetilmiş
Sıralı tabanlardan türetilen türleri de sıralandığı gibi otomatik olarak ele alın. Bu
tüm içeriği yineleyebilmek istiyorsanız öncelikle yararlıdır
içerik sırası kapsayıcısını kullanarak.

--düzenli-tip-karışık
Karma içerikli karmaşık türleri sıralandığı gibi otomatik olarak işleyin.

--sıralı-tür-hepsi
Tüm türlerde öğe sırasının önemli olduğunu belirtin.

--sipariş-konteyner tip
İçerik için kapsayıcı olarak kullanılması gereken özel bir sınıf şablonu belirtin
varsayılan yerine sıralı türlerde sırala standart::vektör. Görmek --sıralı-tür için
sipariş türü hakkında daha fazla bilgi. Bu seçenek, öncelikle ihtiyacınız olduğunda kullanışlıdır.
içerik sırası kapsayıcısında, örneğin öğeye göre daha karmaşık aramalar gerçekleştirin
İD. Bu durumda Boost multi-index gibi bir kapsayıcı daha uygun olabilir. Not
özel bir kap kullanıyorsanız, büyük olasılıkla şunları da eklemeniz gerekeceğini
kullanılarak ilgili başlıklar --hxx-prolog* seçenekleri.

--generate-seri hale getirme
Serileştirme işlevleri oluşturun. Serileştirme işlevleri nesne modelini dönüştürür
XML'e geri dön.

--generate-ostream
ostream ekleme operatörleri oluştur (operatör<) oluşturulan türler için. Bu izin verir
hata ayıklama veya günlüğe kaydetme için bir parçayı veya tüm nesne modelini kolayca yazdırmak için.

--doxygen üret
Doxygen tarafından çıkarılmaya uygun dokümantasyon yorumları oluşturun
dokümantasyon sistemi. Ek açıklamalardan alınan belgeler, aşağıdaki durumlarda yorumlara eklenir:
şemada mevcut.

--generate-karşılaştırma
Karşılaştırma operatörleri oluştur (operatör== ve operatör!=) karmaşık tipler için.
Karşılaştırma üye bazında yapılır.

--varsayılan-ctor oluştur
Gerekli üyelere sahip türler için bile varsayılan kurucular oluşturun. Gerekli
böyle bir kurucu kullanılarak oluşturulan bir örneğin üyeleri başlatılmaz ve
bunlara erişmek tanımsız davranışla sonuçlanır.

--temelden-üret
Tümü tarafından takip edilen bir temel türün örneğini bekleyen yapıcılar oluşturun
gerekli üyeler.

--bastırma-ataması
Karmaşık türler için kopya atama operatörlerinin oluşturulmasını engelleyin. Eğer bu
seçeneği belirtilirse, bu türler için kopya atama operatörleri bildirilir.
özel ve uygulanmadı.

--oluştur-ayır
Gerekli öğeler ve nitelikler için ayırma işlevleri oluşturun. Fonksiyonları ayır
isteğe bağlı ve sıralı kardinaliteler için ilgili kaplar tarafından sağlanır.
Bu işlevler, örneğin, nesne modelindeki alt ağaçları taşımanıza izin verir.
ya aynı ağaç içinde ya da farklı ağaçlar arasında.

--generate-joker karakter
XML için ayrıştırma ve serileştirme kodunun yanı sıra erişimciler ve değiştiriciler oluşturun
Şema joker karakterleri (herhangi ve herhangi bir Öznitelik). Joker karakterlerle eşleşen XML içeriği
DOM parçaları olarak sunulur. Xerces-C++ çalışma zamanını başlatmanız gerektiğini unutmayın.
Bu seçeneği kullanıyorsanız.

--herhangi bir tür oluştur
XML Şemasının içeriğini ayıklayın ve saklayın her hangi bir tür DOM parçası olarak yazın. Not
bu seçeneği kullanıyorsanız Xerces-C++ çalışma zamanını başlatmanız gerekir.

--oluşturma ekleme os
için veri temsili akış ekleme operatörleri oluşturun. os çıkış akışı
tip. Birden fazla akış türü belirtmek için bu seçeneği tekrarlayın. ACE CDR akışı
(ACE_ÇıktıCDR) ve RPC XDR, derleyici tarafından tanınır ve gerekli
#Dahil etmek yönergeler otomatik olarak oluşturulur. Özel akış türleri için şunu kullanın:
--hxx-prolog* gerekli bildirimleri sağlamak için seçenekler.

--generate-çıkarma is
için veri temsili akış çıkarma oluşturucuları oluşturun. is giriş akışı
tip. Birden fazla akış türü belirtmek için bu seçeneği tekrarlayın. ACE CDR akışı
(ACE_GirişCDR) ve RPC XDR, derleyici tarafından tanınır ve gerekli
#Dahil etmek yönergeler otomatik olarak oluşturulur. Özel akış türleri için şunu kullanın:
--hxx-prolog* gerekli bildirimleri sağlamak için seçenekler.

--generate-ileri
Mevcut türler için ileri bildirimlerle ayrı bir başlık dosyası oluşturun.
oluşturuldu.

--bastırma-ayrıştırma
Ayrıştırma işlevlerinin ve oluşturucularının oluşturulmasını bastırın. Bu seçeneği kullan
XML'den ayrıştırma yaparken oluşturulan kod boyutunu azaltmak için gerekli değildir.

--generate-eleman-türü
Kök öğeler için ayrıştırma ve serileştirme işlevleri yerine türler oluşturun.
Bu, öncelikle aynı kök tipine sahip nesne modellerini ayırt etmek için kullanışlıdır, ancak
farklı kök öğelerle.

--oluştur-öğe-haritası
Tek tip ayrıştırmaya ve serileştirmeye izin veren bir kök eleman haritası oluşturun.
birden fazla kök öğe. Bu seçenek yalnızca şunlarla birlikte geçerlidir: --öğe oluştur-
tip.

--generate-intellisense
Visual Studio 2005'te (8.0) IntelliSense hataları için geçici çözümler oluşturun. Bu ne zaman
seçeneği kullanıldığında, elde edilen kod biraz daha ayrıntılıdır. IntelliSense
Visual Studio 2008 (9.0) ve sonraki sürümleri, bu geçici çözümleri gerektirmez. İçin destek
Visual Studio 2003'teki (7.1) IntelliSense bu seçenekle geliştirildi, ancak yine de
eksik.

--omit-default-öznitelikleri
Serileştirilmiş XML belgelerinden varsayılan ve sabit değerlere sahip öznitelikleri atlayın.

--tür adlandırma stil
Oluşturulan kodda kullanılması gereken tür adlandırma kuralını belirtin. Geçerli
stiller knr (Varsayılan) ucc, ve Java. Aşağıdaki ADLANDIRMA SÖZLEŞMESİ bölümüne bakın
daha fazla bilgi için.

--fonksiyon-adlandırma stil
Oluşturulan kodda kullanılması gereken işlev adlandırma kuralını belirtin.
Geçerli stiller knr (Varsayılan) lCC, ve Java. ADLANDIRMA SÖZLEŞMESİ bölümüne bakın
Daha fazla bilgi için aşağıda.

--type-regex regex
Ekle regex XML Şema türünü çevirmek için kullanılan normal ifadeler listesine
adları C++ tipi adlara. Daha fazla bilgi için aşağıdaki ADLANDIRMA SÖZLEŞMESİ bölümüne bakın
bilgiler.

--erişimci-regex regex
Ekle regex XML Şema adlarını çevirmek için kullanılan normal ifadeler listesine
C++ erişimci işlev adlarına öğeler/öznitelikler. ADLANDIRMA SÖZLEŞMESİ'ne bakın
Daha fazla bilgi için aşağıdaki bölüm.

--tek erişimci-regex regex
Ekle regex XML Şema adlarını çevirmek için kullanılan normal ifadeler listesine
kardinalitesi birden C++'a kadar olan erişimci işlev adlarına sahip öğeler/öznitelikler. Bkz.
Daha fazla bilgi için aşağıdaki ADLANDIRMA SÖZLEŞMESİ bölümü.

--opt-erişimci-regex regex
Ekle regex XML Şema adlarını çevirmek için kullanılan normal ifadeler listesine
C++ erişimci işlev adlarına isteğe bağlı kardinaliteye sahip öğeler/öznitelikler. Görmek
Daha fazla bilgi için aşağıdaki ADLANDIRMA SÖZLEŞMESİ bölümüne bakın.

--seq-erişimci-regex regex
Ekle regex XML Şema adlarını çevirmek için kullanılan normal ifadeler listesine
C++ erişimci işlev adlarına kardinalite dizisine sahip öğeler/öznitelikler. Görmek
Daha fazla bilgi için aşağıdaki ADLANDIRMA SÖZLEŞMESİ bölümüne bakın.

--değiştirici-regex regex
Ekle regex XML Şema adlarını çevirmek için kullanılan normal ifadeler listesine
C++ değiştirici işlev adlarına öğeler/öznitelikler. ADLANDIRMA SÖZLEŞMESİ'ne bakın
Daha fazla bilgi için aşağıdaki bölüm.

--bir-değiştirici-regex regex
Ekle regex XML Şema adlarını çevirmek için kullanılan normal ifadeler listesine
kardinalite bir ila C++ değiştirici işlev adlarına sahip öğeler/öznitelikler. Bkz.
Daha fazla bilgi için aşağıdaki ADLANDIRMA SÖZLEŞMESİ bölümü.

--opt-değiştirici-regex regex
Ekle regex XML Şema adlarını çevirmek için kullanılan normal ifadeler listesine
C++ değiştirici işlev adlarına isteğe bağlı kardinaliteye sahip öğeler/öznitelikler. Görmek
Daha fazla bilgi için aşağıdaki ADLANDIRMA SÖZLEŞMESİ bölümüne bakın.

--seq-değiştirici-regex regex
Ekle regex XML Şema adlarını çevirmek için kullanılan normal ifadeler listesine
C++ değiştirici işlev adlarına kardinalite dizisine sahip öğeler/nitelikler. Görmek
Daha fazla bilgi için aşağıdaki ADLANDIRMA SÖZLEŞMESİ bölümüne bakın.

--parser-regex regex
Ekle regex XML Şema öğesini çevirmek için kullanılan normal ifadeler listesine
adları C++ ayrıştırma işlevi adlarına. için aşağıdaki ADLANDIRMA SÖZLEŞMESİ bölümüne bakın.
daha fazla bilgi.

--serileştirici-regex regex
Ekle regex XML Şema öğesini çevirmek için kullanılan normal ifadeler listesine
adları C++ serileştirme işlevi adlarına. Aşağıdaki ADLANDIRMA SÖZLEŞMESİ bölümüne bakın
daha fazla bilgi için.

--const-regex regex
Ekle regex XML Şemasından türetilenleri çevirmek için kullanılan normal ifadeler listesine
C++ sabit adlarına adlar. Daha fazla bilgi için aşağıdaki ADLANDIRMA SÖZLEŞMESİ bölümüne bakın
bilgiler.

--enumerator-regex regex
Ekle regex XML Şemasını çevirmek için kullanılan normal ifadeler listesine
C++ numaralandırıcı adlarına numaralandırma değerleri. Aşağıdaki ADLANDIRMA SÖZLEŞMESİ bölümüne bakın
daha fazla bilgi için.

--element-type-regex regex
Ekle regex XML Şema öğesini çevirmek için kullanılan normal ifadeler listesine
C++ öğe türü adlarına adlar. Daha fazla bilgi için aşağıdaki ADLANDIRMA SÖZLEŞMESİ bölümüne bakın
bilgiler.

--name-regex-izleme
Adla belirtilen normal ifadeleri uygulama sürecini takip edin
dönüştürme seçenekleri. Normal ifadelerinizin neden olduğunu öğrenmek için bu seçeneği kullanın.
yapmalarını beklediğin şeyi yapma.

--root-eleman-ilk
Yalnızca ilk global öğeyi bir belge kökü olarak ele alın. Varsayılan olarak tüm küresel
öğeler belge kökleri olarak kabul edilir.

--root-eleman-son
Yalnızca son global öğeyi bir belge kökü olarak ele alın. Varsayılan olarak tüm küresel
öğeler belge kökleri olarak kabul edilir.

--root-eleman-tümü
Tüm global öğeleri belge kökleri olarak ele alın. Bu varsayılan davranıştır. İle
bu seçeneği açıkça belirterek, aşağıdaki durumlarda verilen uyarıyı bastırabilirsiniz.
birden fazla global eleman tanımlanmıştır.

--root-element-yok
Herhangi bir global öğeyi belge kökleri olarak kabul etmeyin. Varsayılan olarak tüm global öğeler
belge kökleri olarak kabul edilir.

--root-eleman eleman
Sadece tedavi eleman belge kökü olarak. Birden fazla belirtmek için bu seçeneği tekrarlayın
kök öğe.

--özel tip harita
Oluşturulan sınıf yerine özel bir C++ türü kullanın. bu harita argüman şurada
Airdrop Formu isim[=tip[/baz]], nerede isim XML Şemasında tanımlandığı gibi bir tür adıdır ve
tip bunun yerine kullanılması gereken bir C++ türü adıdır. Eğer tip mevcut değil veya
boş ise özel türün aynı ada sahip olduğu ve
oluşturulan sınıfla aynı ad alanı. Eğer baz belirtilir, o zaman
oluşturulan sınıf hala bu adla oluşturulur.

--özel-tip-regex regex
Oluşturulan sınıflar yerine özel C++ türlerini kullanın. bu regex argüman şurada
Airdrop Formu /isim-pat/[tip-alt/[baz-alt/]], nerede isim-pat olacak bir regex kalıbıdır
XML Şemasında tanımlandığı gibi tür adlarıyla eşleştirilmelidir ve tip-alt bir C++ türüdür
bunun yerine kullanılması gereken ad ikamesi. Eğer tip-alt mevcut değil veya onun
ikame boş bir dizeyle sonuçlanır, ardından özel türün şuna sahip olduğu varsayılır:
aynı ad ve oluşturulan sınıfla aynı ad alanında tanımlanmalıdır.
If baz-alt mevcut ve ikamesi boş olmayan bir dizeyle sonuçlanır, ardından
oluşturulan sınıf hala oluşturulur, ancak bu ikamenin sonucu olarak
isim. Model ve ikameler Perl düzenli ifade biçimindedir. Görmek
ayrıca aşağıdaki REGEX VE SHELL QUOTING bölümü.

--parçalar num
Oluşturulan kaynak kodunu şuraya böl num parçalar. Bu, büyük çeviri yaparken kullanışlıdır,
monolitik şemalar ve bir C++ derleyicisi elde edilen kaynağı derleyemiyor
hemen kodlayın (genellikle yetersiz bellek nedeniyle).

--parça-soneki sonek
kullanım sonek varsayılan yerine '-' dosya adını bölümden ayırmak için
numarası.

cxx ayrıştırıcı komuta seçenekleri
--tür haritası harita dosyası
XML Şemasını C++ tipi eşleme bilgilerini şuradan okuyun: harita dosyası. için bu seçeneği tekrarlayın
birkaç tip harita belirtin. Tip haritaları görünüm sırasına göre değerlendirilir ve
ilk maç kullanılır. Varsayılan olarak, tüm kullanıcı tanımlı türler eşlenir geçersiz. Bakın
Daha fazla bilgi için aşağıdaki TİP HARİTASI bölümü.

--xml-ayrıştırıcı ayrıştırıcı
kullanım ayrıştırıcı temel alınan XML ayrıştırıcısı olarak. Geçerli değerler xerces Xerces-C++ için
(varsayılan) ve expat Expat için.

--oluşturma doğrulaması
Doğrulama kodu oluşturun. Doğrulama kodu ("mükemmel ayrıştırıcı") şunları sağlar:
örnek belgeler şemaya uygundur. Doğrulama kodu varsayılan olarak oluşturulur
seçilen temel XML ayrıştırıcısı doğrulayıcı olmadığında (expat).

--bastırma-doğrulama
Doğrulama kodunun oluşturulmasını bastırın. Doğrulama varsayılan olarak bastırılır
seçilen temel XML ayrıştırıcısı doğrularken (xerces).

--generate-polimorfik
Polimorfizm farkında kod oluşturun. İkame kullanıyorsanız bu seçeneği belirtin
gruplar veya xsi:tür.

--generate-noop-impl
Hiçbir şey yapmayan (işlemsiz) bir örnek ayrıştırıcı uygulaması oluşturun. bu
örnek uygulama daha sonra uygulamaya özel kodla doldurulabilir. Bir ... için
formdaki girdi dosyası ad.xsd bu seçenek iki neslin oluşmasını tetikler.
formdaki ek C++ dosyaları: isim-pimpl.hxx (ayrıştırıcı uygulama başlığı
dosya) ve isim-pimpl.cxx (ayrıştırıcı uygulama kaynak dosyası).

--generate-print-impl
XML verilerini STDOUT'a yazdıran örnek bir ayrıştırıcı uygulaması oluşturun. Bir ... için
formdaki girdi dosyası ad.xsd bu seçenek iki neslin oluşmasını tetikler.
formdaki ek C++ dosyaları: isim-pimpl.hxx (ayrıştırıcı uygulama başlığı
dosya) ve isim-pimpl.cxx (ayrıştırıcı uygulama kaynak dosyası).

--generate-test sürücüsü
Örnek ayrıştırıcı uygulaması için bir test sürücüsü oluşturun. Bir girdi dosyası için
Form ad.xsd bu seçenek, ek bir C++ dosyasının oluşturulmasını tetikler.
Form isim-sürücü.cxx.

--force-üzerine yazma
Mevcut uygulamanın üzerine yazmaya zorlayın ve sürücü dosyalarını test edin. Bunu kullan
seçeneği yalnızca örnekte yaptığınız değişiklikleri kaybetmekten çekinmiyorsanız
uygulama veya test sürücüsü dosyaları.

--root-eleman-ilk
İlk global öğenin belge kökü olduğunu belirtin. Bu bilgi
örnek uygulama için test sürücüsünü oluşturmak için kullanılır.

--root-eleman-son
Son global öğenin belge kökü olduğunu belirtin. Bu bilgi
örnek uygulama için test sürücüsünü oluşturmak için kullanılır.

--root-eleman eleman
Onu belirt eleman belge köküdür. Bu bilgi oluşturmak için kullanılır
örnek uygulama için test sürücüsü.

--skel-type-soneki sonek
Sağlananları kullanın sonek varsayılan yerine _pskel isimlerini oluşturmak için
oluşturulan ayrıştırıcı iskeletleri.

--skel-dosya-soneki sonek
Sağlananları kullanın sonek varsayılan yerine -pskel isimlerini oluşturmak için
oluşturulan ayrıştırıcı iskelet dosyaları.

--impl-type-soneki sonek
Sağlananları kullanın sonek varsayılan yerine _pimpl isimlerini oluşturmak için
örnek ayrıştırıcının yanı sıra yerleşik XML Şema türleri için ayrıştırıcı uygulamaları
uygulamalar.

--impl-dosya-soneki sonek
Sağlananları kullanın sonek varsayılan yerine -sivilce isimlerini oluşturmak için
oluşturulan örnek ayrıştırıcı uygulama dosyaları.

İSİMLENDİRME SÖZLEŞMESİ


Derleyiciye, oluşturulan dosyada belirli bir adlandırma kuralı kullanması talimatı verilebilir.
kod. Kullanılarak yaygın olarak kullanılan bir dizi sözleşme seçilebilir. --tür adlandırma ve
--fonksiyon-adlandırma seçenekler. kullanılarak özel bir adlandırma kuralı elde edilebilir. --tip-
regex, --erişimci-regex, --tek erişimci-regex, --opt-erişimci-regex, --seq-erişimci-regex,
--değiştirici-regex, --bir-değiştirici-regex, --opt-değiştirici-regex, --seq-değiştirici-regex,
--parser-regex, --serileştirici-regex, --const-regex, --enumerator-regex, ve --element tipi-
regex seçenekleri.

The --tür adlandırma seçenek, C++'ı adlandırmak için kullanılması gereken kuralı belirtir.
türleri. Bu seçenek için olası değerler knr (Varsayılan) ucc, ve Java. knr değer
(K&R anlamına gelir) alt çizgi ile standart, küçük harfli adlandırma kuralını belirtir
sözcük sınırlayıcı olarak kullanılır, örneğin: foo, foo_bar. bu ucc (üst deve anlamına gelir-
durumda) ve Java ilk harfinin bulunduğu aynı adlandırma kuralı için eşanlamlılara değer verir.
addaki her kelime büyük harfle yazılır, örneğin: Foo, FooBar.

Benzer şekilde, --fonksiyon-adlandırma seçeneği, kullanılması gereken kuralı belirtir
C++ işlevlerini adlandırma. Bu seçenek için olası değerler knr (Varsayılan) lCC, ve Java.
The knr değer (K&R anlamına gelir) ile standart, küçük harfli adlandırma kuralını belirtir.
sözcük sınırlayıcı olarak kullanılan alt çizgi, örneğin: foo(), foo_bar(). bu lCC değer
(küçük deve durumu anlamına gelir) her birinin ilk harfinin yer aldığı bir adlandırma kuralını belirtir.
ilki dışındaki kelime büyük harfle yazılır, örneğin: foo(), fooBar(). bu Java adlandırma
kural, erişimci işlevlerinin
get ile önek, değiştirici işlevlerin önüne set, ayrıştırma işlevleri
ayrıştırma ön eki ile gelir ve serileştirme işlevlerinin önüne serileştirme eklenir, örneğin:
getFoo(), setFooBar(), parseRoot(), seriizeRoot().

ile belirtilen adlandırma kurallarına dikkat edin. --tür adlandırma ve --fonksiyon-adlandırma
seçenekler, şemadan gelen adlar üzerinde yalnızca sınırlı dönüşümler gerçekleştirir.
tür, nitelik ve öğe adlarının biçimi. Başka bir deyişle, tutarlı sonuçlar elde etmek için,
şemalarınız, sahip olmak istediğinize benzer bir adlandırma kuralına uymalıdır.
oluşturulan kodda. Alternatif olarak, --*-normal ifade seçenekler (aşağıda tartışılmıştır)
şemadan gelen adlar üzerinde daha fazla dönüşüm gerçekleştirmek için.

The --type-regex, --erişimci-regex, --tek erişimci-regex, --opt-erişimci-regex, --seq-
erişimci-regex, --değiştirici-regex, --bir-değiştirici-regex, --opt-değiştirici-regex, --seq-
değiştirici-regex, --parser-regex, --serileştirici-regex, --const-regex, --enumerator-regex, ve
--element-type-regex seçenekler, her ad için fazladan normal ifadeler belirlemenize olanak tanır
bağlı olarak eklenen önceden tanımlanmış kümeye ek olarak kategori --tür adlandırma
ve --fonksiyon-adlandırma seçenekler. ile sağlanan ifadeler --*-normal ifade seçenekleri
önceden tanımlanmış ifadelerden önce değerlendirilir. Bu, seçici olarak geçersiz kılmanıza olanak tanır
önceden tanımlanmış dönüşümlerin bazıları veya tümü. Kendi ifadelerinizde hata ayıklarken,
genellikle hangi ifadelerin hangi adlarla eşleştiğini görmek için yararlıdır. bu --name-regex-izleme seçenek
adlara normal ifadeler uygulama sürecini izlemenize olanak tanır.

Değeri --*-normal ifade seçenekler, formda Perl benzeri bir düzenli ifade olmalıdır
/model/değiştirme/. Bunun yerine herhangi bir karakter sınırlayıcı olarak kullanılabilir. /. kaçmak
sınırlayıcı karakterin model or değiştirme desteklenmiyor. tüm düzenli
her kategori için ifadeler, sonuncusu ile kategoriye özgü bir yığına itilir.
belirtilen ifade ilk olarak kabul edilir. Başarılı olan ilk eşleşme kullanılır. İçin
--tek erişimci-regex (bir kardinaliteye sahip erişimciler), --opt-erişimci-regex (erişimciler
kardinalite isteğe bağlı) ve --seq-erişimci-regex (kardinalite sıralı erişimciler)
kategoriler --erişimci-regex ifadeler bir geri dönüş olarak kullanılır. İçin --bir-
değiştirici-regex, --opt-değiştirici-regex, ve --seq-değiştirici-regex kategoriler --değiştirici-
regex ifadeler bir geri dönüş olarak kullanılır. İçin --element-type-regex kategori
--type-regex ifadeler bir geri dönüş olarak kullanılır.

Tür adı ifadeleri (--type-regex) içeren ad dizesinde değerlendirilir.
aşağıdaki biçim:

[ad ]isim[,isim][,isim][,isim]

Öğe türü adı ifadeleri (--element-type-regex), yalnızca şu durumlarda etkilidir:
--generate-eleman-türü seçeneği belirtilirse, sahip olduğu ad dizesinde değerlendirilir.
aşağıdaki biçim:

ad isim

Tür adı biçiminde ad bir boşluk tarafından takip edilen kısım yalnızca global için mevcuttur
isimleri yazın. Hedef ad alanı olmayan şemalarda tanımlanan global türler ve öğeler için,
the ad kısım boş ama alan hala mevcut. sonra tür adı biçiminde
İlk isim bileşen, üç adede kadar ek isim bileşenler mevcut olabilir,
virgüllerle ayrılmış. Örneğin:

http://example.com/hello tip

foo

foo, yineleyici

foo, const, yineleyici

Aşağıdaki önceden tanımlanmış normal ifadeler kümesi, aşağıdaki durumlarda tür adlarını dönüştürmek için kullanılır:
büyük deve-büyük harf adlandırma kuralı seçilir:

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

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

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

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

Erişimci ve değiştirici ifadeler (--* erişimci-regex ve --*değiştirici-regex)
aşağıdaki biçime sahip ad dizesinde değerlendirilir:

isim[,isim][,isim]

İlkinden sonra isim bileşen, en fazla iki ek isim bileşenler mevcut olabilir,
virgüllerle ayrılmış. Örneğin:

foo

dom, belge

foo,varsayılan,değer

Aşağıdaki önceden tanımlanmış düzenli ifadeler kümesi, erişimci adlarını dönüştürmek için kullanılır
zaman Java adlandırma kuralı seçilir:

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

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

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

Ayrıştırıcı, serileştirici ve numaralandırıcı kategorileri için karşılık gelen normal
ifadeler öğelerin yerel adları ve numaralandırma değerleri üzerinde değerlendirilir,
sırasıyla. Örneğin, aşağıdaki önceden tanımlanmış normal ifade,
ayrıştırma işlevi adlarını dönüştürün Java adlandırma kuralı seçilir:

/(.+)/ayrıştırma\u$1/

const kategorisi, öğe/joker karakter/metin için C++ sabit adları oluşturmak için kullanılır
sıralı türlerde içerik kimlikleri.

Ayrıca aşağıdaki REGEX VE SHELL QUOTING bölümüne bakın.

TİP MAP


Tür eşleme dosyaları, XML Şeması ve C++ arasında bir eşleme tanımlamak için C++/Ayrıştırıcı'da kullanılır
türleri. Derleyici, bu bilgileri geri dönüş türlerini belirlemek için kullanır. İleti_*
XML Şema türlerine ve bağımsız değişken türlerine karşılık gelen ayrıştırıcı iskeletlerdeki işlevler
bu türlerin öğelerine ve niteliklerine karşılık gelen geri aramalar için.

Derleyici, yerleşik XML Şema türlerini aşağıdakilere eşleyen bir dizi önceden tanımlanmış eşleme kuralına sahiptir.
uygun C++ türleri (aşağıda tartışılmıştır) ve diğer tüm türler geçersiz. Kendiniz sağlayarak
haritalar yazın, bu önceden tanımlanmış kuralları geçersiz kılabilirsiniz. Tip haritası dosyasının formatı şudur:
aşağıda sunulmuştur:

ad şema-ad alanı [ cxx-ad alanı ]
{
( dahil dosya adı; )*
([ tip ] şema tipi cxx-ret tipi [ cxx-arg tipi ]; )*
}

Her ikisi de şema-ad alanı ve şema tipi regex kalıpları cxx-ad alanı, cxx-ret-
tip, ve cxx-arg tipi regex desen ikameleridir. Tüm isimler isteğe bağlı olabilir
örneğin beyaz boşluklar eklemek için " " içine alınır.

şema-ad alanı XML Şeması ad alanını belirler. İsteğe bağlı cxx-ad alanı ön eklidir
bu ad alanı bildirimindeki her C++ türü adı. cxx-ret tipi bir C++ tipi adıdır.
için bir dönüş türü olarak kullanılır İleti_* fonksiyonlar. İsteğe bağlı cxx-arg tipi bir argümandır
bu türün öğelerine ve niteliklerine karşılık gelen geri arama işlevleri için yazın. Eğer cxx-
bağımsız değişken türü belirtilmemiş, varsayılan olarak cxx-ret tipi if cxx-ret tipi ile biter * or &
(yani, bir işaretçi veya referanstır) ve const cxx-ret tipi& aksi takdirde. dosya adı is
" " veya < > biçiminde bir dosya adı ve #Dahil etmek direktif
oluşturulan kod.

The # karakter, yeni bir satır veya dosya sonu ile biten bir yorum başlatır. belirtmek için
içeren isim # " " içine alın. Örneğin:

ad http://www.example.com/xmlns/my my
{
"my.hxx" dahil;

# Elmaları değere göre geçirin.
#
elma elma;

# Portakalları işaretçi olarak iletin.
#
turuncu turuncu_t*;
}

Yukarıdaki örnekte, http://www.example.com/xmlns/my#Portakal XML Şema türü,
benim::turuncu_t* C++ tipi hem dönüş hem de argüman tipi olarak kullanılacaktır.

Tek bir dosyada birkaç ad alanı bildirimi belirtilebilir. ad alanı
bildirim, ad alanı olmayan bir şemadaki eşleme türlerine de tamamen atlanabilir.
Örneğin:

"my.hxx" dahil;
elma elma;

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

Derleyici, şu şekilde sunulabilecek bir dizi önceden tanımlanmış eşleme kuralına sahiptir.
aşağıdaki harita dosyaları. Dize tabanlı XML Şeması yerleşik türleri şunlardan birine eşlenir:
standart::dize or standart::wstring ile seçilen karakter tipine bağlı olarak --char tipi
seçenek (tank varsayılan olarak).

ad http://www.w3.org/2001/XMLSchema
{
boole bool bool;

bayt "imzalı karakter" "imzalı karakter";
unsignedByte "imzasız karakter" "imzasız karakter";

kısa kısa kısa;
unsignedShort "imzasız kısa" "imzasız kısa";

int int;
unsignedInt "imzasız int" "imzasız int";

uzun "uzun uzun" "uzun uzun";
unsignedLong "unsigned long long" "unsigned long long";

tamsayı "uzun uzun" "uzun uzun";

negatifTamsayı "uzun uzun" "uzun uzun";
nonPositiveInteger "uzun uzun" "uzun uzun";

pozitifTamsayı "işaretsiz uzun uzun" "işaretsiz uzun uzun";
nonNegativeInteger "unsigned long long" "unsigned long long";

şamandıra şamandıra şamandıra;
çift ​​çift çift;
ondalık çift çift;

dize std::string;
normalizedString std::string;
belirteç std::string;
İsim std::string;
NMTOKEN std::dize;
NCName std::string;
kimlik std::string;
IDREF std::dize;
dil standardı::string;
herhangiURI std::string;

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

QName xml_schema::qname;

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

tarih xml_schema::tarih;
tarihSaat xml_schema::tarih_saat;
süre xml_schema::süre;
gDay xml_schema::gday;
gMonth xml_schema::gmonth;
gMonthDay xml_schema::gmonth_day;
gYıl xml_schema::gyıl;
gYearMonth xml_schema::gyear_month;
zaman xml_schema::zaman;
}

Son önceden tanımlanmış kural, önceki kurallar tarafından eşleştirilmeyen her şeyi eşler. geçersiz:

ad alanı .*
{
.* geçersiz geçersiz;
}

Kendi tür haritalarınızı sağladığınızda --tür haritası seçenek, önce değerlendirilirler.
Bu, önceden tanımlanmış kuralları seçerek geçersiz kılmanıza olanak tanır.

REGEX VE SHELL ALINTI YAPMAK


Kabuk komut satırına bir normal ifade argümanı girerken, genellikle
önlemek için alıntı (argümanı " " veya ' ' içine alarak) kullanmak gerekir.
Shell'in belirli karakterleri, örneğin boşlukları bağımsız değişken ayırıcıları olarak yorumlamasını ve
$ değişken açılımlar olarak.

Ne yazık ki bunu POSIX kabukları arasında taşınabilir bir şekilde başarmak zordur,
GNU/Linux ve UNIX'te ve Windows kabuğunda bulunanlar gibi. Örneğin, " " kullanırsanız
alıntı yaptığınız için, ifadeniz $ içeriyorsa, POSIX kabuklarıyla yanlış bir sonuç alırsınız.
POSIX sistemlerinde bununla başa çıkmanın standart yolu, bunun yerine ' ' kullanmaktır.
Ne yazık ki, Windows kabuğu, argümanlara iletildiklerinde ' ' karakterini argümanlardan kaldırmaz.
uygulamalar. Sonuç olarak, POSIX için " " ve Windows için " " kullanmanız gerekebilir ($
Windows'ta özel bir karakter olarak işlenir).

Alternatif olarak, normal ifade seçeneklerini her satırda bir seçenek olacak şekilde bir dosyaya kaydedebilirsiniz.
ve bu dosyayı --seçenekler-dosyası seçenek. Bu yaklaşımla yapmanıza gerek yok
kabuk alıntı hakkında endişe.

TANI


Girdi dosyası geçerli bir W3C XML Şeması tanımı değilse, xsdcxx teşhis yayınlayacak
mesajlar STDER ve sıfır olmayan çıkış koduyla çıkın.

onworks.net hizmetlerini kullanarak xsdcxx'i çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

Linux komutları

Ad