Skip to content

Add XML parser support (.xml) #133

@josephismikhail

Description

@josephismikhail

Problem

Ix does not currently parse .xml files. XML files are treated as unrecognized and excluded from analysis, meaning configuration, data definitions, and build descriptors stored in XML are invisible to the system.

Proposed solution

Add an XML parser that can identify and extract:

  • Element and attribute structure
  • Namespace declarations (e.g. xmlns:)
  • Common XML-based formats where applicable (e.g. Maven pom.xml, Android manifests, Spring configs, .csproj)
  • Processing instructions and declarations
  • CDATA sections

Support the following file patterns: *.xml

Why it matters

XML is used across a wide range of tooling — build systems (Maven, MSBuild), Android development, Spring configuration, CI pipelines, and data interchange formats. Without parsing it, Ix has a blind spot over a class of configuration and build files that can be critical to understanding how a project is structured and deployed.

Merge requirements

Before this can be merged to main, the following must pass:

  • Tested on 3 repos
  • No regressions on existing parsers (ix map on a known TS/JS repo, verify counts unchanged)
  • Unit + smoke tests pass (npm test in ix-cli)
  • Elements ingested as entities with tag name and attributes
  • Namespace declarations (xmlns:) resolved and reflected on their elements
  • pom.xml — Maven dependencies, plugins, and project metadata visible
  • Android manifests — <activity>, <service>, <permission> blocks ingested
  • Spring configs — <bean> definitions ingested and linked where possible
  • .csproj<ItemGroup> and <PropertyGroup> entries ingested
  • CDATA sections preserved and searchable via ix text
  • CONTAINS chains correctly: root element → child elements → attributes
  • ix text returns results with language: xml
  • ix contains returns children for a known XML root element

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions