# System.Xml.Linq

**Kind:** Service

**Source:** `Pams/Core/Pams.Security/Pams.Security.csproj` (line 1)

**Part of:** [Pams](subsystem-pams)

NuGet package dependency

`System.Xml.Linq` is a NuGet package dependency declared in `Pams.Security.csproj`. It provides LINQ-to-XML APIs used by the security project when reading, querying, or creating XML documents.

## Diagram

```mermaid
sequenceDiagram
    participant Build as .NET Build
    participant Project as Pams.Security.csproj
    participant NuGet as NuGet Restore
    participant Xml as System.Xml.Linq

    Build->>Project: Read package dependencies
    Project->>NuGet: Request System.Xml.Linq
    NuGet->>Xml: Restore package
    Xml-->>Build: Provide LINQ-to-XML APIs
```

## Usage

```ts
import { execFileSync } from "node:child_process";

const projectFile = "Pams/Core/Pams.Security/Pams.Security.csproj";

const output = execFileSync(
  "dotnet",
  ["list", projectFile, "package", "--include-transitive"],
  { encoding: "utf8" }
);

if (output.includes("System.Xml.Linq")) {
  console.log("System.Xml.Linq is available to Pams.Security.");
} else {
  console.error("System.Xml.Linq was not found in restored packages.");
}
```

## AI Coding Instructions

- Keep the `System.Xml.Linq` package reference aligned with the target framework configured in `Pams.Security.csproj`.
- Restore NuGet packages before building or testing changes that depend on XML APIs.
- Use `System.Xml.Linq` for LINQ-based XML document access; avoid adding duplicate XML package dependencies.
- Check transitive package output when diagnosing missing XML types during builds.
