# This file stores localized messages for the Xerces
# DOM implementation.
#
# The messages are arranged in key and value tuples in a ListResourceBundle.
#

BadMessageKey = Hittar inte felmeddelandet som motsvarar meddelandenyckeln.
FormatFailed = Ett internt fel intr\u00E4ffade vid formatering av f\u00F6ljande meddelande:\n  

# DOM Core

# exception codes
DOMSTRING_SIZE_ERR = Angivet textintervall ryms inte i DOMString. 
HIERARCHY_REQUEST_ERR  = Ett f\u00F6rs\u00F6k gjordes att infoga nod d\u00E4r det inte \u00E4r till\u00E5tet. 
INDEX_SIZE_ERR = Index eller storlek \u00E4r negativt tal eller st\u00F6rre \u00E4n till\u00E5tet v\u00E4rde.
INUSE_ATTRIBUTE_ERR = Ett f\u00F6rs\u00F6k g\u00F6rs att l\u00E4gga till ett attribut som redan anv\u00E4nds p\u00E5 annan plats.
INVALID_ACCESS_ERR  = En parameter eller en \u00E5tg\u00E4rd st\u00F6ds inte av underliggande objekt. 
INVALID_CHARACTER_ERR = Ett ogiltigt eller otill\u00E5tet XML-tecken har angetts. 
INVALID_MODIFICATION_ERR =  Ett f\u00F6rs\u00F6k g\u00F6rs att \u00E4ndra typ av underliggande objekt. 
INVALID_STATE_ERR = Ett f\u00F6rs\u00F6k g\u00F6rs att anv\u00E4nda ett objekt som inte (l\u00E4ngre) \u00E4r anv\u00E4ndbar. 
NAMESPACE_ERR = Ett f\u00F6rs\u00F6k g\u00F6rs att skapa eller \u00E4ndra ett objekt p\u00E5 ett felaktigt s\u00E4tt avseende namnrymder.
NOT_FOUND_ERR = Ett f\u00F6rs\u00F6k g\u00F6rs att skapa referens till en nod i ett sammanhang d\u00E4r den inte finns.
NOT_SUPPORTED_ERR = Implementeringen saknar st\u00F6d f\u00F6r beg\u00E4rd typ av objekt eller \u00E5tg\u00E4rd. 
NO_DATA_ALLOWED_ERR = Data anges f\u00F6r en nod som inte st\u00F6der data.
NO_MODIFICATION_ALLOWED_ERR = F\u00F6rs\u00F6ker \u00E4ndra ett objekt d\u00E4r \u00E4ndringar inte \u00E4r till\u00E5tna.
SYNTAX_ERR = En ogiltig eller otill\u00E5ten str\u00E4ng anges. 
VALIDATION_ERR = Ett anrop till en metod som insertBefore eller removeChild skulle g\u00F6ra noden ogiltig med aktuell dokumentgrammatik.
WRONG_DOCUMENT_ERR = En nod anv\u00E4nds i ett annat dokument \u00E4n det som skapade noden.
TYPE_MISMATCH_ERR = V\u00E4rdetypen f\u00F6r detta parameternamn \u00E4r inkompatibelt med f\u00F6rv\u00E4ntad v\u00E4rdetyp. 
 
#error messages or exceptions
FEATURE_NOT_SUPPORTED = Parametern {0} kan identifieras, men det beg\u00E4rda v\u00E4rdet kan inte anges.
FEATURE_NOT_FOUND = Parametern {0} kan inte identifieras.
STRING_TOO_LONG   = Resultatstr\u00E4ngen \u00E4r f\u00F6r l\u00E5ng och ryms inte i DOMString: ''{0}''.

#DOM Level 3 DOMError codes
wf-invalid-character =  Texten {0} i noden {1} inneh\u00E5ller ogiltiga XML-tecken.
wf-invalid-character-in-node-name = Noden {0} med namnet {1} inneh\u00E5ller ogiltiga XML-tecken.
cdata-sections-splitted =  CDATA-sektioner inneh\u00E5ller avslutningsmark\u00F6ren '']]>''
doctype-not-allowed = DOCTYPE-deklaration \u00E4r inte till\u00E5tet.
unsupported-encoding = Kodningen {0} st\u00F6ds inte.

#Error codes used in DOM Normalizer
InvalidXMLCharInDOM = Ett ogiltigt XML-tecken (Unicode: 0x{0}) hittades i DOM vid normalisering.
UndeclaredEntRefInAttrValue = Attributet "{0}" med v\u00E4rdet "{1}" refererade en enhet som inte har deklarerats.
NullLocalElementName = Ett lokalt namn med null-v\u00E4rde p\u00E5tr\u00E4ffades vid namnrymdsnormalisering av elementet {0}.
NullLocalAttrName = Ett lokalt namn med null-v\u00E4rde p\u00E5tr\u00E4ffades vid namnrymdsnormalisering av attributet {0}.

#Error codes used in DOMParser
InvalidDocumentClassName = Klassnamnet p\u00E5 dokumentfabrik "{0}" som anv\u00E4nds vid konstruktion av DOM-tr\u00E4det \u00E4r inte typ org.w3c.dom.Document.
MissingDocumentClassName = Hittade inte klassnamnet p\u00E5 dokumentfabrik "{0}" som anv\u00E4nds vid konstruktion av DOM-tr\u00E4det.
CannotCreateDocumentClass = Klassen "{0}" kunde inte konstrueras som org.w3c.dom.Document.

# Error codes used by JAXP DocumentBuilder
jaxp-order-not-supported = Egenskapen ''{0}'' m\u00E5ste anges f\u00F6re inst\u00E4llning av egenskapen ''{1}''.
jaxp-null-input-source = Angiven k\u00E4lla f\u00E5r inte vara null.

#Ranges
BAD_BOUNDARYPOINTS_ERR = Gr\u00E4nspunkterna i ett intervall uppfyller inte de specifika kraven.
INVALID_NODE_TYPE_ERR = En container med gr\u00E4nspunktsintervall anges till nod av ogiltig typ eller nod med \u00F6verordnad av ogiltig typ.


#Events
UNSPECIFIED_EVENT_TYPE_ERR = H\u00E4ndelsetyp specificerades inte n\u00E4r h\u00E4ndelsen initierades f\u00F6re metodanrop. 


jaxp-schema-support=B\u00E5de setSchema-metoden och schemaLanguage-egenskapen anv\u00E4nds

jaxp_feature_not_supported=Funktionen "{0}" st\u00F6ds inte.
