Package Exports
- xml-introspect
- xml-introspect/browser
- xml-introspect/cdn
- xml-introspect/index.js
Readme
xml-introspect
TypeScript library and CLI for analyzing large XML files and generating representative samples.
Install
npm install xml-introspectQuick Start
Node.js
import { XMLIntrospector, NodeXSDParser } from 'xml-introspect';
const introspector = new XMLIntrospector();
const xsdParser = new NodeXSDParser();
await introspector.generateSample('input.xml', 'sample.xml', {
maxElements: 100,
maxDepth: 3
});
await introspector.generateSchema('input.xml', 'schema.xsd');
// Parse XSD file
const xsdAST = await xsdParser.parseXSDFile('schema.xsd');Browser
import { BrowserXMLIntrospector, BrowserXSDParser } from 'xml-introspect/browser';
const introspector = new BrowserXMLIntrospector();
const xsdParser = new BrowserXSDParser();
// Analyze XML content
const analysis = await introspector.analyzeContent(xmlContent);
// Analyze XSD content
const xsdAnalysis = await introspector.analyzeXSDContent(xsdContent);CDN
<script src="https://cdn.jsdelivr.net/npm/xml-introspect@latest/dist/xml-introspect.umd.js"></script>
<script>
const analysis = await XMLIntrospect.analyzeXML(xmlContent);
const preview = XMLIntrospect.previewXML(xmlContent, 10);
</script>CLI Usage
xml-introspect sample input.xml output.xml
xml-introspect schema input.xml output.xsd
xml-introspect sample https://en-word.net/static/english-wordnet-2024.xml.gz sample.xmlAPI
Node.js API
Core Methods:
import { XMLIntrospector, NodeXSDParser } from 'xml-introspect';
const introspector = new XMLIntrospector();
const xsdParser = new NodeXSDParser();
// Analyze structure
const analysis = await introspector.analyzeStructure('input.xml');
// Generate sample
await introspector.generateSample('input.xml', 'output.xml', {
maxElements: 100,
maxDepth: 3,
strategy: 'balanced'
});
// Generate schema
await introspector.generateSchema('input.xml', 'schema.xsd', {
namespace: 'http://example.com/schema'
});
// Validate XML
const isValid = await introspector.validateXML('data.xml', 'schema.xsd');
// Parse XSD file
const xsdAST = await xsdParser.parseXSDFile('schema.xsd');Browser API
Browser Methods:
import { BrowserXMLIntrospector, BrowserXSDParser } from 'xml-introspect/browser';
const introspector = new BrowserXMLIntrospector();
const xsdParser = new BrowserXSDParser();
// Analyze XML content
const analysis = await introspector.analyzeContent(xmlContent);
// Analyze XSD content
const xsdAnalysis = await introspector.analyzeXSDContent(xsdContent);
// Generate sample XML
const sampleXML = introspector.generateSampleXML(100);
// Generate XML from XSD
const generatedXML = introspector.generateXMLFromXSD(xsdContent);CDN API
Global Methods:
// Available on window.XMLIntrospect
const analysis = await XMLIntrospect.analyzeXML(xmlContent);
const preview = XMLIntrospect.previewXML(xmlContent, 10);
const validation = await XMLIntrospect.validateXML(xmlContent);
const xsdAnalysis = await XMLIntrospect.analyzeXSD(xsdContent);Data Processing:
import { FormatProcessor } from 'xml-introspect/data-loader';
const processor = new FormatProcessor();
const result = await processor.processData(arrayBuffer, {
projectId: 'oewn:2024',
enableTarExtraction: true
});Options
Sampling:
maxElements- Max elements (default: 100)maxDepth- Max depth (default: 5)strategy- 'balanced', 'random', or 'first'
Schema:
namespace- Target namespaceelementForm- 'qualified' or 'unqualified'
Features
- XML Analysis: Structure analysis and sampling
- XSD Generation: Create schemas from XML
- Real Data: Process WordNet LMF files
- Memory Efficient: Streams large files
- TypeScript: Full type safety
Development
pnpm install
pnpm test
pnpm buildLicense
MIT - see LICENSE