private StartElement wrap(StartElement startElement) { List<Attribute> newElementAttributeList = mapAttributes( startElement ); List<Namespace> newNamespaceList = mapNamespaces( startElement ); // Transfer the location info from the incoming event to the event factory // so that the event we ask it to generate for us has the same location info xmlEventFactory.setLocation( startElement.getLocation() ); return xmlEventFactory.createStartElement( new QName( MappingXsdSupport.INSTANCE.latestJpaDescriptor().getNamespaceUri(), startElement.getName().getLocalPart() ), newElementAttributeList.iterator(), newNamespaceList.iterator() ); }
while (xmlEventReader.hasNext()) { XMLEvent xmleve = (XMLEvent) xmlEventReader.next(); element.setUserData("location", ele.getLocation(), null);
private EncryptionMethodType parseEncryptionMethod(XMLEventReader xmlEventReader) throws ParsingException { StartElement startElement = StaxParserUtil.getNextStartElement(xmlEventReader); StaxParserUtil.validate(startElement, JBossSAMLConstants.ENCRYPTION_METHOD.get()); Attribute algorithm = startElement.getAttributeByName(new QName("Algorithm")); EncryptionMethodType encryptionMethodType = new EncryptionMethodType(algorithm.getValue()); BigInteger keySize = null; byte[] OAEPparams = null; while (xmlEventReader.hasNext()) { XMLEvent xmlEvent = StaxParserUtil.peek(xmlEventReader); if (xmlEvent instanceof EndElement) { EndElement end = StaxParserUtil.getNextEndElement(xmlEventReader); StaxParserUtil.validate(end, JBossSAMLConstants.ENCRYPTION_METHOD.get()); break; } startElement = (StartElement) xmlEvent; String localPart = startElement.getName().getLocalPart(); if ("KeySize".equals(localPart)) { startElement = StaxParserUtil.getNextStartElement(xmlEventReader); keySize = BigInteger.valueOf(Long.valueOf(StaxParserUtil.getElementText(xmlEventReader))); } else if ("OAEPparams".equals(localPart)) { startElement = StaxParserUtil.getNextStartElement(xmlEventReader); OAEPparams = StaxParserUtil.getElementText(xmlEventReader).getBytes(); } else { throw logger.parserUnknownTag(localPart, startElement.getLocation()); } } EncryptionMethodType.EncryptionMethod encryptionMethod = new EncryptionMethodType.EncryptionMethod(keySize, OAEPparams); encryptionMethodType.setEncryptionMethod(encryptionMethod); return encryptionMethodType; }
QName attributeQName = new QName("", PROPERTY_NAME_ATTRIBUTE); Attribute attribute = startElement.getAttributeByName(attributeQName); if (attribute != null) propertyName = StaxParserUtil.getAttributeValue(attribute); propertyValue = parseObjectProperty(xmlEventReader, objectStartElement); } else { throw logger.parserUnknownStartElement(StaxParserUtil.getStartElementName(startElement), startElement.getLocation());
private EncryptionMethodType parseEncryptionMethod(XMLEventReader xmlEventReader) throws ParsingException { StartElement startElement = StaxParserUtil.getNextStartElement(xmlEventReader); StaxParserUtil.validate(startElement, JBossSAMLConstants.ENCRYPTION_METHOD.get()); Attribute algorithm = startElement.getAttributeByName(new QName("Algorithm")); EncryptionMethodType encryptionMethodType = new EncryptionMethodType(algorithm.getValue()); BigInteger keySize = null; byte[] OAEPparams = null; while (xmlEventReader.hasNext()) { XMLEvent xmlEvent = StaxParserUtil.peek(xmlEventReader); if (xmlEvent instanceof EndElement) { EndElement end = StaxParserUtil.getNextEndElement(xmlEventReader); StaxParserUtil.validate(end, JBossSAMLConstants.ENCRYPTION_METHOD.get()); break; } startElement = (StartElement) xmlEvent; String localPart = startElement.getName().getLocalPart(); if ("KeySize".equals(localPart)) { startElement = StaxParserUtil.getNextStartElement(xmlEventReader); keySize = BigInteger.valueOf(Long.valueOf(StaxParserUtil.getElementText(xmlEventReader))); } else if ("OAEPparams".equals(localPart)) { startElement = StaxParserUtil.getNextStartElement(xmlEventReader); OAEPparams = StaxParserUtil.getElementText(xmlEventReader).getBytes(); } else { throw logger.parserUnknownTag(localPart, startElement.getLocation()); } } EncryptionMethodType.EncryptionMethod encryptionMethod = new EncryptionMethodType.EncryptionMethod(keySize, OAEPparams); encryptionMethodType.setEncryptionMethod(encryptionMethod); return encryptionMethodType; }
int line = element.getLocation().getLineNumber(); if (!element.getName().equals(new QName("property"))) { errors.add(String.format("Line %d: element not <property>", line)); continue; List<XMLEvent> events = node.getXMLEventsForQName(new QName("name")); if (events == null) { errors.add(String.format("Line %d: <property> has no <name>", line)); duplicatedProperties.put(v, lines); lines.add(node.getStartElement().getLocation().getLineNumber()); events = node.getXMLEventsForQName(new QName("value")); if (events == null) { errors.add(String.format("Line %d: <property> has no <value>", line));
Attribute inResponseTo = startElement.getAttributeByName(new QName(JBossSAMLConstants.IN_RESPONSE_TO.get())); if (inResponseTo != null) { subjectConfirmationData.setInResponseTo(StaxParserUtil.getAttributeValue(inResponseTo)); Attribute notBefore = startElement.getAttributeByName(new QName(JBossSAMLConstants.NOT_BEFORE.get())); if (notBefore != null) { subjectConfirmationData.setNotBefore(XMLTimeUtil.parse(StaxParserUtil.getAttributeValue(notBefore))); Attribute notOnOrAfter = startElement.getAttributeByName(new QName(JBossSAMLConstants.NOT_ON_OR_AFTER.get())); if (notOnOrAfter != null) { subjectConfirmationData.setNotOnOrAfter(XMLTimeUtil.parse(StaxParserUtil.getAttributeValue(notOnOrAfter))); subjectConfirmationData.setAnyType(StaxParserUtil.getDOMElement(xmlEventReader)); } else throw logger.parserUnknownTag(tag, startElement.getLocation());
InputStream is = new FileInputStream("test.xml"); XMLInputFactory inputFactory = XMLInputFactory.newInstance(); XMLEventReader eventReader = inputFactory.createXMLEventReader(is, "utf-8"); Stack<StartElement> stack = new Stack<StartElement>(); while (eventReader.hasNext()) { try { XMLEvent event = eventReader.nextEvent(); if (event.isStartElement()) { StartElement startElement = event.asStartElement(); System.out.println("processing element: " + startElement.getName().getLocalPart()); stack.push(startElement); } if(event.isEndElement()){ stack.pop(); } }catch(XMLStreamException e){ System.out.println("error in line: " +e.getLocation().getLineNumber()); StartElement se = stack.pop(); System.out.println("non-closed tag:" + se.getName().getLocalPart() + " " + se.getLocation().getLineNumber()); throw e; } }
protected IdentityStoreInvocationContextFactoryType parseIdentityStoreInvocationContextFactoryConfiguration(XMLEventReader xmlEventReader, StartElement startElement) throws ParsingException { QName classNameAttributeQName = new QName("", CLASS_NAME_ATTRIBUTE); Attribute attribute = startElement.getAttributeByName(classNameAttributeQName); if (attribute != null) invContextFactoryType.setClassName(StaxParserUtil.getAttributeValue(attribute)); while (xmlEventReader.hasNext()) { XMLEvent xmlEvent = StaxParserUtil.peek(xmlEventReader); if (xmlEvent == null) attribute = startElement.getAttributeByName(classNameAttributeQName); if (attribute != null) invContextFactoryType.setEntityManagerFactoryClass(StaxParserUtil.getAttributeValue(attribute)); } else if (elementName.equals(EVENT_BRIDGE_ELEMENT)) { attribute = startElement.getAttributeByName(classNameAttributeQName); if (attribute != null) invContextFactoryType.setEventBridgeClass(StaxParserUtil.getAttributeValue(attribute)); invContextFactoryType.setIdGeneratorClass(StaxParserUtil.getAttributeValue(attribute)); } else { throw logger.parserUnknownStartElement(elementName, startElement.getLocation());
xmlEventFactory.setLocation( startElement.getLocation() ); return xmlEventFactory.createStartElement( new QName( MappingXsdSupport.INSTANCE.hbmXsd().getNamespaceUri(), startElement.getName().getLocalPart() ), startElement.getAttributes(), targetNamespaces.iterator()
Attribute inResponseTo = startElement.getAttributeByName(new QName(JBossSAMLConstants.IN_RESPONSE_TO.get())); if (inResponseTo != null) { subjectConfirmationData.setInResponseTo(StaxParserUtil.getAttributeValue(inResponseTo)); Attribute notBefore = startElement.getAttributeByName(new QName(JBossSAMLConstants.NOT_BEFORE.get())); if (notBefore != null) { subjectConfirmationData.setNotBefore(XMLTimeUtil.parse(StaxParserUtil.getAttributeValue(notBefore))); Attribute notOnOrAfter = startElement.getAttributeByName(new QName(JBossSAMLConstants.NOT_ON_OR_AFTER.get())); if (notOnOrAfter != null) { subjectConfirmationData.setNotOnOrAfter(XMLTimeUtil.parse(StaxParserUtil.getAttributeValue(notOnOrAfter))); subjectConfirmationData.setAnyType(StaxParserUtil.getDOMElement(xmlEventReader)); } else throw logger.parserUnknownTag(tag, startElement.getLocation());
private void parseInterceptors(XMLEventReader reader, XMLEvent event) throws XMLStreamException { if (enabledInterceptors != null) { throw XmlLogger.LOG.multipleInterceptors(beansXml + "@" + event.asStartElement().getLocation().getLineNumber()); } enabledInterceptors = new LinkedList<>(); while (reader.hasNext()) { event = reader.nextEvent(); if (isEnd(event, INTERCEPTORS)) { return; } else if (event.isStartElement()) { StartElement element = event.asStartElement(); if (isStartElement(element, CLASS)) { enabledInterceptors.add(new XmlMetadata<String>(element.getName().toString(), getTrimmedElementText(reader), beansXml, element.getLocation().getLineNumber())); } } } }
StaxParserUtil.validate(startElement, RESPONSE); Attribute idAttr = startElement.getAttributeByName(new QName(SAML11Constants.RESPONSE_ID)); if (idAttr == null) throw new RuntimeException(REQD_ATTRIBUTE + SAML11Constants.RESPONSE_ID); String id = StaxParserUtil.getAttributeValue(idAttr); Attribute issueInstant = startElement.getAttributeByName(new QName(SAML11Constants.ISSUE_INSTANT)); if (issueInstant == null) throw new RuntimeException(REQD_ATTRIBUTE + SAML11Constants.ISSUE_INSTANT); while (xmlEventReader.hasNext()) throw new RuntimeException(UNKNOWN_START_ELEMENT + "::location=" + startElement.getLocation());
private StartElement wrap(StartElement startElement) { List<Attribute> newElementAttributeList = mapAttributes( startElement ); List<Namespace> newNamespaceList = mapNamespaces( startElement ); // Transfer the location info from the incoming event to the event factory // so that the event we ask it to generate for us has the same location info xmlEventFactory.setLocation( startElement.getLocation() ); return xmlEventFactory.createStartElement( new QName( MappingXsdSupport.INSTANCE.latestJpaDescriptor().getNamespaceUri(), startElement.getName().getLocalPart() ), newElementAttributeList.iterator(), newNamespaceList.iterator() ); }
private void parseInterceptors(XMLEventReader reader, XMLEvent event) throws XMLStreamException { if (enabledInterceptors != null) { throw XmlLogger.LOG.multipleInterceptors(beansXml + "@" + event.asStartElement().getLocation().getLineNumber()); } enabledInterceptors = new LinkedList<>(); while (reader.hasNext()) { event = reader.nextEvent(); if (isEnd(event, INTERCEPTORS)) { return; } else if (event.isStartElement()) { StartElement element = event.asStartElement(); if (isStartElement(element, CLASS)) { enabledInterceptors.add(new XmlMetadata<String>(element.getName().toString(), getTrimmedElementText(reader), beansXml, element.getLocation().getLineNumber())); } } } }
protected StoreConfigurationType parseStoreConfiguration(XMLEventReader xmlEventReader, StartElement startElement) throws ParsingException { QName classNameAttributeQName = new QName("", CLASS_NAME_ATTRIBUTE); String storeFactoryElementName = StaxParserUtil.getStartElementName(startElement); Attribute attribute = startElement.getAttributeByName(classNameAttributeQName); if (attribute != null) storeConfigurationType.setClassName(StaxParserUtil.getAttributeValue(attribute)); while (xmlEventReader.hasNext()) { XMLEvent xmlEvent = StaxParserUtil.peek(xmlEventReader); if (xmlEvent == null) throw logger.parserUnknownStartElement(elementName, startElement.getLocation());
xmlEventFactory.setLocation( startElement.getLocation() ); return xmlEventFactory.createStartElement( new QName( MappingXsdSupport.INSTANCE.hbmXsd().getNamespaceUri(), startElement.getName().getLocalPart() ), startElement.getAttributes(), targetNamespaces.iterator()
private void parseDecorators(XMLEventReader reader, XMLEvent event) throws XMLStreamException { if (enabledDecorators != null) { throw XmlLogger.LOG.multipleDecorators(beansXml + "@" + event.asStartElement().getLocation().getLineNumber()); } enabledDecorators = new LinkedList<>(); while (reader.hasNext()) { event = reader.nextEvent(); if (isEnd(event, DECORATORS)) { return; } else if (event.isStartElement()) { StartElement element = event.asStartElement(); if (isStartElement(element, CLASS)) { enabledDecorators.add(new XmlMetadata<String>(element.getName().toString(), getTrimmedElementText(reader), beansXml, element.getLocation().getLineNumber())); } } } }
protected ObjectType parseObjectProperty(XMLEventReader xmlEventReader, StartElement startElement) throws ParsingException { QName classNameAttributeQName = new QName("", CLASS_NAME_ATTRIBUTE); String storeFactoryElementName = StaxParserUtil.getStartElementName(startElement); Attribute attribute = startElement.getAttributeByName(classNameAttributeQName); if (attribute != null) objectType.setClassName(StaxParserUtil.getAttributeValue(attribute)); while (xmlEventReader.hasNext()) { XMLEvent xmlEvent = StaxParserUtil.peek(xmlEventReader); if (xmlEvent == null) throw logger.parserUnknownStartElement(elementName, startElement.getLocation());
private void parseInterceptors(XMLEventReader reader, XMLEvent event) throws XMLStreamException { if (enabledInterceptors != null) { throw XmlLogger.LOG.multipleInterceptors(beansXml + "@" + event.asStartElement().getLocation().getLineNumber()); } enabledInterceptors = new LinkedList<>(); while (reader.hasNext()) { event = reader.nextEvent(); if (isEnd(event, INTERCEPTORS)) { return; } else if (event.isStartElement()) { StartElement element = event.asStartElement(); if (isStartElement(element, CLASS)) { enabledInterceptors.add(new XmlMetadata<String>(element.getName().toString(), getTrimmedElementText(reader), beansXml, element.getLocation().getLineNumber())); } } } }