/** * Parses a CMIS type. */ private void parseTypeDefinition(XMLStreamReader parser) throws XMLStreamException { typeDef = XMLConverter.convertTypeDefinition(parser); }
/** * Reads a type definition from a XML stream. * * The stream must be UTF-8 encoded. */ public static TypeDefinition readFromXML(InputStream stream) throws XMLStreamException { if (stream == null) { throw new IllegalArgumentException("Input stream must be set!"); } XMLStreamReader parser = XMLUtils.createParser(stream); if (!XMLUtils.findNextStartElemenet(parser)) { return null; } TypeDefinition typeDef = XMLConverter.convertTypeDefinition(parser); parser.close(); return typeDef; }
/** * Parses an element. */ private AtomElement parseElement(XMLStreamReader parser) throws XMLStreamException { QName name = parser.getName(); if (XMLConstants.NAMESPACE_RESTATOM.equals(name.getNamespaceURI())) { if (TAG_OBJECT.equals(name.getLocalPart())) { return new AtomElement(name, XMLConverter.convertObject(parser)); } else if (TAG_PATH_SEGMENT.equals(name.getLocalPart()) || TAG_RELATIVE_PATH_SEGMENT.equals(name.getLocalPart())) { return parseText(parser); } else if (TAG_TYPE.equals(name.getLocalPart())) { return new AtomElement(name, XMLConverter.convertTypeDefinition(parser)); } else if (TAG_CHILDREN.equals(name.getLocalPart())) { return parseChildren(parser); } } else if (XMLConstants.NAMESPACE_ATOM.equals(name.getNamespaceURI())) { if (TAG_LINK.equals(name.getLocalPart())) { return parseLink(parser); } else if (TAG_CONTENT.equals(name.getLocalPart())) { return parseAtomContentSrc(parser); } } // we don't know it - skip it XMLUtils.skip(parser); return null; }
/** * Parses an element. * * @throws XmlPullParserException */ private AtomElement parseElement(XmlPullParser parser) throws XmlPullParserException { QName name = new QName(parser.getNamespace(), parser.getName()); if (XMLConstants.NAMESPACE_RESTATOM.equals(name.getNamespaceURI())) { if (TAG_OBJECT.equals(name.getLocalPart())) { return new AtomElement(name, XMLConverter.convertObject(parser)); } else if (TAG_PATH_SEGMENT.equals(name.getLocalPart()) || TAG_RELATIVE_PATH_SEGMENT.equals(name.getLocalPart())) { return parseText(parser); } else if (TAG_TYPE.equals(name.getLocalPart())) { return new AtomElement(name, XMLConverter.convertTypeDefinition(parser)); } else if (TAG_CHILDREN.equals(name.getLocalPart())) { return parseChildren(parser); } } else if (XMLConstants.NAMESPACE_ATOM.equals(name.getNamespaceURI())) { if (TAG_LINK.equals(name.getLocalPart())) { return parseLink(parser); } else if (TAG_CONTENT.equals(name.getLocalPart())) { return parseAtomContentSrc(parser); } } // we don't know it - skip it XMLUtils.skip(parser); return null; }