require(__dirname).test({
  xml: '<root>' +
    '<plain attr="normal" />' +
    '<ns1 xmlns="uri:default">' +
    '<plain attr="normal"/>' +
    '</ns1>' +
    '<ns2 xmlns:a="uri:nsa">' +
    '<plain attr="normal"/>' +
    '<a:ns a:attr="namespaced"/>' +
    '</ns2>' +
    '</root>',
  expect: [
    [
      'opentagstart',
      {
        name: 'root',
        attributes: {},
        ns: {}
      }
    ],
    [
      'opentag',
      {
        name: 'root',
        prefix: '',
        local: 'root',
        uri: '',
        attributes: {},
        ns: {},
        isSelfClosing: false
      }
    ],
    [
      'opentagstart',
      {
        name: 'plain',
        attributes: {},
        ns: {}
      }
    ],
    [
      'attribute',
      {
        name: 'attr',
        value: 'normal',
        prefix: '',
        local: 'attr',
        uri: ''
      }
    ],
    [
      'opentag',
      {
        name: 'plain',
        prefix: '',
        local: 'plain',
        uri: '',
        attributes: {
          'attr': {
            name: 'attr',
            value: 'normal',
            prefix: '',
            local: 'attr',
            uri: ''
          }
        },
        ns: {},
        isSelfClosing: true
      }
    ],
    [
      'closetag',
      'plain'
    ],
    [
      'opentagstart',
      {
        name: 'ns1',
        attributes: {},
        ns: {}
      }
    ],
    [
      'opennamespace',
      {
        prefix: '',
        uri: 'uri:default'
      }
    ],
    [
      'attribute',
      {
        name: 'xmlns',
        value: 'uri:default',
        prefix: 'xmlns',
        local: '',
        uri: 'http://www.w3.org/2000/xmlns/'
      }
    ],
    [
      'opentag',
      {
        name: 'ns1',
        prefix: '',
        local: 'ns1',
        uri: 'uri:default',
        attributes: {
          'xmlns': {
            name: 'xmlns',
            value: 'uri:default',
            prefix: 'xmlns',
            local: '',
            uri: 'http://www.w3.org/2000/xmlns/'
          }
        },
        ns: {
          '': 'uri:default'
        },
        isSelfClosing: false
      }
    ],
    [
      'opentagstart',
      {
        name: 'plain',
        ns: {
          '': 'uri:default'
        },
        attributes: {}
      }
    ],
    [
      'attribute',
      {
        name: 'attr',
        value: 'normal',
        prefix: '',
        local: 'attr',
        uri: ''
      }
    ],
    [
      'opentag',
      {
        name: 'plain',
        prefix: '',
        local: 'plain',
        uri: 'uri:default',
        ns: {
          '': 'uri:default'
        },
        attributes: {
          'attr': {
            name: 'attr',
            value: 'normal',
            prefix: '',
            local: 'attr',
            uri: ''
          }
        },
        isSelfClosing: true
      }
    ],
    [
      'closetag',
      'plain'
    ],
    [
      'closetag',
      'ns1'
    ],
    [
      'closenamespace',
      {
        prefix: '',
        uri: 'uri:default'
      }
    ],
    [
      'opentagstart',
      {
        name: 'ns2',
        attributes: {},
        ns: {}
      }
    ],
    [
      'opennamespace',
      {
        prefix: 'a',
        uri: 'uri:nsa'
      }
    ],
    [
      'attribute',
      {
        name: 'xmlns:a',
        value: 'uri:nsa',
        prefix: 'xmlns',
        local: 'a',
        uri: 'http://www.w3.org/2000/xmlns/'
      }
    ],
    [
      'opentag',
      {
        name: 'ns2',
        prefix: '',
        local: 'ns2',
        uri: '',
        attributes: {
          'xmlns:a': {
            name: 'xmlns:a',
            value: 'uri:nsa',
            prefix: 'xmlns',
            local: 'a',
            uri: 'http://www.w3.org/2000/xmlns/'
          }
        },
        ns: {
          a: 'uri:nsa'
        },
        isSelfClosing: false
      }
    ],
    [
      'opentagstart',
      {
        name: 'plain',
        attributes: {},
        ns: {
          a: 'uri:nsa'
        }
      }
    ],
    [
      'attribute',
      {
        name: 'attr',
        value: 'normal',
        prefix: '',
        local: 'attr',
        uri: ''
      }
    ],
    [
      'opentag',
      {
        name: 'plain',
        prefix: '',
        local: 'plain',
        uri: '',
        attributes: {
          'attr': {
            name: 'attr',
            value: 'normal',
            prefix: '',
            local: 'attr',
            uri: ''
          }
        },
        ns: {
          a: 'uri:nsa'
        },
        isSelfClosing: true
      }
    ],
    [
      'closetag',
      'plain'
    ],
    [
      'opentagstart',
      {
        name: 'a:ns',
        attributes: {},
        ns: { a: 'uri:nsa' }
      }
    ],
    [
      'attribute',
      {
        name: 'a:attr',
        value: 'namespaced',
        prefix: 'a',
        local: 'attr',
        uri: 'uri:nsa'
      }
    ],
    [
      'opentag',
      {
        name: 'a:ns',
        prefix: 'a',
        local: 'ns',
        uri: 'uri:nsa',
        attributes: {
          'a:attr': {
            name: 'a:attr',
            value: 'namespaced',
            prefix: 'a',
            local: 'attr',
            uri: 'uri:nsa'
          }
        },
        ns: { a: 'uri:nsa' },
        isSelfClosing: true
      }
    ],
    [
      'closetag',
      'a:ns'
    ],
    [
      'closetag',
      'ns2'
    ],
    [
      'closenamespace',
      {
        prefix: 'a',
        uri: 'uri:nsa'
      }
    ],
    [
      'closetag',
      'root'
    ]
  ],
  strict: true,
  opt: {
    xmlns: true
  }
})