/**
* Close the current tag, but accept some alternative elements first.
*
* @param tag The expected tag to close.
* @param others Alternate elements to accept.
* @exception XMLStreamException if a closing tag is not found.
*/
public void closeTag(String tag, String... others) throws XMLStreamException {
for (int next = nextTag(); next != XMLStreamConstants.END_ELEMENT;
next = nextTag()) {
String at = find(others, s -> atTag(s));
if (at == null) {
throw new XMLStreamException("Parse error, END_ELEMENT(" + tag
+ " or alternatives) expected, not: " + getLocalName());
}
closeTag(at);
}
expectTag(tag);
}
java类javax.xml.stream.XMLStreamConstants的实例源码
FreeColXMLReader.java 文件源码
项目:freecol
阅读 31
收藏 0
点赞 0
评论 0
XMLStreamReaderToContentHandler.java 文件源码
项目:OpenJSharp
阅读 17
收藏 0
点赞 0
评论 0
/**
* Get the attributes associated with the given START_ELEMENT or ATTRIBUTE
* StAXevent.
*
* @return the StAX attributes converted to an org.xml.sax.Attributes
*/
private Attributes getAttributes() {
AttributesImpl attrs = new AttributesImpl();
int eventType = staxStreamReader.getEventType();
if (eventType != XMLStreamConstants.ATTRIBUTE
&& eventType != XMLStreamConstants.START_ELEMENT) {
throw new InternalError(
"getAttributes() attempting to process: " + eventType);
}
// in SAX, namespace declarations are not part of attributes by default.
// (there's a property to control that, but as far as we are concerned
// we don't use it.) So don't add xmlns:* to attributes.
// gather non-namespace attrs
for (int i = 0; i < staxStreamReader.getAttributeCount(); i++) {
String uri = staxStreamReader.getAttributeNamespace(i);
if(uri==null) uri="";
String localName = staxStreamReader.getAttributeLocalName(i);
String prefix = staxStreamReader.getAttributePrefix(i);
String qName;
if(prefix==null || prefix.length()==0)
qName = localName;
else
qName = prefix + ':' + localName;
String type = staxStreamReader.getAttributeType(i);
String value = staxStreamReader.getAttributeValue(i);
attrs.addAttribute(uri, localName, qName, type, value);
}
return attrs;
}
StartDocumentEvent.java 文件源码
项目:OpenJSharp
阅读 21
收藏 0
点赞 0
评论 0
public StartDocumentEvent(String encoding, String version){
if (encoding != null) {
_encoding = encoding;
_encodingSet = true;
}
if (version != null)
_version = version;
setEventType(XMLStreamConstants.START_DOCUMENT);
}
EPRHeader.java 文件源码
项目:OpenJSharp
阅读 28
收藏 0
点赞 0
评论 0
@Nullable
public String getAttribute(@NotNull String nsUri, @NotNull String localName) {
try {
XMLStreamReader sr = epr.read("EndpointReference"/*doesn't matter*/);
while(sr.getEventType()!= XMLStreamConstants.START_ELEMENT)
sr.next();
return sr.getAttributeValue(nsUri,localName);
} catch (XMLStreamException e) {
// since we are reading from buffer, this can't happen.
throw new AssertionError(e);
}
}
IssueTracker35.java 文件源码
项目:openjdk-jdk10
阅读 17
收藏 0
点赞 0
评论 0
@Test
public void testSkippingExternalDTD() throws Exception {
XMLInputFactory xif = XMLInputFactory.newInstance();
try(
InputStream is= getClass().getResourceAsStream("XMLSchema.xsd");
) {
XMLStreamReader reader = xif.createXMLStreamReader(getClass().getResource("XMLSchema.xsd").getFile(), is);
int e;
while ((e = reader.next()) == XMLStreamConstants.COMMENT);
Assert.assertEquals(e, XMLStreamConstants.DTD, "should be DTD");
reader.nextTag();
Assert.assertEquals(reader.getLocalName(), "schema", "next tag should be schema");
}
}
StartDocumentEvent.java 文件源码
项目:openjdk-jdk10
阅读 22
收藏 0
点赞 0
评论 0
protected void init(String encoding, String version, boolean standalone,Location loc) {
setEventType(XMLStreamConstants.START_DOCUMENT);
this.fEncodingScheam = encoding;
this.fVersion = version;
this.fStandalone = standalone;
if (encoding != null && !encoding.equals(""))
this.fEncodingSchemeSet = true;
else {
this.fEncodingSchemeSet = false;
this.fEncodingScheam = "UTF-8";
}
this.fLocation = loc;
}
XmlPolicyModelUnmarshaller.java 文件源码
项目:OpenJSharp
阅读 27
收藏 0
点赞 0
评论 0
private String unmarshalNodeContent(final NamespaceVersion nsVersion, final ModelNode node, final QName nodeElementName, final XMLEventReader reader) throws PolicyException {
StringBuilder valueBuffer = null;
loop:
while (reader.hasNext()) {
try {
final XMLEvent xmlParserEvent = reader.nextEvent();
switch (xmlParserEvent.getEventType()) {
case XMLStreamConstants.COMMENT:
break; // skipping the comments
case XMLStreamConstants.CHARACTERS:
valueBuffer = processCharacters(node.getType(), xmlParserEvent.asCharacters(), valueBuffer);
break;
case XMLStreamConstants.END_ELEMENT:
checkEndTagName(nodeElementName, xmlParserEvent.asEndElement());
break loop; // data exctraction for currently processed policy node is done
case XMLStreamConstants.START_ELEMENT:
final StartElement childElement = xmlParserEvent.asStartElement();
ModelNode childNode = addNewChildNode(nsVersion, node, childElement);
String value = unmarshalNodeContent(nsVersion, childNode, childElement.getName(), reader);
if (childNode.isDomainSpecific()) {
parseAssertionData(nsVersion, value, childNode, childElement);
}
break;
default:
throw LOGGER.logSevereException(new PolicyException(LocalizationMessages.WSP_0011_UNABLE_TO_UNMARSHALL_POLICY_XML_ELEM_EXPECTED()));
}
} catch (XMLStreamException e) {
throw LOGGER.logSevereException(new PolicyException(LocalizationMessages.WSP_0068_FAILED_TO_UNMARSHALL_POLICY_EXPRESSION(), e));
}
}
return (valueBuffer == null) ? null : valueBuffer.toString().trim();
}
StAXSource.java 文件源码
项目:openjdk-jdk10
阅读 22
收藏 0
点赞 0
评论 0
/**
* <p>Creates a new instance of a <code>StAXSource</code>
* by supplying an {@link XMLEventReader}.</p>
*
* <p><code>XMLEventReader</code> must be a
* non-<code>null</code> reference.</p>
*
* <p><code>XMLEventReader</code> must be in
* {@link XMLStreamConstants#START_DOCUMENT} or
* {@link XMLStreamConstants#START_ELEMENT} state.</p>
*
* @param xmlEventReader <code>XMLEventReader</code> used to create
* this <code>StAXSource</code>.
*
* @throws XMLStreamException If <code>xmlEventReader</code> access
* throws an <code>Exception</code>.
* @throws IllegalArgumentException If <code>xmlEventReader</code> ==
* <code>null</code>.
* @throws IllegalStateException If <code>xmlEventReader</code>
* is not in <code>XMLStreamConstants.START_DOCUMENT</code> or
* <code>XMLStreamConstants.START_ELEMENT</code> state.
*/
public StAXSource(final XMLEventReader xmlEventReader)
throws XMLStreamException {
if (xmlEventReader == null) {
throw new IllegalArgumentException(
"StAXSource(XMLEventReader) with XMLEventReader == null");
}
// TODO: This is ugly ...
// there is no way to know the current position(event) of
// XMLEventReader. peek() is the only way to know the next event.
// The next event on the input stream should be
// XMLStreamConstants.START_DOCUMENT or
// XMLStreamConstants.START_ELEMENT.
XMLEvent event = xmlEventReader.peek();
int eventType = event.getEventType();
if (eventType != XMLStreamConstants.START_DOCUMENT
&& eventType != XMLStreamConstants.START_ELEMENT) {
throw new IllegalStateException(
"StAXSource(XMLEventReader) with XMLEventReader "
+ "not in XMLStreamConstants.START_DOCUMENT or "
+ "XMLStreamConstants.START_ELEMENT state");
}
this.xmlEventReader = xmlEventReader;
systemId = event.getLocation().getSystemId();
}
XMLStreamReaderUtil.java 文件源码
项目:OpenJSharp
阅读 29
收藏 0
点赞 0
评论 0
public static void toNextTag(XMLStreamReader reader, QName name) {
// skip any whitespace
if (reader.getEventType() != XMLStreamConstants.START_ELEMENT &&
reader.getEventType() != XMLStreamConstants.END_ELEMENT) {
XMLStreamReaderUtil.nextElementContent(reader);
}
if(reader.getEventType() == XMLStreamConstants.END_ELEMENT && name.equals(reader.getName())) {
XMLStreamReaderUtil.nextElementContent(reader);
}
}
FoolProofParserExtension.java 文件源码
项目:OpenJSharp
阅读 16
收藏 0
点赞 0
评论 0
private boolean post(QName tagName, XMLStreamReader xsr, boolean result) {
if(!tagName.equals(xsr.getName()))
return foundFool();
if(result) {
if(xsr.getEventType()!=XMLStreamConstants.END_ELEMENT)
foundFool();
} else {
if(xsr.getEventType()!=XMLStreamConstants.START_ELEMENT)
foundFool();
}
return result;
}