-
Notifications
You must be signed in to change notification settings - Fork 5
Add XML parser support (.xml) #133
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or request
Description
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 mapon a known TS/JS repo, verify counts unchanged) - Unit + smoke tests pass (
npm testinix-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 textreturns results withlanguage: xml -
ix containsreturns children for a known XML root element
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request