سلام
راستش اینجا تو یه پست که نمیتونم آموزش بدم، اما خیلی مختصر اینطوری هست که
شما یک تگ xs:schema داری
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="Report"
targetNamespace="http://tempuri.org/Report.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/Report.xsd"
xmlns:mstns="http://tempuri.org/Report.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
</xs:schema>
تو دل این تگ شما اول نوع فایل xml رو با ذکر نام ریشه مشخص میکنی
<xs:element name="reports" type="reports" />
element یعنی ما یه نود داریم که اسمش ( تگ استفاده شده ) باید reports باشه
بعد مشخص میکنی منظورت از "type="reports چیه
<xs:complexType name="reports">
<xs:sequence>
<xs:element name="report" type="report"/>
</xs:sequence>
</xs:complexType>
اینجا sequence یعنی این نود ( reports ) میتونه بچه از نوع report داشته باشه.
بعد باید نوع report رو براش معرفی کنی و به همین ترتیب تا آخر.
اگر یک نود لازم باشه که attribute داشته باشه به این صورت معرفی میکنی:
<xs:attribute name="name" type="xs:string" use="required" />
نباید نگران باشی که ممکنه فایل xsd برای کارت بزرگتر از خود xml بشه.
اما عملکردش عالیه. من اولش میترسیدم که برام دردسر بشه، اما بعد فهمیدم که
خیلی خیلی کمک میکنه که خیالم راحت باشه که فایل صحیح و بیاشکال به برنامه
تحویل میشه.
صبا صبوحی