---
title: "replacementClass(for:)"
framework: foundation
role: symbol
role_heading: Type Method
path: "foundation/xmldocument/replacementclass(for:)"
---

# replacementClass(for:)

Overridden by subclasses to substitute a custom class for an NSXML class that the parser uses to create node instances.

## Declaration

```swift
class func replacementClass(for cls: AnyClass) -> AnyClass
```

## Parameters

- `cls`: A Class object identifying an NSXML class that is to be replaced by your custom class.

## Return Value

Return Value The substituted class.

## Discussion

Discussion For example, if you have a custom subclass of XMLElement that you want to be used in place of NSXMLElement, you would make the following override: + (Class)replacementClassForClass:(Class)currentClass {     if ( currentClass == [NSXMLElement class] ) {         return [MyCustomElementClass class];     } } This method is invoked before a document is parsed. The substituted class must be a subclass of XMLNode, NSXMLDocument, NSXMLElement, XMLDTD, or XMLDTDNode.

## See Also

### Related Documentation

- [setRootElement(_:)](foundation/xmldocument/setrootelement(_:).md)

### Initializing NSXMLDocument Objects

- [init(contentsOf:options:)](foundation/xmldocument/init(contentsof:options:).md)
- [init(data:options:)](foundation/xmldocument/init(data:options:).md)
- [init(rootElement:)](foundation/xmldocument/init(rootelement:).md)
- [init(xmlString:options:)](foundation/xmldocument/init(xmlstring:options:)-65m2r.md)
