private void checkAboutURI(String aboutURI) throws SAXException {
        if (m_dsId.equals(RELS_EXT)) {
            if (!m_doURI.equals(aboutURI)) {
                throw new SAXException("RelsExtValidator:"
                        + " The RELS-EXT datastream refers to"
                        + " an improper URI in the 'about' attribute of the"
                        + " RDF <Description> element.\n"
                        + " The URI must be that of the digital object"
                        + " in which the RELS-EXT datastream resides" + " ("
                        + m_doURI + ").");
            }
        } else if (m_dsId.equals(RELS_INT)) {
            int doLength = m_doURI.length();
            if (!(aboutURI.startsWith(m_doURI) &&
                  aboutURI.length() > doLength &&
                  (aboutURI.charAt(doLength) == '/'))) {
                throw new SAXException("RelsExtValidator:"
                        + " The RELS-INT datastream refers to"
                        + " an improper URI in the 'about' attribute of the"
                        + " RDF <Description> element.\n"
                        + " The URI must be a datastream in the digital object"
                        + " in which the RELS-INT datastream resides" + " ("
                        + m_doURI + ", " + aboutURI + ").");

            }
            String dsId = aboutURI.substring(doLength + 1);
            // datastream ID must be an XML NCName, implemented using NCName class
            if (dsId.length() > ValidationConstants.DATASTREAM_ID_MAXLEN
                    || dsId.length() < 1 || !isValid(dsId)) {
                throw new SAXException("RelsExtValidator:"
                        + " The RELS-INT datastream refers to"
                        + " an improper URI in the 'about' attribute of the"
                        + " RDF <Description> element.\n" + " " + dsId
                        + " is not a valid datastream ID");

            }
        }
    }
private void checkAboutURI ( String aboutURI ) throws SAXException { if ( m_dsId . equals ( RELS_EXT ) ) { if ( ! m_doURI . equals ( aboutURI ) ) { throw new SAXException ( "RelsExtValidator:" + " The RELS-EXT datastream refers to" + " an improper URI in the 'about' attribute of the" + " RDF <Description> element.\n" + " The URI must be that of the digital object" + " in which the RELS-EXT datastream resides" + " (" + m_doURI + ")." ) ; } } else if ( m_dsId . equals ( RELS_INT ) ) { int doLength = m_doURI . length ( ) ; if ( ! ( aboutURI . startsWith ( m_doURI ) && aboutURI . length ( ) > doLength && ( aboutURI . charAt ( doLength ) == '/' ) ) ) { throw new SAXException ( "RelsExtValidator:" + " The RELS-INT datastream refers to" + " an improper URI in the 'about' attribute of the" + " RDF <Description> element.\n" + " The URI must be a datastream in the digital object" + " in which the RELS-INT datastream resides" + " (" + m_doURI + ", " + aboutURI + ")." ) ; } String dsId = aboutURI . substring ( doLength + 1 ) ; if ( dsId . length ( ) > ValidationConstants . DATASTREAM_ID_MAXLEN || dsId . length ( ) < 1 || ! isValid ( dsId ) ) { throw new SAXException ( "RelsExtValidator:" + " The RELS-INT datastream refers to" + " an improper URI in the 'about' attribute of the" + " RDF <Description> element.\n" + " " + dsId + " is not a valid datastream ID" ) ; } } }
checkAboutURI: ensure that the RDF <Description> is about the digital
object that contains the RELS-EXT datastream, since the REL-EXT
datastream is only supposed to capture relationships about "this" digital
object.

@param aboutURI
the URI value of the RDF 'about' attribute
@throws SAXException