با سلام خدمت کاربران گرامی سایت پی وی لرن و علاقمندان و کاربرانی که علاقمند به یادگیری دوره XML هستند. در جلسه پیش با آموزش کار با Restrictions در schema همراه شما بودیم و کار با Restrictions ها یا محدودیت ها آشنا شدیم. در این جلسه به آموزش کار با عناصر پیچیده در schema می پردازیم.
یک عنصر پیچیده شامل عناصر و / یا attributes های دیگر است.
همان طور که اشاره شد یک عنصر پیچیده شامل عناصر و / یا attributes های دیگر است.
چهار نوع عناصر پیچیده وجود دارد:
هر یک از این عناصر ممکن است شامل attributes ها نیز باشند!
یک عنصر XML پیچیده، “product”، که خالی است:
1 | <product pid="1345"/> |
یک عنصر پیچیده XML، یعنی “employee”، که فقط شامل عناصر دیگر است:
1 2 3 4 | <employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee> |
عنصر پیچیده XML، یعنی “food”، که شامل متن است:
1 2 3 4 | <employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee> |
یک عنصر پیچیده XML، یعنی “description”، که شامل هر دو عنصر و متن است:
1 2 3 | <description> It happened on <date lang="norwegian">03.03.99</date> .... </description> |
به این عنصر پیچیده XML نگاه کنید، “employee”، که شامل عناصر دیگر است:
1 2 3 4 | <employee> <firstname>John</firstname> <lastname>Smith</lastname> </employee> |
می توانیم یک عنصر پیچیده در XML Schema را به دو روش مختلف تعریف کنیم:
۱٫ عنصر “employee” را می توان به طور مستقیم با نامگذاری عنصر اعلام کرد، مانند:
1 2 3 4 5 6 7 8 | <xs:element name="employee"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> |
اگر از روش فوق استفاده می نمایید تنها عنصر “employee” می تواند از نوع پیچیده complex type مشخص شده استفاده کند.
توجه داشته باشید که عناصر child فرزند، “firstname” و “lastname”، توسط نشانگر <sequence> احاطه شده اند. این به این معنی است که عناصر child باید به همان صورت که اعلام می شوند، ظاهر شوند.
۲٫ عنصر “employee” می تواند یک type attribute داشته باشد که از آن برای ارجاع نام به نوع پیچیده complex type استفاده می شود:
1 2 3 4 5 6 7 8 | <xs:element name="employee" type="personinfo"/> <xs:complexType name="personinfo"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> |
اگر از روش فوق استفاده می نمایید چندین عنصر می توانند به یک نوع پیچیده تر اشاره کنند مانند مورد زیر:
1 2 3 4 5 6 7 8 9 10 | <xs:element name="employee" type="personinfo"/> <xs:element name="student" type="personinfo"/> <xs:element name="member" type="personinfo"/> <xs:complexType name="personinfo"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> |
همچنین می توانید یک عنصر پیچیده را در یک عنصر پیچیده موجود اضافه کنید و برخی از عناصر را مانند lمورد زیر اضافه نمایید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <xs:element name="employee" type="fullpersoninfo"/> <xs:complexType name="personinfo"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:complexType name="fullpersoninfo"> <xs:complexContent> <xs:extension base="personinfo"> <xs:sequence> <xs:element name="address" type="xs:string"/> <xs:element name="city" type="xs:string"/> <xs:element name="country" type="xs:string"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> |
در این جلسه به ارائه آموزش کار با عناصر پیچیده در schema پرداختیم.
در جلسه بعدی به بحث و بررسی در خصوص عناصر خالی می پردازیم.
با پی وی لرن همراه باشید.