Skip to content
Back to skills

659 Description Skill 7ee4b200

ASecurity

Dasel v3 selectors for Spring bean factory XML — use when querying any Spring ApplicationContext XML for bean discovery, dependency wiring, JMS destination mapping, property injection extraction, or cross-bean reference tracing. Load this skill before writing dasel selectors against Spring bean XML files (applicationContext.xml, *_beans.xml, spring-*.xml).

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
researchbashspringtesting

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 659-description-skill_7ee4b200 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 659 Description Skill 7ee4b200?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 659 Description Skill 7ee4b200
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-659-description-skill-7ee4b200/badge)](https://www.skillsdirectory.com/skills/tools-only-659-description-skill-7ee4b200)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
description: "Dasel v3 selectors for Spring bean factory XML — use when querying any Spring ApplicationContext XML for bean discovery, dependency wiring, JMS destination mapping, property injection extraction, or cross-bean reference tracing. Load this skill before writing dasel selectors against Spring bean XML files (applicationContext.xml, *_beans.xml, spring-*.xml)."
---

# Spring Bean Factory XML — Dasel v3 Query Patterns

<when_to_use>

Load this skill when querying any Spring bean XML file — `applicationContext.xml`, `*_beans.xml`, `spring-context.xml`, or any Spring ApplicationContext XML — for bean discovery, dependency analysis, JMS wiring, property injection auditing, or cross-bean reference tracing.

</when_to_use>

Dasel v3 selector patterns for Spring bean factory XML. Always pass `-i xml` explicitly.

**Attribute prefix rule:** Dasel friendly mode (default) prefixes XML attributes with `-`. The `id` attribute is `-id`, `class` is `-class`. Text content is `#text`.

## Bean Discovery

```bash
# All bean IDs
dasel -f chaosrouter_beans.xml -i xml 'beans.bean.filter(has("-id")).map("-id")'

# All bean classes
dasel -f chaosrouter_beans.xml -i xml 'beans.bean.filter(has("-class")).map("-class")'

# Map -class across every bean (includes beans without -id)
dasel -f chaosrouter_beans.xml -i xml 'beans.bean.map("-class")'
```

## Class Pattern Matching

Filter beans by class name via regex on `-class`.

```bash
# Beans whose class contains JmsTemplate
dasel -f chaosrouter_beans.xml -i xml 'beans.bean.filter(-class ~ ".*JmsTemplate.*").map("-id")'

# Count beans matching a class pattern
dasel -f beans.xml -i xml 'len(beans.bean.filter(-class ~ ".*Jms.*"))'
```

## Dependency Wiring Analysis

Find beans referencing other beans via the `-ref` attribute on `property` child elements.

**Pattern:** `parentCollection.filter(childElement.filter(condition).len($this) > 0)` — filters the parent by testing whether a matching child exists (length > 0).

```bash
# Beans that reference a specific bean ID via ref attribute
dasel -f chaosrouter_beans.xml -i xml 'beans.bean.filter(property.filter(-ref == "targetBeanId").len($this) > 0).map("-id")'
```

## JMS Destination Mapping

Find which beans consume which JMS destinations via `property` child elements.

```bash
# Beans wired to a specific destination property
dasel -f integrationpoint_beans.xml -i xml 'beans.bean.filter(property.filter(-name == "destination").len($this) > 0).map("-id")'
```

## Property Injection Extraction

Extract externalized `${...}` placeholder values from bean definitions.

```bash
# All property values using ${...} placeholders
dasel -f storage_beans.xml -i xml 'beans.bean.property.filter(-value ~ ".*\\$\\{.*\\}.*").map("-value")'
```

## Attribute and Text Content Access

```bash
# <bean id="myBean" class="com.example.Foo">some text</bean>
dasel -f beans.xml -i xml 'beans.bean[0].-id'       # myBean
dasel -f beans.xml -i xml 'beans.bean[0].-class'    # com.example.Foo
dasel -f beans.xml -i xml 'beans.bean[0].#text'     # some text

# Discover all keys (attributes + child elements) on first bean
dasel -f beans.xml -i xml 'beans.bean[0].keys($this)'
```

## Namespace Handling

Friendly mode strips namespace prefixes from element names — works for most Spring queries.

When namespace prefixes cause selector failures (element not found despite existing), switch to structured mode:

```bash
dasel -f spring-context.xml -i xml --read-flag xml-mode=structured 'beans.bean[0]'
```

## Cross-File Analysis

Write intermediate results to `/tmp/` — never to the source tree.

```bash
# Extract bean IDs from multiple files, compare
dasel -f chaosrouter_beans.xml -i xml 'beans.bean.filter(has("-id")).map("-id")' > /tmp/chaosrouter_beans.txt
dasel -f integrationpoint_beans.xml -i xml 'beans.bean.filter(has("-id")).map("-id")' > /tmp/integration_beans.txt
diff /tmp/chaosrouter_beans.txt /tmp/integration_beans.txt
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.