When you add the color package and change
morestring=[b]",
into
morestring=[b][\color{red}]",
the attributes will color red.
This will color the attributes red in your xml listings.
\begin{lstlisting}[language=xml, frame=single]
<xml>
<person age="22" sex="female">Ann</person>
</xml>
\end{lstlisting}

\documentclass{article}
\usepackage{listings}
\usepackage{color}
\definecolor{lightgray}{rgb}{.7,.7,.7}
\definecolor{gray}{rgb}{.4,.4,.4}
\definecolor{darkblue}{rgb}{0,0,.3}
\begin{document}
\begin{lstlisting}[language=xml, frame=single]
<xml>
<person age="22" sex="female">Ann</person>
</xml>
\end{lstlisting}
\lstdefinelanguage{XML}
{
morestring=[b][\color{red}]",
morestring=[s]{>}{<},
morecomment=[s]{<?}{?>},
stringstyle=\color{black},
identifierstyle=\color{darkblue},
keywordstyle=\color{cyan},
morekeywords={xmlns,version,type},
backgroundcolor=\color{lightgray},
numbers=left,
numberstyle=\footnotesize\ttfamily\color{gray},
numbersep=0.5pt
}
\begin{lstlisting}[language=xml, frame=single]
<xml>
<person age="22" sex="female">Ann</person>
</xml>
\end{lstlisting}
\end{document}
\lstdefinelanguage{XML}
{
morestring=[b][\color{red}]",
morestring=[s]{>}{<},
morecomment=[s]{<?}{?>},
stringstyle=\color{black},
identifierstyle=\color{darkblue},
keywordstyle=\color{cyan},
morekeywords={xmlns,version,type},
backgroundcolor=\color{lightgray},
numbers=left,
numberstyle=\footnotesize\ttfamily\color{gray},
numbersep=0.5pt
}
As per Mico's answer to using bold italic text inside listings, there is no boldfaced mono spaced font in the Computer Modern font family, so you need to use a font that has a bold mono spaced font.
Borrowing from this earlier question on
XML syntax highlighting,
here is an example:

Known Issues:
I am not sure why the very first non-comment <
was not being highlighted.
Matthias's suggested that this behavior can be overcome by using an escapechar
and replacing the first <
with !\color{red}{<}!
where !
is the escapechar
. This has been incorporated into the solution below.
Code:
\documentclass[border=2pt]{standalone}
\usepackage{xcolor}
\usepackage{listings}
\usepackage{pxfonts}
\lstset{
basicstyle=\ttfamily,
columns=fullflexible,
showstringspaces=false,
commentstyle=\color{gray}\upshape,
breaklines=true,
}
\lstdefinelanguage{XML}{
morestring=[b][\color{brown}]",
morestring=[s][\color{red}\bfseries]{>}{<},
morecomment=[s]{<?}{?>},
stringstyle=\color{black},
identifierstyle=\color{blue},
keywordstyle=\color{cyan},
escapechar=!,
morekeywords={name,use,xmlns,version,type}% list your attributes here,
}
\begin{document}
\begin{lstlisting}[language=XML]
<?xml version="1.0" encoding="utf-8"?>
!\color{red}\bfseries<!xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="points">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="point">
<xs:complexType>
<xs:attribute name="x" type="xs:unsignedShort" use="required" />
<xs:attribute name="y" type="xs:unsignedShort" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
\end{lstlisting}
\end{document}
Alternate Solution:
Using the solution form ttfamily with bfseries or how to enable bold in fixed width font you can use the courier font with
\renewcommand{\ttdefault}{pcr}
but I personally find these results no so satisfying:

Code:
Same as above but delete \usepackage{pxfonts}
and add:
\renewcommand{\ttdefault}{pcr}
Best Answer
XML language has very limited support for keywords. You can define more keywords yourself: