---
title: "init(data:options:)"
framework: foundation
role: symbol
role_heading: Initializer
path: "foundation/xmldtd/init(data:options:)"
---

# init(data:options:)

Initializes and returns an NSXMLDTD object created from the DTD declarations encapsulated in an NSData object

## Declaration

```swift
init(data: Data, options mask: XMLNode.Options = []) throws
```

## Parameters

- `data`: A data object containing DTD declarations.
- `mask`: A bit mask specifying input options; bit-OR multiple options. The current valid options are NSXMLNodePreserveWhitespace and NSXMLNodePreserveEntities; these constants are described in the “Constants” section of the doc://com.apple.foundation/documentation/Foundation/XMLNode reference.

## Return Value

Return Value An initialized NSXMLDTD object or nil if initialization fails because of parsing errors or other reasons.

## Discussion

Discussion This method is the designated initializer for the NSXMLDTD class. You use this method to create a stand-alone DTD which you can thereafter query and use for validation. You can associate the DTD created through this message with a document by setting the dtd property on an XMLDocument object. note: In Swift, this API is imported as an initializer and is marked with the throws keyword to indicate that it throws an error in cases of failure. You call this method in a try expression and handle any errors in the catch clauses of a do statement, as described in Error Handling in The Swift Programming Language and About Imported Cocoa Error Parameters.

## See Also

### Related Documentation

- [validate()](foundation/xmldocument/validate().md)

### Initializing an NSXMLDTD Object

- [init(contentsOf:options:)](foundation/xmldtd/init(contentsof:options:).md)
