, ben complexTypesxml ad alanlarını yerleştirme uygulaması nedir? programlama dillerinde
Kavramsal olarak<xsd:schema targetNamespace="http://www.stackoverflow.com/foo">
<xsd:complexType name="bar1">
...
</xsd:complexType>
<xsd:complexType name="bar2">
</xsd:complexType>
...
<xsd:complexType name="foo1" type = "bar1">
...
</xsd:complexType>
</xsd:schema>
Ben çubuğunu1 ve çubuğunu2 istiyorum tanımlarken benzer şeyler yapmak istediğiniz bir şema (XSD) olarak
namespace foo
{
namespace bar
{
void DoIt()
{
}
}
}
int main()
{
foo::bar::DoIt()
}
alışkınım Bir http://www.stackoverflow.com/foo::bar ad boşluğunda yuvalanmak (:: C++ 'dan ödünç alındı). Bar öğeleri için tanımlanan tamamen ikinci bir ad alanı gibi görünen örnekler gördüm. Bu örneklerde, çubuklar, aşağıdaki örnekte olduğu gibi ikinci bir isim alanında "http://www.stackoverflow.com/foo/bar" tanımlanacaktır. Bu bir "iç içe" ad alanına en yakın gördüğüm.
Yani bir şey ben tür yapmak Sadece ad ++ XML farklıdır vs C söylemek nasıl grok çalışıyorum olmasıdır Farklı şemasından bu
<xsd:schema targetNamespace="http://www.stackoverflow.com/foo"
xmlns:bar = "http://www.stackoverflow.com/foo/bar">
<xsd:schema namespace="http://www.stackoverflow.com/foo/bar"
<xsd:complexType name="foo1">
<xsd:element name="bar1Instance" type="bar:bar1"/>
...
</xsd:complexType>
</xsd:schema>
Part çubuğu şeyler aktarmaktır edebilirsiniz. XML'de yuvalanmış ad alanları var mı yoksa her ad alanı bağımsız mı? İç içe geçmiş ad alanları nasıl uygulanır veya tipik olarak yapılır? Yukarıdaki örneğim gibi mi yapıldı? İsim alanları tamamen bağımsız mı yoksa bir yuva oluşturma ilişkisi var mı?
Sadece bir nit: XML ad * URL'lerin bir üst kümesidir URI'lerinin, bir üst kümesidir yasal tanım-(Internationalized Resource Identifier), olmak * gereklidir. Gerçek noktanız kesinlikle doğrudur; ayrıştırıcı, ad alanını tamamen opak bir dize olarak ele alır. Ref: http://www.w3.org/TR/REC-xml-names/ – Peeja
@Peeja: İyi bir açıklama. Teşekkürler. – Eddie