diff options
author | Googler <noreply@google.com> | 2016-06-27 20:05:11 +0000 |
---|---|---|
committer | Dmitry Lomov <dslomov@google.com> | 2016-06-28 11:13:08 +0000 |
commit | 638621723f101f977793c0bbd062e932cc708a0b (patch) | |
tree | 5ae806f482d5492198fcd048cde243b6046f34c3 /src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java | |
parent | 6cebed66053d369deeb669cc674f5b756778a238 (diff) |
Stop sanitizing the style parent attribute.
RELNOTES:None
--
MOS_MIGRATED_REVID=125989427
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java')
-rw-r--r-- | src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java | 27 |
1 files changed, 8 insertions, 19 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java b/src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java index 306931d809..f6c3ae978f 100644 --- a/src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java +++ b/src/tools/android/java/com/google/devtools/build/android/XmlResourceValues.java @@ -113,9 +113,14 @@ public class XmlResourceValues { values.put(getElementName(element.asStartElement()), eventReader.getElementText()); } } - String parent = parseReferenceFromElementAttribute(start, ATTR_PARENT, false); - // Parents can be very lazily declared as just: <resource name> - return StyleXmlResourceValue.of(parent, values); + // Parents can be declared as: + // ?style/parent + // @style/parent + // <Parent> + // And, in the resource name <parent>.<resource name> + // Here, we take a garbage in, garbage out approach and just read the xml value raw. + return StyleXmlResourceValue.of(getElementAttributeByName(start, ATTR_PARENT), + values); } static void parseDeclareStyleable( @@ -287,22 +292,6 @@ public class XmlResourceValues { /* XML helper methods follow. */ // TODO(corysmith): Move these to a wrapper class for XMLEventReader. - private static String parseReferenceFromElementAttribute( - StartElement element, QName name, boolean requiresPrefix) throws XMLStreamException { - String value = getElementAttributeByName(element, name); - if (value == null) { - return null; - } - if (value.startsWith("?") || value.startsWith("@")) { - return value.substring(1); - } - if (!requiresPrefix) { - return value; - } - throw new XMLStreamException( - String.format("Invalid resource reference from %s in %s", name, element), - element.getLocation()); - } @Nullable public static String getElementAttributeByName(StartElement element, QName name) { |