XSD <anyAttribute> Öğesi
<anyAttribute> öğesi, XML belgesini şema tarafından belirtilmeyen niteliklerle genişletmemizi sağlar!
<anyAttribute> Öğesi
<anyAttribute> öğesi, XML belgesini şema tarafından belirtilmeyen niteliklerle genişletmemizi sağlar.
Aşağıdaki örnek, "family.xsd" adlı bir XML şemasından bir parçadır. "Kişi" öğesi için bir bildirim gösterir. <anyAttribute> öğesini kullanarak, "person" öğesine herhangi bir sayıda öznitelik ekleyebiliriz:
<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 "kişi" öğesini bir "eyecolor" özniteliği ile genişletmek istiyoruz. Bu durumda, yukarıdaki şemanın yazarı hiçbir zaman herhangi bir "göz rengi" niteliği beyan etmemiş olsa bile bunu yapabiliriz.
"attribute.xsd" adlı bu şema dosyasına bakın:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="https://www.w3schools.com"
xmlns="https://www.w3schools.com"
elementFormDefault="qualified">
<xs:attribute name="eyecolor">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="blue|brown|green|grey"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:schema>
Aşağıdaki XML dosyası ("Myfamily.xml" olarak adlandırılır), iki farklı şemadan bileşenler kullanır; "family.xsd" ve "attribute.xsd":
<?xml version="1.0" encoding="UTF-8"?>
<persons xmlns="http://www.microsoft.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:SchemaLocation="http://www.microsoft.com family.xsd
https://www.w3schools.com attribute.xsd">
<person eyecolor="green">
<firstname>Hege</firstname>
<lastname>Refsnes</lastname>
</person>
<person eyecolor="blue">
<firstname>Stale</firstname>
<lastname>Refsnes</lastname>
</person>
</persons>
Yukarıdaki XML dosyası geçerlidir çünkü "family.xsd" şeması "person" öğesine bir öznitelik eklememize izin verir.
<any> ve <anyAttribute> öğeleri GENİŞLETİLEBİLİR belgeler yapmak için kullanılır! Belgelerin, ana XML şemasında bildirilmeyen ek öğeleri içermesine izin verirler.