Oracle.DataAccess.Client.OracleXmlQueryProperties کلاسی است که در کتابخانه Oracle Data Access Components (ODAC) برای تنظیم ویژگی‌های مربوط به پرس‌وجوی XML در دیتابیس Oracle استفاده می‌شود. این کلاس امکاناتی را فراهم می‌کند که به شما اجازه می‌دهد پرس‌وجوهای XML پیشرفته را در دیتابیس اجرا کنید و نتایج را بازیابی کنید. در زیر به برخی از مهمترین ویژگی‌ها و کاربردهای Oracle.DataAccess.Client.OracleXmlQueryProperties می‌پردازم:

1. XMLQuery (پرس‌وجوی XML):
با استفاده از ویژگی XMLQuery می‌توانید پرس‌وجوی XML را تعیین کنید. این ویژگی باید یک عبارت XPath صحیح را به عنوان ورودی بگیرد. برای مثال:

````csharp
OracleXmlQueryProperties queryProps = new OracleXmlQueryProperties();
queryProps.XMLQuery = "/Employees/Employee[@ID='123']";
```

2. Namespace (فضای‌نام):
با استفاده از ویژگی Namespace می‌توانید فضای‌نام XML را مشخص کنید. برای مثال:

````csharp
OracleXmlQueryProperties queryProps = new OracleXmlQueryProperties();
queryProps.Namespace = "http://example.com/employees";
```

3. ContextItem (آیتم متنی):
ویژگی ContextItem به شما اجازه می‌دهد یک آیتم متنی را به عنوان ورودی پرس‌وجو تعیین کنید. برای مثال:

````csharp
OracleXmlQueryProperties queryProps = new OracleXmlQueryProperties();
queryProps.ContextItem = "John";
```

4. Xslt (XSLT):
با استفاده از ویژگی Xslt می‌توانید یک قالب XSLT را برای تبدیل نتیجه پرس‌وجو تعیین کنید. برای مثال:

````csharp
OracleXmlQueryProperties queryProps = new OracleXmlQueryProperties();
queryProps.Xslt = "

Employees

";
```

5. XQueryUseDefaultNamespace (استفاده از فضای‌نام پیش‌فرض در XQuery):
با استفاده از ویژگی XQueryUseDefaultNamespace می‌توانید مشخص کنید که آیا فضای‌نام پیش‌فرض در پرس‌وجوهای XQuery استفاده شود یا خیر.

بعد از تنظیم تمامی مقادیر مورد نیاز در کلاس Oracle.DataAccess.Client.OracleXmlQueryProperties، می‌توانید این ویژگی‌ها را به عنوان پارامترهای پرس‌وجو در استعلام SQL خود استفاده کنید. برای مثال:



```csharp
using (OracleConnection connection = new OracleConnection(connectionString))
{
connection.Open();

OracleCommand command = connection.CreateCommand();
command.CommandText = "SELECT XMLType(data) FROM employees WHERE XMLExists(:xmlQuery PASSING BY VALUE data)";
command.Parameters.Add(":xmlQuery", OracleDbType.XmlType).Value = queryProps;
...
}
```

در این مثال، استعلام SQL شامل یک پرس‌وجوی XML است که با استفاده از پارامتر ":xmlQuery" تنظیم شده است. مقدار این پارامتر به عنوان یک OracleXmlQueryProperties به عنوان مقدار ویژگی XMLQuery و سایر ویژگی‌ها تنظیم می‌شود.