XSD <anyAttribute> Elementi
- Önceki Sayfa XSD <any>
- Sonraki Sayfa XSD Element Değişimi
<anyAttribute> elementi, XML belgesini schema tarafından tanımlanmamış özelliklerle genişletmemizi sağlar!
<anyAttribute> elementi
<anyAttribute> elementi, XML belgesini schema tarafından tanımlanmamış özelliklerle genişletmemizi sağlar!
Aşağıdaki örnek, "family.xsd" adlı XML şemasının bir parçasıdır. Bu, "person" elementi için bir açıklamayı gösterir. <anyAttribute> elementi kullanılarak, "person" elementine istediğiniz kadar özellik ekleyebilirsiniz:
<xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> <xs:anyAttribute/> </xs:complexType> </xs:element>
Şimdi, "gender" özelliği ile "person" elementini genişletmeyi umuyoruz. Bu durumda, schema yazarının "gender" özelliğini hiçbir zaman beyan etmemiş olmasına rağmen, böyle bir şey yapabiliriz.
Bu schema dosyasına bir göz atın, "attribute.xsd" adlıdır:
<?xml version="1.0" encoding="ISO-8859-1"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.codew3c.com" xmlns="http://www.codew3c.com" elementFormDefault="qualified"> <xs:attribute name="gender"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="male|female"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:schema>
Bu XML ("Myfamily.xml" adı altında), farklı schema'ların bileşenlerini kullanır, "family.xsd" ve "attribute.xsd":
<?xml version="1.0" encoding="ISO-8859-1"?> <persons xmlns="http://www.microsoft.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:SchemaLocation="http://www.microsoft.com family.xsd http://www.codew3c.com attribute.xsd"> <person gender="female"> <firstname>Jane</firstname> <lastname>Smith</lastname> </person> <person gender="male"> <firstname>David</firstname> <lastname>Smith</lastname> </person> </persons>
Bu XML dosyası geçerlidir, çünkü "family.xsd" şeması "person" elementine özellik eklememize izin verir.
<any> ve <anyAttribute> genişletilebilir belgeler oluşturmak için kullanılabilir! Bu, belgelerin ana XML şemasında bildirilmemiş ek elementler içermesine olanak tanır.
- Önceki Sayfa XSD <any>
- Sonraki Sayfa XSD Element Değişimi